ydswin

忘记背后,努力面前的,向着标杆直跑

导航

Prometheus常用exporter及其常用监控指标

node-exporter常用监控指标

  1. CPU相关指标:
    • node_cpu_seconds_total{mode="idle"}:CPU空闲时间(秒)的总和。这是评估CPU使用率的重要指标之一。
    • node_cpu_seconds_total{mode="system"}node_cpu_seconds_total{mode="user"}等:分别表示CPU在内核态和用户态的运行时间。
  2. 内存相关指标:
    • node_memory_MemTotal_bytes:内存总量(以字节为单位)。
    • node_memory_MemFree_bytes:空闲内存大小(以字节为单位)。
    • node_memory_Buffers_bytesnode_memory_Cached_bytes:分别表示被内核用作缓冲和缓存的内存大小。
    • node_memory_SwapTotal_bytesnode_memory_SwapFree_bytes:分别表示交换空间的总大小和空闲大小。
  3. 磁盘相关指标:
    • node_filesystem_size_bytes:文件系统的大小(以字节为单位)。
    • node_filesystem_free_bytesnode_filesystem_avail_bytes:分别表示文件系统的空闲空间和非root用户可用的空间大小。
    • node_disk_io_nownode_disk_io_time_seconds_total等:与磁盘I/O操作相关的指标,如当前正在进行的I/O操作数以及花费在I/O操作上的总时间。
  4. 网络相关指标:
    • node_network_receive_bytes_totalnode_network_transmit_bytes_total:分别表示网络接口接收和发送的总字节数。这些指标对于评估网络流量和带宽使用情况非常重要。
  5. 系统负载相关指标:
    • node_load1node_load5node_load15:分别表示系统在过去1分钟、5分钟和15分钟的平均负载。这些指标有助于了解系统的整体忙碌程度和性能表现。

要获取完整的指标列表,可以访问 node-exporter 的 metrics 端点(通常是 /metrics)。

mysql-exporter常用监控指标:

  1. MySQL 全局状态指标:
    • mysql_global_status_uptime:MySQL 服务器的运行时间(以秒为单位)。
    • mysql_global_status_threads_connected:当前打开的连接数。
    • mysql_global_status_threads_running:当前正在运行的线程数。
    • mysql_global_status_queries:从服务器启动开始执行的查询总数。
    • mysql_global_status_questions:从服务器启动开始接收的客户端查询总数。
  2. MySQL 复制指标(如果配置了复制):
    • mysql_slave_status_slave_io_running:表示 IO 线程是否正在运行(1 为运行,0 为停止)。
    • mysql_slave_status_slave_sql_running:表示 SQL 线程是否正在运行(1 为运行,0 为停止)。
    • mysql_slave_status_seconds_behind_master:从服务器相对于主服务器的延迟时间(以秒为单位)。
  3. InnoDB 存储引擎指标:
    • mysql_global_status_innodb_buffer_pool_read_requests:InnoDB 缓冲池执行的逻辑读请求数。
    • mysql_global_status_innodb_buffer_pool_reads:不能满足 InnoDB 缓冲池而直接从磁盘读取的请求数。
    • mysql_global_status_innodb_row_lock_time_avg:平均行锁定时间(以毫秒为单位)。
    • mysql_global_status_innodb_row_lock_time_max:最大行锁定时间(以毫秒为单位)。
  4. 连接和资源使用指标:
    • mysql_global_variables_max_connections:MySQL 配置的最大连接数。
    • mysql_global_status_aborted_connects:尝试连接到 MySQL 服务器但失败的连接数。
    • mysql_global_status_connection_errors_total:由于各种原因导致的连接错误总数。
  5. 查询缓存指标(如果启用了查询缓存):
    • mysql_global_status_qcache_hits:查询缓存命中次数。
    • mysql_global_status_qcache_inserts:插入到查询缓存中的查询次数。
    • mysql_global_status_qcache_not_cached:由于查询类型或其他原因而无法缓存的查询次数。
  6. 其他常用指标:
    • mysql_exporter_last_scrape_duration_secondsmysql-exporter 上次抓取指标所花费的时间。
    • mysql_exporter_scrape_errors_totalmysql-exporter 在抓取过程中遇到的错误总数。

要获取完整的指标列表,可以访问 mysql-exporter 的 metrics 端点(通常是 /metrics)。此外,对于特定的监控需求,可能还需要结合 MySQL 的性能和配置进行进一步的定制和选择。

