步驟

安裝Prometheus/Grafana

  • 設定Prometheus設定向我們spring boot application位置
# my global config
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'My-Spring-Boot-Application'

    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 15s
    static_configs:
      - targets: ['192.168.1.25:9100'] # My-Spring-Boot-Application IP
  
  • 我們使用docker-compose.yml方式來建立Prometheus/Grafana的監控環境docker-compose up -d
version: "3.7"

services:
  prometheus:
    image: prom/prometheus:v2.30.0
    restart: always
    container_name: prometheus
    volumes:
      # config
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml
      - ./prometheus/:/etc/prometheus/
      # tsdb data
      - ./prometheus/data:/prometheus
    command:
      - '--config.file=/etc/prometheus/prometheus.yml'
      # backup 
      - '--web.enable-admin-api'
      # tsdb time delete
      - '--storage.tsdb.retention.time=10d'
      # tsdb locat
      - '--storage.tsdb.path=/prometheus'
      # reload config
      - '--web.enable-lifecycle'
    ports:
      - "9090:9090"
   
  grafana:
    image: grafana/grafana:8.1.5
    restart: always
    container_name: grafana
    environment:
    
    volumes:
      - ./grafana/logs:/var/log/grafana
      - ./grafana/plugins:/var/lib/grafana/plugins
      - ./grafana/data:/var/lib/grafana
      - ./grafana/provisioning/:/etc/grafana/provisioning/
    ports:
      - "3000:3000"
  • 即可在prometheus:9090看到spring boot的metrics資料

參考連結