概要
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を作成する。
- 「Share dashboard」→「Export」→「Save to file」でJSONファイルを出力。「./grafana/prometheus」配下にファイルを置く。
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