redis-exporter 常用监控指标

  1. Redis 连接相关指标:
    • redis_connected_clients:当前连接的 Redis 客户端数量。
    • redis_connected_slaves:当前连接的 Redis 从节点数量。
    • redis_blocked_clients:正在等待 Redis 的客户端数量(通常因为 BLPOP、BRPOP、BRPOPLPUSH 等命令阻塞)。
  2. Redis 性能相关指标:
    • redis_instantaneous_ops_per_sec:每秒执行的操作数,反映 Redis 的处理速度。
    • redis_latency_spike_duration_seconds:最近一次延迟峰值持续了多长时间(秒),这是检测性能问题的一个标志。
  3. 内存使用相关指标:
    • redis_mem_used_bytes:Redis 使用的内存大小(字节)。
    • redis_mem_fragmentation_ratio:内存碎片率,当该值远大于 1 时,表示存在较多的内存碎片。
    • redis_evicted_keys_total:由于 maxmemory 限制而被淘汰的 key 的总数量。
    • redis_expired_keys_total:已过期的 key 的总数量。
  4. 持久性相关指标:
    • redis_rdb_last_save_time_seconds:自从 Redis 服务器启动以来,最后一次 RDB 持久化的 UNIX 时间戳。
    • redis_rdb_changes_since_last_save:自从最后一次 RDB 持久化以来,数据库发生的改变次数。
    • redis_aof_current_size_bytes:当前 AOF 文件的大小(字节)。
    • redis_aof_last_rewrite_time_seconds:上一次 AOF 重写操作的耗时(秒)。
  5. 其他常用指标:
    • redis_uptime_in_seconds:Redis 自启动以来的运行时间(秒)。
    • redis_keyspace_hits_totalredis_keyspace_misses_total:键空间命中和未命中的总数,这些可以帮助了解缓存的效率。

blackbox-exporter 常用监控指标

  1. HTTP指标:
  • http_status_code:HTTP响应状态码,如200、404、500等。
  • http_content_length:HTTP响应内容长度。
  • http_request_duration_seconds:HTTP请求延迟。
  • http_ssl_expiry_seconds:HTTPS证书过期时间。
  1. DNS指标:
  • dns_lookup_time_seconds:DNS查询时间。
  • dns_lookup_error:DNS查询是否出错。
  1. TCP指标:
  • tcp_connect_time_seconds:TCP连接时间。
  • tcp_connection_refused:TCP连接是否被拒绝。
  1. ICMP指标:
  • icmp_response:ICMP响应是否正常,通常用于检测远程主机是否在线(存活状态)。

kafka-exporter常用监控指标

Kafka集群和Broker相关指标

  • kafka_cluster_id:Kafka集群的唯一标识符。
  • kafka_broker_id:Broker的唯一标识符。
  • kafka_broker_version:Kafka Broker的版本号。
  • kafka_controller_count:集群中控制器的数量。
  • kafka_broker_requests_total:Broker接收到的请求总数。

主题和分区相关指标

  • kafka_topic_partitions_count:每个主题的分区数量。
  • kafka_topic_partition_current_offset:每个分区的当前偏移量。
  • kafka_topic_partition_leader_replica_count:每个分区的Leader副本数量。
  • kafka_topic_partition_isr_replica_count:每个分区的ISR(In-Sync Replicas)副本数量。
  • kafka_topic_partition_replica_count:每个分区的副本总数。
  • kafka_topic_partition_under_replicated_partitions:分区副本数量少于期望值的分区数。

生产者相关指标

  • kafka_producer_request_rate:生产者发送请求的速率。
  • kafka_producer_request_size_max:生产者发送的最大请求大小。
  • kafka_producer_record_send_rate:生产者发送记录的速率。
  • kafka_producer_record_errors_total:生产者发送失败的消息数量。
  • kafka_producer_batch_size_avg:生产者批处理大小的平均值。

消费者相关指标

  • kafka_consumer_group_current_offset:消费者组在每个分区上的当前偏移量。
  • kafka_consumer_group_lag:消费者组在每个分区上的滞后量(即当前偏移量与最后一条消息的偏移量之差)。
  • kafka_consumer_group_membership_count:每个消费者组中的消费者成员数量。
  • kafka_consumer_fetch_rate:消费者从Broker拉取消息的速率。
  • kafka_consumer_fetch_size_bytes:消费者从Broker拉取消息的大小(以字节为单位)。

