概要

Flaskを活用して自作exporter作成。Prometheus->Grafanaで可視化の続き。現状のままだとコンテナRestart都度GrafanaへDashboardの作成をしなくてはならないので、起動時に自動でDashboardが作成できるようにする備忘録

手順

構成

├── docker-compose.yml
├── flask
│   ├── Dockerfile
│   └── app
│       └── app.py
├── grafana
│   ├── Dockerfile # 変更
│   ├── dashboard.yml # 作成
│   ├── datasource.yml 
│   └── prometheus
│       └── <hoge>.json # 作成
└── prometheus.yml
  • Dashboard自動作成設定ファイル「dashboard.yml」、自動作成するDashboardのファイル「.json」を作成。
  • 追加ファイルをコンテナへ置くためにGrafanaの「Dockerfile」を変更。

grafana/prometheus/.json

  • http://localhost:3000でGrafanaへ接続
  • 「Create」→「Dashboard」で自動作成するDashboardを作成する。 Dashboardの追加準備
  • 「Share dashboard」→「Export」→「Save to file」でJSONファイルを出力。「./grafana/prometheus」配下にファイルを置く。 Dashboardの追加準備2

grafana/dashboard.yml

apiVersion: 1
providers:
  - name: 'prometheus metrics'
    orgId: 1
    folder: ''
    folderUid: ''
    type: file
    disableDeletion: false
    updateIntervalSeconds: 10
    allowUiUpdates: false
    options:
      path: /etc/grafana/provisioning/dashboards/prometheus
      foldersFromFileStructure: true

grafana/Dockerfile

FROM grafana/grafana:master
COPY ./datasource.yml /etc/grafana/provisioning/datasources/
COPY ./dashboard.yml /etc/grafana/provisioning/dashboards/ 
COPY ./prometheus /etc/grafana/provisioning/dashboards/prometheus

起動確認

  • 「docker-compose build」→「docker-compose up -d」
  • http://localhost:3000でGrafanaへ接続。
    • ID:admin、PASSWORD:passwordでsign in