📊

Prometheus & Grafanaつかってみた

2019/03/31に公開

起動

docker-composeでかんたん実行。

docker-compose up
docker-compose.yml
version: '3.1'

services:
  prometheus:
    image: prom/prometheus
    container_name: prometheus
    ports:
      - 9090:9090
    networks:
      - public
    volumes:
      - ./prometheus/prometheus.yml:/etc/prometheus/prometheus.yml

  pushgateway:
    image: prom/pushgateway
    container_name: pushgateway
    ports:
      - 9091:9091
    networks:
      - public

  grafana:
    image: kannkyo/grafana
    container_name: grafana
    ports:
      - 3000:3000
    networks:
      - public

networks:
  public:
./prometheus/prometheus.yml
scrape_configs:
  - job_name: 'pushgateway'
    scrape_interval: 1s
    static_configs:
      - targets: ['pushgateway:9091']
        labels:
          environment: "hoge"
          category: "pushgateway"

表示

prometheus

http://localhost:9090

image.png

pushgateway

http://localhost:9091

image.png

grafana

http://localhost:3000

image.png

メトリクスを操作する

docker-compose.yml のnetworksの設定により、pushgateway -> prometheus -> grafana にメトリクスを送信できるようになっている。

以下のスクリプトでメトリクスをプッシュしたりクリアしたりできる。

メトリクスをプッシュする

push.sh
#!/bin/bash

JOB=pushgateway

MAX_VAL=100
DATA=$(($RANDOM % $MAX_VAL))
METRICS="some_metric $DATA"

echo $METRICS
echo $METRICS | curl --data-binary @- http://localhost:9091/metrics/job/$JOB

メトリクスをクリアする

clear.sh
#!/bin/bash

JOB=pushgateway
curl -X DELETE http://localhost:9091/metrics/job/$JOB

Discussion