【K8s/Kubesphere 监控部署实战之SpringCloud项目】Prometheus、Grafana 监控API实时请求与监控大图

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6


文章目录

  • 1 项目配置与代码
  • 2 更新镜像,启动容器
  • 3 部署 Prometheus
  • 4 配置 Grafana 监控

1 项目配置与代码

yml 增加 prometheus 监控配置

management:
  endpoints:
    web:
      exposure:
        include: prometheus
  endpoint:
    prometheus:
      enabled: true

下面用我的一个 Spring Cloud 项目来测试,直接在 网关模块 增加监控信息记录(注意,meterRegistry.counter 的第二个参数,即下面的 args ,由于这个 api 会将第二个参数当成键值对去处理,因此 args 的元素个数需要为偶数,不然会报错)

@Component
public class AuthGlobalFilter implements GlobalFilter, Ordered {

	//...
    @Autowired
    private MeterRegistry meterRegistry;

    @Override
    public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
        ServerHttpRequest request = exchange.getRequest();
        if (request.getMethod() == HttpMethod.OPTIONS) {
            return chain.filter(exchange);
        }
        String path = request.getURI().getPath();
        System.out.println("网关收到请求:" + path); // 生产环境不能用这个,要用 logback
        String[] args = new String[2];
        args[0] = "path";
        args[1] = path;
        // 记录到 prometheus
        meterRegistry.counter("ceevids_api", args).increment(); 
		//...
    }
    //...
}

2 更新镜像,启动容器

【K8s/Kubesphere 监控部署实战之SpringCloud项目】Prometheus、Grafana 监控API实时请求与监控大图_spring cloud

查看容器监控

【K8s/Kubesphere 监控部署实战之SpringCloud项目】Prometheus、Grafana 监控API实时请求与监控大图_kubernetes_02

之后访问 服务网关ip:端口/actuator/prometheus

可以看到已经记录成功

【K8s/Kubesphere 监控部署实战之SpringCloud项目】Prometheus、Grafana 监控API实时请求与监控大图_kubernetes_03

3 部署 Prometheus

我已提前部署好 Node Exporter、Prometheus、Grafana,可参考我之前的博客
【K8s/Kubesphere 监控部署实战图文流程】部署 Node Exporter、Prometheus、Grafana

这里贴一下 prometheus.yml 中我的服务网关模块的配置,因为 metrics_path 默认是 /metrics,这里需要改成上文测试的后缀,

global:
  scrape_interval: 30s
  evaluation_interval: 30s

scrape_configs:
  #...
  - job_name: service_gateway
    metrics_path: '/actuator/prometheus'
    static_configs:
      - targets: ['192.168.10.173:30000']
        labels:
          instance: service_gateway

下图的第四个就是我们的网关模块,已经配置成功

【K8s/Kubesphere 监控部署实战之SpringCloud项目】Prometheus、Grafana 监控API实时请求与监控大图_后缀_04

并且能够看到上文中的名称空间,因为我们 api 中用的 counter 方法,prometheus 会默认加个 _total 后缀

【K8s/Kubesphere 监控部署实战之SpringCloud项目】Prometheus、Grafana 监控API实时请求与监控大图_名称空间_05

【K8s/Kubesphere 监控部署实战之SpringCloud项目】Prometheus、Grafana 监控API实时请求与监控大图_spring cloud_06


【K8s/Kubesphere 监控部署实战之SpringCloud项目】Prometheus、Grafana 监控API实时请求与监控大图_prometheus_07

4 配置 Grafana 监控

如何配置和安装 Grafana,可参考我之前的博客
【K8s/Kubesphere 监控部署实战图文流程】部署 Node Exporter、Prometheus、Grafana

下面我们新建一个 Dashboard,或者在原有 Dashboar 上,新建一个 面板 panel,如下图,即可进行自定义监控配置

将我们的名称空间 ceevids_api_total 写上,点击 Run queries 即可查看监控,可以看到请求都被记录下来了

【K8s/Kubesphere 监控部署实战之SpringCloud项目】Prometheus、Grafana 监控API实时请求与监控大图_kubernetes_08


阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: Springk8s