Kubernetes 节点
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
NodeFilesystemSpaceFillingUp | ( node_filesystem_avail_bytes{job="node-exporter",fstype!=""} / node_filesystem_size_bytes{job="node-exporter",fstype!=""} * 100 < 15 and predict_linear(node_filesystem_avail_bytes{job="node-exporter",fstype!=""}[6h], 4*60*60) < 0 and node_filesystem_readonly{job="node-exporter",fstype!=""} == 0 ) | 1h | 当节点上某个非只读文件系统的可用空间比例低于15%,并且基于过去6小时的数据预测其可用空间将在未来4小时内耗尽时触发。 |
NodeFilesystemAlmostOutOfSpace | ( node_filesystem_avail_bytes{job="node-exporter",fstype!=""} / node_filesystem_size_bytes{job="node-exporter",fstype!=""} * 100 < 3 and node_filesystem_readonly{job="node-exporter",fstype!=""} == 0 ) | 1h | 当节点上某个非只读文件系统的可用空间比例低于3%时触发。 |
NodeFilesystemFilesFillingUp | ( node_filesystem_files_free{job="node-exporter",fstype!=""} / node_filesystem_files{job="node-exporter",fstype!=""} * 100 < 20 and predict_linear(node_filesystem_files_free{job="node-exporter",fstype!=""}[6h], 4*60*60) < 0 and node_filesystem_readonly{job="node-exporter",fstype!=""} == 0 ) | 1h | 当节点上某个非只读文件系统的可用 inode(文件索引节点)比例低于20%,并且预测其将在未来4小时内耗尽时触发。 |
NodeFilesystemAlmostOutOfFiles | ( node_filesystem_files_free{job="node-exporter",fstype!=""} / node_filesystem_files{job="node-exporter",fstype!=""} * 100 < 3 and node_filesystem_readonly{job="node-exporter",fstype!=""} == 0 ) | 1h | 当节点上某个非只读文件系统的可用 inode 比例低于3%时触发。 |
NodeNetworkReceiveErrs | rate(node_network_receive_errs_total[2m]) / rate(node_network_receive_packets_total[2m]) > 0.01 | 1h | 当节点网络接口的接收错误包率(错误包数量/总接收包数量)持续2分钟高于1%时触发。 |
NodeNetworkTransmitErrs | rate(node_network_transmit_errs_total[2m]) / rate(node_network_transmit_packets_total[2m]) > 0.01 | 1h | 当节点网络接口的发送错误包率(错误包数量/总发送包数量)持续2分钟高于1%时触发。 |
NodeHighNumberConntrackEntriesUsed | (node_nf_conntrack_entries / node_nf_conntrack_entries_limit) > 0.75 | 5m | 当节点的网络连接跟踪表使用率超过75%时触发。 |
NodeClockSkewDetected | ( node_timex_offset_seconds > 0.05 and deriv(node_timex_offset_seconds[5m]) >= 0 ) or ( node_timex_offset_seconds < -0.05 and deriv(node_timex_offset_seconds[5m]) <= 0 ) | 10m | 当检测到节点时钟与 NTP 服务器(或监控系统)的偏移大于50毫秒,并且偏移量在5分钟内没有向0修正的趋势时触发。 |
NodeClockNotSynchronising | min_over_time(node_timex_sync_status[5m]) == 0 and node_timex_maxerror_seconds >= 16 | 10m | 当节点时钟在5分钟内未与 NTP 服务器同步(sync_status 为0),且最大误差超过16秒时触发。 |
NodeHighCPUUsage | 1 - avg by(instance, cluster) (rate(node_cpu_seconds_total{mode="idle"}[2m])) > 0.75 | 10m | 当节点平均 CPU 使用率(1 - 空闲率)持续2分钟高于75%时触发。 |
NodeHighMemoryUsage | 1 - node_memory_MemAvailable_bytes{} / node_memory_MemTotal_bytes{} > 0.75 | 10m | 当节点内存使用率(1 - 可用内存比例)高于75%时触发。 |
NodeStatusAbnormal | kube_node_status_condition{condition="Ready", status="true"} == 0 | 10m | 当 Kubernetes 节点状态不为“Ready”时触发。 |
Kubernetes 工作负载
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
KubePodCrashLooping | rate(kube_pod_container_status_restarts_total{job="kube-state-metrics"}[5m]) * 60 * 5 > 0 | 15m | 当某个 Pod 容器在5分钟内的重启频率大于0时触发。 |
KubePodNotReady | sum by (cluster,namespace, pod) ( max by(cluster,namespace, pod) ( kube_pod_status_phase{job="kube-state-metrics", phase=~"Pending|Unknown"} ) * on(cluster,namespace, pod) group_left(owner_kind) topk by(cluster,namespace, pod) ( 1, max by(cluster,namespace, pod, owner_kind) (kube_pod_owner{owner_kind!="Job"}) ) ) > 0 | 15m | 当非 Job 管理的 Pod 持续15分钟处于 Pending(等待调度)或 Unknown(状态未知)状态时触发。 |
KubeDeploymentGenerationMismatch | kube_deployment_status_observed_generation{job="kube-state-metrics"} != kube_deployment_metadata_generation{job="kube-state-metrics"} | 15m | 当 Deployment 的 observed_generation(控制器已观测到的版本)与 metadata_generation(当前期望的版本)不匹配持续15分钟时触发。 |
KubeDeploymentReplicasMismatch | ( kube_deployment_spec_replicas{job="kube-state-metrics"} != kube_deployment_status_replicas_available{job="kube-state-metrics"} ) and ( changes(kube_deployment_status_replicas_updated{job="kube-state-metrics"}[5m]) == 0 ) | 15m | 当 Deployment 的可用副本数(status_replicas_available)在5分钟内无变化,且持续不等于其期望的副本数(spec_replicas)时触发。 |
KubeStatefulSetReplicasMismatch | ( kube_statefulset_status_replicas_ready{job="kube-state-metrics"} != kube_statefulset_status_replicas{job="kube-state-metrics"} ) and ( changes(kube_statefulset_status_replicas_updated{job="kube-state-metrics"}[5m]) == 0 ) | 15m | 当 StatefulSet 的就绪副本数(status_replicas_ready)在5分钟内无变化,且持续不等于其当前副本总数(status_replicas)时触发。 |
KubeStatefulSetGenerationMismatch | kube_statefulset_status_observed_generation{job="kube-state-metrics"} != kube_statefulset_metadata_generation{job="kube-state-metrics"} | 15m | 当 StatefulSet 的 observed_generation 与 metadata_generation 不匹配持续15分钟时触发。 |
KubeStatefulSetUpdateNotRolledOut | ( max without (revision) ( kube_statefulset_status_current_revision{job="kube-state-metrics"} unless kube_statefulset_status_update_revision{job="kube-state-metrics"} ) * ( kube_statefulset_replicas{job="kube-state-metrics"} != kube_statefulset_status_replicas_updated{job="kube-state-metrics"} ) ) and ( changes(kube_statefulset_status_replicas_updated{job="kube-state-metrics"}[5m]) == 0 ) | 15m | 当 StatefulSet 存在一个更新版本(update_revision),但已更新的 Pod 副本数在5分钟内无变化,且不等于总副本数时触发。 |
KubeDaemonSetRolloutStuck | ( ( kube_daemonset_status_current_number_scheduled{job="kube-state-metrics"} != kube_daemonset_status_desired_number_scheduled{job="kube-state-metrics"} ) or ( kube_daemonset_status_number_misscheduled{job="kube-state-metrics"} != 0 ) or ( kube_daemonset_status_updated_number_scheduled{job="kube-state-metrics"} != kube_daemonset_status_desired_number_scheduled{job="kube-state-metrics"} ) or ( kube_daemonset_status_number_available{job="kube-state-metrics"} != kube_daemonset_status_desired_number_scheduled{job="kube-state-metrics"} ) ) and ( changes(kube_daemonset_status_updated_number_scheduled{job="kube-state-metrics"}[5m]) == 0 ) | 15m | 当 DaemonSet 满足以下任一条件且状态在5分钟内无进展时触发: 当前已调度的 Pod 数不等于期望的 Pod 数; 存在被错误调度到不匹配节点上的 Pod。 |
KubeContainerWaiting | sum by (namespace, pod, container,cluster) (kube_pod_container_status_waiting_reason{job="kube-state-metrics"}) > 0 | 1h | 当某个容器持续处于 Waiting 状态长达1小时时触发。 |
KubeDaemonSetNotScheduled | kube_daemonset_status_desired_number_scheduled{job="kube-state-metrics"} - kube_daemonset_status_current_number_scheduled{job="kube-state-metrics"} > 0 | 10m | 当 DaemonSet 的当前已调度 Pod 数持续10分钟低于其期望调度到所有匹配节点上的 Pod 数时触发。 |
KubeDaemonSetMisScheduled | kube_daemonset_status_number_misscheduled{job="kube-state-metrics"} > 0 | 15m | 当 DaemonSet 存在被“错误调度”的 Pod(即运行在不满足其节点选择器条件的节点上)持续15分钟时触发。 |
KubeJobCompletion | kube_job_spec_completions{job="kube-state-metrics"} - kube_job_status_succeeded{job="kube-state-metrics"} > 0 | 12h | 当 Job 在启动12小时后,其已成功完成的 Pod 数(succeeded)仍未达到 Job 规范中定义的预期完成数(completions)时触发。 |
KubeJobFailed | kube_job_failed{job="kube-state-metrics"} > 0 | 15m | 当 Job 的 Pod 执行失败(failed)时触发。 |
Kubernetes 资源
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
KubeCPUOvercommit | sum by (cluster) (namespace:kube_pod_container_resource_requests_cpu_cores:sum) / sum by (cluster) (kube_node_status_allocatable_cpu_cores) > (count by (cluster) (kube_node_status_allocatable_cpu_cores) - 1) / count by (cluster) (kube_node_status_allocatable_cpu_cores) | 5m | CPU 超售告警:当集群中所有 Pod 的 CPU 请求总量超过集群节点可分配 CPU 总量的 (N-1)/N时触发(N 为节点数)。 |
KubeCPUOvercommit(new) | sum by (cluster) (namespace:kube_pod_container_resource_requests_cpu_cores:sum) / sum by (cluster) (kube_node_status_allocatable{resource="cpu",unit="core"}) > (count by (cluster) (kube_node_status_allocatable{resource="cpu",unit="core"}) - 1) / count by (cluster) (kube_node_status_allocatable{resource="cpu",unit="core"}) | 5m | CPU 超售告警(新版指标):功能同上,但使用了新版资源指标 kube_node_status_allocatable。 |
KubeMemoryOvercommit | sum by (cluster) (namespace:kube_pod_container_resource_requests_memory_bytes:sum) / sum by (cluster) (kube_node_status_allocatable_memory_bytes) > (count by (cluster) (kube_node_status_allocatable_memory_bytes) - 1) / count by (cluster) (kube_node_status_allocatable_memory_bytes) | 5m | 内存超售告警:当集群中所有 Pod 的内存请求总量超过集群节点可分配内存总量的 (N-1)/N时触发。 |
KubeMemoryOvercommit(new) | sum by (cluster) (namespace:kube_pod_container_resource_requests_memory_bytes:sum) / sum by (cluster) (kube_node_status_allocatable{resource="memory",unit="byte"}) > (count by (cluster) (kube_node_status_allocatable{resource="memory",unit="byte"}) - 1) / count by (cluster) (kube_node_status_allocatable{resource="memory",unit="byte"}) | 5m | 内存超售告警(新版指标):功能同上,使用新版资源指标 |
KubeCPUQuotaOvercommit | sum by (cluster) (kube_resourcequota{job="kube-state-metrics",resource="cpu",type="hard"}) / sum by (cluster) (kube_node_status_allocatable_cpu_cores) > 1.5 | 5m | CPU 配额超售告警:当所有 Namespace 设置的 CPU 资源配额(硬限制)总和超过集群总可分配 CPU 的1.5倍时触发。 |
KubeCPUQuotaOvercommit(new) | sum by (cluster) (kube_resourcequota{job="kube-state-metrics",resource="cpu",type="hard"}) / sum by (cluster) (kube_node_status_allocatable{resource="cpu",unit="core"}) > 1.5 | 5m | CPU 配额超售告警(新版指标):功能同上,使用新版指标。 |
KubeMemoryQuotaOvercommit | sum by (cluster) (kube_resourcequota{job="kube-state-metrics",resource="memory",type="hard"}) / sum by (cluster) (kube_node_status_allocatable_memory_bytes{job="kube-state-metrics"}) > 1.5 | 5m | 内存配额超售告警:当所有 Namespace 设置的内存资源配额(硬限制)总和超过集群总可分配内存的1.5倍时触发。 |
KubeMemoryQuotaOvercommit(new) | sum by (cluster) (kube_resourcequota{job="kube-state-metrics",resource="memory",type="hard"}) / sum by (cluster) (kube_node_status_allocatable{job="kube-state-metrics",resource="memory",unit="byte"}) > 1.5 | 5m | 内存配额超售告警(新版指标):功能同上,使用新版指标。 |
KubeQuotaAlmostFull | kube_resourcequota{job="kube-state-metrics",type="used"} / ignoring (instance, job, type) (kube_resourcequota{job="kube-state-metrics",type="hard"} > 0) > 0.9 < 1 | 15m | 资源配额使用率预警:当某个 Namespace 下任意一种资源(如 CPU、内存)的使用量达到其硬性配额限制的90%以上但未超过时触发。 |
KubeQuotaExceeded | kube_resourcequota{job="kube-state-metrics",type="used"} / ignoring (instance, job, type) (kube_resourcequota{job="kube-state-metrics",type="hard"} > 0) > 1 | 15m | 资源配额超限告警:当某个 Namespace 下任意一种资源的使用量超过其硬性配额限制时触发。 |
PodCPULimitRate | sum by (cluster, namespace, pod, container) (rate(container_cpu_usage_seconds_total{container!="POD",image!="",job=~"cadvisor|eks-network"}[1m])) / sum by (cluster, namespace, pod, container) (kube_pod_container_resource_limits_cpu_cores > 0) > 0.8 | 15m | 容器 CPU 使用率(对比 Limit)高:当某个容器的 CPU 实际使用率持续超过其设置的 Limit 限制的80%时触发。 |
PodCPULimitRate(new) | sum by (cluster, namespace, pod, container) (rate(container_cpu_usage_seconds_total{container!="POD",image!="",job=~"cadvisor|eks-network"}[1m])) / sum by (cluster, namespace, pod, container) (kube_pod_container_resource_limits{resource="cpu",unit="core"} > 0) > 0.8 | 15m | 容器 CPU 使用率(对比Limit)高(新版指标):功能同上,使用新版指标。 |
PodCPURequestRate | sum by (cluster, namespace, pod, container) (rate(container_cpu_usage_seconds_total{container!="POD",image!="",job=~"cadvisor|eks-network"}[1m])) / sum by (cluster, namespace, pod, container) (kube_pod_container_resource_requests_cpu_cores > 0) > 0.8 | 15m | 容器 CPU 使用率(对比 Request)高:当某个容器的 CPU 实际使用率持续超过其设置的 Request 请求值的80%时触发。 |
PodCPURequestRate(new) | sum by (cluster, namespace, pod, container) (rate(container_cpu_usage_seconds_total{container!="POD",image!="",job=~"cadvisor|eks-network"}[1m])) / sum by (cluster, namespace, pod, container) (kube_pod_container_resource_requests{resource="cpu",unit="core"} > 0) > 0.8 | 15m | 容器 CPU 使用率(对比 Request)高:功能同上,使用新版指标。 |
PodMemoryLimitRate | sum by (cluster, namespace, pod, container) (container_memory_working_set_bytes{container!="POD",image!="",job=~"cadvisor|eks-network"}) / sum by (cluster, namespace, pod, container) (kube_pod_container_resource_limits_memory_bytes > 0) > 0.8 | 15m | 容器内存使用率(对比 Limit)高:当某个容器的内存工作集(Working Set)使用量持续超过其设置的 Limit 限制的80%时触发。 |
PodMemoryLimitRate(new) | sum by (cluster, namespace, pod, container) (container_memory_working_set_bytes{container!="POD",image!="",job=~"cadvisor|eks-network"}) / sum by (cluster, namespace, pod, container) (kube_pod_container_resource_limits{resource="memory",unit="byte"} > 0) > 0.8 | 15m | 容器内存使用率(对比 Limit)高:功能同上,使用新版指标。 |
PodMemoryRequestRate | sum by (cluster, namespace, pod, container) (container_memory_working_set_bytes{container!="POD",image!="",job=~"cadvisor|eks-network"}) / sum by (cluster, namespace, pod, container) (kube_pod_container_resource_requests_memory_bytes > 0) > 0.8 | 15m | 容器内存使用率(对比 Request)高:当某个容器的内存工作集使用量持续超过其设置的 Request 请求值的80%时触发。 |
PodMemoryRequestRate(new) | sum by (cluster, namespace, pod, container) (container_memory_working_set_bytes{container!="POD",image!="",job=~"cadvisor|eks-network"}) / sum by (cluster, namespace, pod, container) (kube_pod_container_resource_requests{resource="memory",unit="byte"} > 0) > 0.8 | 15m | 容器内存使用率(对比 Request)高(新版指标):功能同上,使用新版指标。 |
Kubernetes 存储
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
KubePersistentVolumeFillingUp | kubelet_volume_stats_available_bytes{job="kubelet"} / kubelet_volume_stats_capacity_bytes{job="kubelet"} < 0.03 | 0m | 当持久卷(PV)的可用空间比例低于3%时立即触发。 |
KubePersistentVolumeNearFillingUp | ( kubelet_volume_stats_available_bytes{job="kubelet"} / kubelet_volume_stats_capacity_bytes{job="kubelet"} ) < 0.15 and predict_linear(kubelet_volume_stats_available_bytes{job="kubelet"}[6h], 4 * 24 * 3600) < 0 | 1h | 当持久卷的可用空间比例低于15%,并且基于过去6小时的数据增长趋势,预测其可用空间将在未来4天内耗尽时触发。 |
KubePersistentVolumeErrors | kube_persistentvolume_status_phase{phase=~"Failed|Pending",job="kube-state-metrics"} > 0 | 5m | 当持久卷(PV)处于异常的 Failed(失败)或 Pending(挂起)状态持续5分钟时触发。 |
Kubernetes Master
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
KubeClientErrors | (sum(rate(rest_client_requests_total{code=~"5.."}[5m])) by (instance, job, cluster) / sum(rate(rest_client_requests_total[5m])) by (instance, job, cluster)) > 0.01 | 15m | 当发送给 Kubernetes API Server 的客户端请求中,HTTP 5xx 服务器错误率超过1%并持续15分钟时触发。 |
KubeClientCertificateExpiration | apiserver_client_certificate_expiration_seconds_count{job=~"apiserver|kube-apiserver"} > 0 and on(cluster, job) histogram_quantile(0.01, sum by (cluster, job, le) (rate(apiserver_client_certificate_expiration_seconds_bucket{job=~"apiserver|kube-apiserver"}[5m]))) < 86400 | 15m | 当监测到有客户端证书(由 API Server 验证)将在未来24小时内过期时触发。 |
KubeAPIDown | sum(up{job="kube-apiserver"}) by (cluster) == 0 | 15m | 当在集群级别检测不到任何健康的 kube-apiserver 实例持续15分钟时触发。 |
KubeSchedulerDown | sum(up{job="kube-scheduler"}) by (cluster) == 0 | 15m | 当集群级别所有 kube-scheduler 实例都不可用持续15分钟时触发。 |
KubeControllerManagerDown | sum(up{job="kube-controller-manager"}) by (cluster) == 0 | 15m | 当集群级别所有 kube-controller-manager 实例都不可用持续15分钟时触发。 |
Kubernetes Kubelet
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
KubeNodeNotReady | kube_node_status_condition{job="kube-state-metrics",condition="Ready",status="true"} == 0 | 15m | 当某个 Kubernetes 节点(Node)的 Ready 条件状态不为 true(即节点不健康)持续15分钟时触发。 |
KubeletClientCertificateExpiration | kubelet_certificate_manager_client_ttl_seconds < 86400 | 15m | 当 Kubelet 用于连接 API Server 的客户端证书的剩余有效期(TTL)小于24小时(86400秒)时触发。 |
KubeletServerCertificateExpiration | kubelet_certificate_manager_server_ttl_seconds < 86400 | 15m | 当 Kubelet 自身服务端证书的剩余有效期(TTL)小于24小时时触发。 |
KubeletDown | sum(up{job="kubelet"}) by (cluster) == 0 | 15m | 当在集群级别检测不到任何健康的 kubelet 实例(即所有实例up==0)持续15分钟时触发。 |
MySQL
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
MySQL 停机 | mysql_up != 1 | 1m | MySQL 没有在运行 |
MySQL 状态异常 | mysql_global_status_wsrep_ready != 1 | 5m | MySQL 状态异常 |
MySQL 连接数过多 | avg by (instance) (mysql_global_status_threads_connected) / avg by (instance) (mysql_global_variables_max_connections) > 0.8 | 2m | MySQL 连接数过多 |
MySQL 慢查询 | increase(mysql_global_status_slow_queries[1m]) > 0 | 2m | MySQL 慢查询 |
MySQL Slave 停机 | mysql_slave_status_master_server_id > 0 and ON (instance) mysql_slave_status_slave_io_running == 0 | 0m | MySQL Slave 停机 |
MySQL 复制延时 | mysql_slave_status_master_server_id > 0 and ON (instance) (mysql_slave_status_seconds_behind_master - mysql_slave_status_sql_delay) > 30 | 1m | MySQL 复制延时 |
健康巡检
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
目标服务不可用 | probe_success == 0 | 0m | 目标服务不可用 |
服务响应过慢 | avg_over_time(probe_duration_seconds[1m]) > 1 | 1m | 服务响应过慢 |
SSL 证书即将过期 | probe_ssl_earliest_cert_expiry - time() < 86400 * 30 | 0m | SSL 证书即将过期 |
SSL 证书已过期 | probe_ssl_earliest_cert_expiry - time() <= 0 | 0m | SSL 证书已过期 |
HTTP 服务响应异常 | probe_http_status_code <= 199 OR probe_http_status_code >= 400 | 0m | HTTP 服务响应异常 |
Redis
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
Redis 停机 | redis_up == 0 | 0m | Redis 没有在运行 |
Redis 连接数过多 | (redis_connected_clients / redis_config_maxclients) > 0.80 | 1m | Redis 连接数过多 |
Redis 内存使用率过高 | (redis_connected_clients / redis_config_maxclients) > 0.85 | 1m | Redis 内存使用率过高 |
Redis 拒绝连接数过多 | increase(redis_rejected_connections_total[1m]) > 0 | 1m | Redis 拒绝连接数过多 |
NodeExporter
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
内存使用率过高 | (1-node_memory_MemAvailable_bytes / node_memory_MemTotal_bytes) > 0.85 | 2m | 内存使用率过高 |
CPU 使用率过高 | 1 - (avg by(instance) (rate(node_cpu_seconds_total{mode="idle"}[2m]))) > 0.75 | 1m | CPU 使用率过高 |
网络入口流量过高 | sum by (instance) (rate(node_network_receive_bytes_total[2m])) >100*1024*1024 | 2m | 网络入口流量过高 |
网络出口流量过高 | sum by (instance) (rate(node_network_transmit_bytes_total[2m])) > 100 * 1024 * 1024 | 2m | 网络出口流量过高 |
磁盘读过大 | sum by (instance) (rate(node_disk_read_bytes_total[2m])) > 50*1024 *1024 | 2m | 磁盘读过大 |
磁盘写过大 | sum by (instance) (rate(node_disk_written_bytes_total[2m])) > 50 * 1024 * 1024 | 2m | 磁盘写过大 |
磁盘使用率过高 | 1- node_filesystem_avail_bytes / node_filesystem_size_bytes > 0.85 | 2m | 磁盘使用率过高 |
Agent
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
Agent 健康检查 | up{job="prometheus-agent"} != 1 | 1m | Agent 健康检查 |
ClickHouse
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
单机 TCP 连接数大于等于100 | ClickHouseMetrics_TCPConnection{job="job-clickhouse"} >= 100 | 0m | 单机 TCP 连接数大于等于100 |
单机 HTTP 连接数大于等于100 | ClickHouseMetrics_HTTPConnection{job="job-clickhouse"}>= 100 | 0m | 单机 HTTP 连接数大于等于100 |
单机 CPU 使用率大于85% | 100 - (avg by (instance) (rate(node_cpu_seconds_total{job=~"job-node",mode="idle"}[1m])) * 100) >=85 | 0m | 单机 CPU 使用率大于85% |
单机数据盘使用率大于85% | max((node_filesystem_size_bytes{job=~"job-node",mountpoint="/data"}-node_filesystem_free_bytes{job=~"job-node",mountpoint="/data"}) *100/(node_filesystem_avail_bytes {job=~"job-node",mountpoint="/data"}+(node_filesystem_size_bytes{job=~"job-node",mountpoint="/data"}-node_filesystem_free_bytes{job=~"job-node",mountpoint="/data"})))by(instance) >=85 | 1m | 单机数据盘使用率大于85% |
单机内存使用率超过85% | (100 - ((node_memory_MemAvailable_bytes{job="job-node"} * 100) / node_memory_MemTotal_bytes{job="job-node"})) >=85 | 0m | 单机内存使用率超过85% |
节点健康检查 | up{job="job-clickhouse"} !=1 | 1m | 节点健康检查 |
TKE 基础采集任务
规则名称 | 规则表达式 | 持续时间 | 规则描述 |
KubeStateMetricsJobMissing | sum(up) by (cluster) unless (sum(up{job="kube-state-metrics"}) by (cluster)) | 0m | kube-state-metrics 采集任务消失 |
KubeStateMetricsJobDown | up{job="kube-state-metrics"} == 0 | 0m | kube-state-metrics 实例采集失败 |
KubeStateMetricsShardMissing | kube_statefulset_status_replicas{statefulset="tke-kube-state-metrics"} > on(cluster) (count(up{job="kube-state-metrics"}) by (cluster)) | 0m | kube-state-metrics 分片丢失 |
NodeExporterJobMissing | (sum(up{job="cadvisor"}) by (cluster)) unless (sum(up{job="node-exporter"}) by (cluster)) | 0m | node-exporter 采集任务消失 |