Skip to content

Prometheus 接入

Spring Boot集成

为了集成Prometheus, 需要应用支持Spring boot Actuator Prometheus端点

xml
<dependency>
    <groupId>io.micrometer</groupId>
    <artifactId>micrometer-registry-prometheus</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

application.yml配置

management:
  endpoints:
    web:
      exposure:
        include: info, health, prometheus
  metrics:
    tags:
        application: ${spring.application.name}
    export:
        prometheus:
            enabled: true

安装Rancher的Monitoring

通过rancher自带的应用市场安装Monitoring,安装完毕后可以看到Prometheus、Grafana和AlertManager

新建monitor

apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata:
  name: balloonfish-monitoring
  namespace: cattle-monitoring-system
spec:
  podMetricsEndpoints:
  - path: /balloonfish-api/actuator/prometheus
    port: http
    interval: 15s
  namespaceSelector:
    matchNames:
      - default
  selector:
    matchLabels:
      workload.user.cattle.io/workloadselector: deployment-default-balloonfish-api

MySQL监控

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: mysql-monitoring
  namespace: cattle-monitoring-system
spec:
  endpoints:
  - path: /metrics
    port: metrics
  namespaceSelector:
    matchNames:
    - mysql
  selector:
    matchLabels:
      app.kubernetes.io/instance: mysql
      app.kubernetes.io/name: mysql

Redis服务监控

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: redis-monitoring
  namespace: cattle-monitoring-system
spec:
  endpoints:
  - path: /metrics
    port: http-metrics
  namespaceSelector:
    matchNames:
    - redis
  selector:
    matchLabels:
      app.kubernetes.io/instance: redis
      app.kubernetes.io/name: redis