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方法)

监控建议

  1. 关键性能指标:重点关注controller_runtime_reconcile_time_secondswork_sync_workload_duration_seconds
  2. 错误监控:监控所有*_errors_total*_total{result="error"}指标
  3. 资源使用:关注内存、CPU和文件描述符使用情况
  4. 集群健康:监控cluster_ready_statecluster_ready_node_number
  5. 高可用状态:监控leader_election_master_status确保控制器正常工作

这些指标为Karmada多集群管理系统提供了全面的可观测性,帮助运维人员及时发现和解决问题。

0%