复制和同步相关指标

  • kafka_replica_fetch_manager_max_lag:每个副本的最大滞后量。
  • kafka_replica_fetch_manager_min_fetch_rate:副本拉取的最小速率。
  • kafka_replica_leader_elections_per_sec:每秒发生的Leader选举次数。

请注意,以上指标列表并不完整,Kafka Exporter可能还提供了其他更详细的监控指标。你可以根据实际需求选择关注哪些指标,并在Prometheus中进行相应的配置和查询。同时,确保Kafka Exporter已经正确配置并运行,以便能够收集到这些指标数据。

Spring Boot Actuator常用监控指标

Spring Boot Actuator是一个用于暴露应用程序自身信息的模块,它可以提供一系列生产就绪的端点,这些端点可以用于监视和管理Spring Boot应用程序。通过Actuator,您可以轻松地获取应用程序的运行时信息,如健康状态、性能指标、环境属性、系统属性等。

以下是一些常见的可以通过 /actuator/prometheus 监控的指标类型:

  1. 系统指标:
    • CPU 使用率
    • 内存使用情况(堆内存、非堆内存、JVM内存池等)
    • 系统负载
    • 磁盘空间和使用情况
    • 网络I/O
    • 文件描述符使用
    • 线程状态和数量
    • 垃圾回收活动
  2. 应用指标:
    • HTTP 请求的计数、速率、延迟和百分位数
    • 数据库连接的池使用情况、查询次数和性能
    • 消息队列的消费和生产速率
    • 缓存命中率、大小和驱逐次数
    • 调度任务的执行情况和延迟
    • 外部API调用的次数、失败率和延迟
  3. 业务指标:
    • 用户注册、登录和会话数
    • 订单处理速率和失败率
    • 购物车放弃率
    • 页面浏览量和跳出率
    • 任何与你的业务逻辑直接相关的自定义指标
  4. 健康指标:
    • 数据库连接健康状态
    • 外部服务可达性(如API网关、认证服务等)
    • 磁盘空间不足警告
    • 应用程序内部特定组件的健康检查(如缓存服务、消息队列等)
  5. 自定义指标:
    • 你可以定义自己的度量来监控应用程序中任何重要的方面。

Prometheus监控Spring Boot应用的方式主要有以下几种:

  1. 使用Spring Boot Actuator提供的监控功能:首先,在Spring Boot程序中加入spring-boot-starter-actuator依赖。这样,Spring Boot在运行时就会自动放开/actuator/health/actuator/info这两个endpoint,我们就可以通过这两个endpoint查看当前Spring Boot运行的情况。然后,Prometheus可以通过这些endpoint来拉取Spring Boot应用的指标数据。
  2. 集成micrometer-registry-prometheus:这是一种更为专业和详细的监控方式。你需要确保你的Spring Boot和micrometer的版本号相互兼容。然后,你可以使用micrometer提供的各种监控功能来收集Spring Boot应用的指标数据,并通过Prometheus的pull机制来获取这些数据。
  3. 使用Prometheus的push gateway:虽然Prometheus主要是基于pull模型来获取数据的,但你也可以通过Prometheus的push gateway来实现push效果。这在你需要主动推送数据到Prometheus时非常有用。

spring-boot-starter-actuator主要提供了基本的监控和管理功能,包括暴露应用程序的各种信息;
micrometer-registry-prometheus则是更具体的一个实现,它将Micrometer的指标暴露给Prometheus,以实现与Prometheus的集成和更深入的监控。

在实际项目中,通常会根据具体需求来决定是否需要同时引入这两个模块。如果只需要基本的监控功能,那么引入spring-boot-starter-actuator可能就足够了;如果需要与Prometheus进行集成以实现更深入的监控,那么还需要引入micrometer-registry-prometheus。

总的来说,Prometheus监控Spring Boot应用的方式主要取决于你的具体需求和你的应用环境。你可以根据自己的情况选择最适合你的方式来进行监控。同时,Prometheus还提供了丰富的查询语言和图形化界面,可以帮助你更好地分析和展示监控数据。

posted on 2024-03-11 21:48  dashery  阅读(3992)  评论(0编辑  收藏  举报