监控

服务发现

在Prometheus的监控过程中,每当出现新的服务后,都需要立即发现服务并对其监控。

不过我们公司现有的注册中心环境是当前比较主流的Nacos,但Prometheus并不支持Nacos的自动服务发现,但是Prometheus支持Consul,并在社区中发现了Nacos向Consul转换的项目,基于此项目简化部署了适配器,实现了基于Nacos的服务发现。

  • 社区适配器项目如下 nacos-consul-adapter

实现服务发现

由下图可见,Prometheus已经完成对服务的自动发现与监控。应用服务接入即可

服务接入

以SpringBoot3为例

1.POM

代码语言:xml复制
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
  <groupId>io.micrometer</groupId>
  <artifactId>micrometer-registry-prometheus</artifactId>
  <version>1.13.3</version>
</dependency>

2. 配置文件

代码语言:yaml复制
management:
  endpoint:
    shutdown:
      enabled: true # 开启端点
    health:
      show-details: always # 是否展示健康检查详情
    prometheus:
      enabled: true
  endpoints:
    web:
      exposure:
        include: "prometheus"  #如果已开启其他,加入prometheus,如果配置为“*“,无需更改
  metrics:
    tags:
      application: ${spring.application.name}  #业务名称,对应在业务线下,通常直接按照此示例写就可以
      business: monitor   #业务线名称,比如 监控、网关、数据中心 ... 等 ,改成自己的业务线
  1. 验证 访问 ip:port/actuator/prometheus 示例: http://127.0.0.1:8090/actuator/prometheus  返回:返回Prometheus的监控指标即成功

查看监控

业务线名称和业务名称对应配置文件中的配置

自定义Grafana模版

SpringBoot

  1. 增加业务线选项,选择更清晰快速
  2. Application与Instance与业务线联动
  3. 增加集群存活实例个数监控,方便的看到扩缩容。

模版

spring-boot-statistics.json

SpringCloud gateway

  1. 分别以总量、实例、路由的维度查看访问量

模版

gateway-route-request.json