Karmada控制器Prometheus指标详解
Karmada控制器Prometheus指标详解
本文档详细解释了Karmada控制器暴露的Prometheus指标,这些指标对于监控和运维Karmada多集群管理系统至关重要。
1. 集群资源指标
1.1 集群基础资源
cluster_cpu_allocatable_number
(Gauge)- 描述:集群中可分配的CPU核心数量
- 用途:监控集群CPU资源容量
- 标签:cluster(集群名称)
cluster_memory_allocatable_bytes
(Gauge)- 描述:集群中可分配的内存字节数
- 用途:监控集群内存资源容量
- 标签:cluster(集群名称)
cluster_pod_allocatable_number
(Gauge)- 描述:集群中可分配的Pod数量
- 用途:监控集群Pod容量限制
- 标签:cluster(集群名称)
1.2 集群节点状态
cluster_node_number
(Gauge)- 描述:集群中节点总数
- 用途:监控集群规模
- 标签:cluster(集群名称)
cluster_ready_node_number
(Gauge)- 描述:集群中处于Ready状态的节点数量
- 用途:监控集群健康状态
- 标签:cluster(集群名称)
cluster_ready_state
(Gauge)- 描述:集群整体就绪状态(0=未就绪,1=就绪)
- 用途:快速判断集群是否可用
- 标签:cluster(集群名称)
2. 控制器运行时指标
2.1 工作线程和并发
controller_runtime_active_workers
(Gauge)- 描述:各控制器当前活跃的工作线程数
- 用途:监控控制器工作负载
- 标签:controller(控制器名称)
controller_runtime_max_concurrent_reconciles
(Gauge)- 描述:各控制器最大并发协调数
- 用途:了解控制器并发配置
- 标签:controller(控制器名称)
2.2 协调性能指标
controller_runtime_reconcile_time_seconds
(Histogram)- 描述:控制器协调操作耗时分布
- 用途:监控控制器性能,识别性能瓶颈
- 标签:controller(控制器名称)
- 桶:0.005, 0.01, 0.025, 0.05, 0.1, 0.15, 0.2, 0.25, 0.3, 0.35, 0.4, 0.45, 0.5, 0.6, 0.7, 0.8, 0.9, 1.0, 1.25, 1.5, 1.75, 2.0, 2.5, 3.0, 3.5, 4.0, 4.5, 5, 6, 7, 8, 9, 10, 15, 20, 25, 30, 40, 50, 60
controller_runtime_reconcile_total
(Counter)- 描述:控制器协调操作总次数
- 用途:监控控制器活动频率和结果
- 标签:controller(控制器名称),result(结果:error/requeue/requeue_after/success)
controller_runtime_reconcile_errors_total
(Counter)- 描述:控制器协调错误总数
- 用途:监控控制器错误率
- 标签:controller(控制器名称)
3. 业务逻辑指标
3.1 工作同步指标
binding_sync_work_duration_seconds
(Histogram)- 描述:绑定同步工作的持续时间
- 用途:监控资源绑定同步性能
work_sync_workload_duration_seconds
(Histogram)- 描述:工作负载同步到目标集群的持续时间
- 用途:监控跨集群工作负载同步性能
- 标签:result(结果:error/success)
3.2 策略应用指标
policy_apply_attempts_total
(Counter)- 描述:策略应用尝试总数
- 用途:监控PropagationPolicy和ClusterPropagationPolicy的应用情况
- 标签:result(结果:error/success)
resource_apply_policy_duration_seconds
(Histogram)- 描述:资源应用策略的持续时间
- 用途:监控策略应用性能
- 标签:result(结果:error/success)
resource_match_policy_duration_seconds
(Histogram)- 描述:资源匹配策略的持续时间
- 用途:监控策略匹配性能
3.3 FederatedHPA指标
federatedhpa_process_duration_seconds
(Histogram)- 描述:FederatedHPA处理持续时间
- 用途:监控联邦HPA性能
- 标签:result(结果)
federatedhpa_pull_metrics_duration_seconds
(Histogram)- 描述:FederatedHPA拉取指标的持续时间
- 用途:监控指标拉取性能
- 标签:metric_type(指标类型),result(结果)
4. 系统级指标
4.1 证书监控
certwatcher_read_certificate_errors_total
(Counter)- 描述:证书读取错误总数
- 用途:监控证书相关问题
4.2 领导选举
leader_election_master_status
(Gauge)- 描述:领导选举状态(0=备份,1=主节点)
- 用途:监控控制器高可用状态
- 标签:name(选举名称)
4.3 资源池管理
pool_get_operation_total
(Counter)- 描述:从资源池获取资源的总次数
- 用途:监控资源池使用情况
- 标签:from(来源:new/pool),name(池名称)
pool_put_operation_total
(Counter)- 描述:向资源池放入资源的总次数
- 用途:监控资源池回收情况
- 标签:name(池名称),to(目标)
5. Go运行时指标
5.1 垃圾回收
go_gc_duration_seconds
(Summary)- 描述:GC暂停时间分布
- 用途:监控GC性能影响
go_memstats_last_gc_time_seconds
(Gauge)- 描述:上次GC时间(Unix时间戳)
- 用途:监控GC频率
5.2 内存使用
go_memstats_alloc_bytes
(Gauge)- 描述:当前分配的内存字节数
- 用途:监控内存使用情况
go_memstats_heap_*
系列指标- 描述:堆内存详细统计
- 用途:深入分析内存使用模式
5.3 协程和线程
go_goroutines
(Gauge)- 描述:当前goroutine数量
- 用途:监控并发情况
go_threads
(Gauge)- 描述:OS线程数量
- 用途:监控系统资源使用
6. 进程指标
process_cpu_seconds_total
(Counter)- 描述:进程CPU使用总时间
- 用途:监控CPU使用情况
process_resident_memory_bytes
(Gauge)- 描述:常驻内存大小
- 用途:监控内存占用
process_open_fds
(Gauge)- 描述:打开的文件描述符数量
- 用途:监控文件句柄使用情况
7. 网络请求指标
rest_client_requests_total
(Counter)- 描述:REST客户端请求总数
- 用途:监控API调用情况
- 标签:code(HTTP状态码),host(目标主机),method(HTTP方法)
监控建议
- 关键性能指标:重点关注
controller_runtime_reconcile_time_seconds
和work_sync_workload_duration_seconds
- 错误监控:监控所有
*_errors_total
和*_total{result="error"}
指标 - 资源使用:关注内存、CPU和文件描述符使用情况
- 集群健康:监控
cluster_ready_state
和cluster_ready_node_number
- 高可用状态:监控
leader_election_master_status
确保控制器正常工作
这些指标为Karmada多集群管理系统提供了全面的可观测性,帮助运维人员及时发现和解决问题。