主机相关指标
1. CPU
- CPU使用率(CPU Utilization):监控CPU的总使用率和各核心使用率。高使用率可能表明负载过重。
- 系统占用率(System CPU Usage):表示操作系统内核占用的CPU时间,持续过高可能需要关注系统进程和配置。
- 用户占用率(User CPU Usage):表示用户进程占用的CPU时间,帮助评估应用对CPU的需求。
- CPU等待时间(IO Wait):CPU等待磁盘或网络I/O操作完成的时间,较高的I/O等待可能意味着磁盘或网络瓶颈。
2. 内存
- 内存使用率(Memory Usage):当前内存使用量,帮助识别内存消耗情况。高使用率可能导致性能下降。
- 可用内存(Available Memory):系统剩余内存量,低可用内存可能表明系统接近内存上限。
- 缓存内存(Cached Memory):操作系统用作缓存的内存量,有助于提高文件和块设备的访问速度。
3. 磁盘
- 磁盘使用率(Disk Usage):磁盘分区的使用情况,帮助监控磁盘空间是否充足。
- 磁盘读写速率(Disk Read/Write Rate):每秒的磁盘读取和写入字节数,表示I/O活跃度。
- 磁盘I/O等待时间(Disk IO Wait Time):等待磁盘I/O操作完成的时间。高I/O等待时间可能表明磁盘性能不足。
- 磁盘I/O操作次数(Disk IO Operations):每秒读写操作的次数,帮助识别I/O瓶颈。
4. 网络
- 网络吞吐量(Network Throughput):每秒传输的数据量,包括入网(接收)和出网(发送),帮助了解网络带宽的使用情况。
- 网络延迟(Network Latency):数据在网络中的传输时间,延迟增加可能表明网络拥堵或带宽不足。
- 丢包率(Packet Loss):数据包传输过程中丢失的比例,高丢包率通常表明网络问题。
- 网络连接数(Network Connections):活跃的TCP/UDP连接数,帮助识别网络连接的使用情况。
5. 进程
- 关键进程CPU和内存占用:监控关键进程的CPU和内存使用情况,及时发现异常消耗资源的进程。
- 进程运行时间(Process Uptime):记录进程的持续运行时间,有助于发现进程的重启或异常终止。
K8S 相关指标
1. Pod 和容器
container_cpu_usage_seconds_total: 容器的CPU使用时间(秒)。
container_memory_usage_bytes: 容器使用的内存(字节)。
container_memory_working_set_bytes: 容器正在使用的内存,不包括缓存。
container_fs_usage_bytes: 容器使用的磁盘空间(字节)。
container_last_seen: 容器最后一次被检查的时间。
container_start_time_seconds: 容器的启动时间戳(秒)。
kube_pod_status_phase: Pod的当前状态(Running、Pending、Succeeded、Failed、Unknown)。
kube_pod_container_status_restarts_total: Pod容器的重启次数。
kube_pod_container_status_running: Pod容器是否正在运行。
kube_pod_container_status_terminated: Pod容器是否已终止。
kube_pod_container_status_waiting: Pod容器是否处于等待状态。
2. 调度和资源分配
- kube_pod_container_resource_requests_cpu_cores: Pod容器请求的CPU资源(核)。
- kube_pod_container_resource_requests_memory_bytes: Pod容器请求的内存资源(字节)。
- kube_pod_container_resource_limits_cpu_cores: Pod容器的CPU限制(核)。
- kube_pod_container_resource_limits_memory_bytes: Pod容器的内存限制(字节)。
- kube_node_status_capacity_cpu_cores: 节点的CPU总容量(核)。
- kube_node_status_capacity_memory_bytes: 节点的内存总容量(字节)。
- kube_node_status_allocatable_cpu_cores: 节点的可分配CPU容量(核)。
- kube_node_status_allocatable_memory_bytes: 节点的可分配内存容量(字节)。
3. 控制器和副本
- kube_deployment_status_replicas: Deployment的当前副本数。
- kube_deployment_status_replicas_updated: 已更新的Deployment副本数。
- kube_replica_set_status_replicas: ReplicaSet的副本数。
- kube_replica_set_status_replicas_available: 可用的ReplicaSet副本数。
- kube_statefulset_status_replicas: StatefulSet的副本数。
- kube_statefulset_status_replicas_available: 可用的StatefulSet副本数。
4. API服务
- apiserver_request_duration_seconds: API服务器处理请求的时间(秒)。
- apiserver_request_count: API服务器处理的请求总数。
- apiserver_request_latencies_seconds: API服务器请求的延迟分布。
- controller_manager_reconcile_duration_seconds: 控制器管理器的重新调度时长(秒)。
- controller_manager_reconcile_count: 控制器管理器的重新调度次数。
5. 网络和负载
- kube_service_info: Kubernetes服务的元数据。
- kube_endpoint_address_count: 服务的地址数。
- kube_service_spec_type: 服务类型(ClusterIP、NodePort、LoadBalancer等)。
6. 存储
- kube_persistentvolumeclaim_resource_requests_storage_bytes: 持久卷声明请求的存储空间(字节)。
- kube_persistentvolumeclaim_resource_requests_storage_bytes: 持久卷声明实际使用的存储空间(字节)。
- kube_persistentvolume_status_phase: 持久卷的状态(Available、Bound、Released、Failed)。
Redis 相关指标
1. 资源使用
used_cpu_sys: Redis进程在系统中使用的CPU时间(秒)。
used_cpu_user: Redis进程在用户空间中使用的CPU时间(秒)。
used_cpu_sys_children: 所有子进程在系统中使用的CPU时间(秒)。
used_cpu_user_children: 所有子进程在用户空间中使用的CPU时间(秒)。
used_memory_rss: 操作系统分配给Redis进程的内存量(RSS)。
used_memory_peak: Redis实例的最大内存使用量(字节)。
maxmemory: Redis配置的最大内存限制(字节)。
mem_fragmentation_ratio: 内存碎片率。计算为
used_memory_rss / used_memory,用于指示内存的浪费情况。used_memory: Redis实例已使用的内存总量(字节)。
2. 键值操作
- total_connections_received: Redis接收到的总连接数。
- total_commands_processed: Redis处理的命令总数。
- keyspace_hits: 查询缓存命中的次数。
- keyspace_misses: 查询缓存未命中的次数。
- evicted_keys: 被驱逐的键数(由于内存限制)。
- expired_keys: 过期的键数。
- persistent_connections: 持久连接数。
3. 持久化
- rdb_changes_since_last_save: 上次RDB持久化以来的键变更数量。
- rdb_last_bgsave_status: 上次RDB保存操作的状态(OK或ERROR)。
- rdb_last_save_time: 上次RDB持久化的时间戳。
- aof_current_size: AOF文件的当前大小(字节)。
- aof_last_bgrewrite_status: 上次AOF重写的状态。
- aof_last_write_status: 上次AOF写操作的状态。
4. 集群和复制
- role: Redis实例的角色(master/slave)。
- connected_slaves: 当前连接的从节点数。
- master_last_io_seconds_ago: 主节点与从节点的最后交互时间(秒)。
- replication_backlog_active: 是否启用复制积压日志(1表示启用,0表示禁用)。
5. 网络
- total_net_input_bytes: Redis接收到的总字节数。
- total_net_output_bytes: Redis发送的总字节数。
- blocked_clients: 当前被阻塞的客户端数。
6. 慢查询
slowlog_len: Redis慢查询日志中的条目数。
slowlog_get (N): 获取N条慢查询日志记录。
MinIO 相关指标
1. 资源使用
minio_memory_used_bytes: 当前内存使用量(字节数)。minio_cpu_usage: CPU使用率。minio_cpu_load: CPU负载(1分钟、5分钟、15分钟平均负载
2. 请求和吞吐量
minio_api_requests_total: API 请求的总数。minio_api_request_duration_seconds: API 请求的响应时间(秒)。minio_api_requests_rate: API 请求速率(每秒请求数)。minio_api_errors_total: API 请求中的错误总数。minio_api_success_total: 成功处理的 API 请求总数。minio_api_latency_seconds: API 请求的延迟时间(秒)。
3. 网络
minio_network_received_bytes_total: 从客户端接收的总字节数。minio_network_sent_bytes_total: 向客户端发送的总字节数。minio_network_error_total: 网络错误的总数。minio_network_requests_total: 网络请求总数。
4. 错误和异常
minio_errors_total: 总的错误次数。minio_error_rate: 错误率(每秒发生的错误数)。minio_object_errs: 对象存储中的错误数量。minio_request_errs: API 请求中的错误数量。
5. 健康和状态
minio_health_check: MinIO实例的健康检查状态。minio_uptime_seconds: MinIO实例的运行时间(秒)。minio_heartbeat: 用于检测节点心跳的状态。minio_watchdog_timeouts: 监控超时的次数。minio_cluster_health: MinIO集群的健康状况(用于集群部署)。minio_cluster_nodes: 集群中可用节点的数量。
