Flaskを活用して自作exporter作成。Prometheus->Grafanaで可視化

概要 Flaskを活用して自作exporterを作成し、Prometheusでmetrics取得->Grafanaでmetrics可視化を行う手順の備忘録 手順 構成 . ├── docker-compose.yml ├── flask │ ├── Dockerfile │ └── app │ └── app.py ├── grafana │ ├── Dockerfile │ └── datasource.yml └── prometheus.yml flask/Dockerfile FROMubuntu:latestRUN apt-get updateRUN apt-get install python3 python3-pip -yRUN pip3 install flask prometheus-clientRUN mkdir /appflask/app.py pythonのPrometheusClientライブラリを使ってexporter化。curl http://localhost:3000/hogeでGauge型のmetricsが増減するexporterです。 from flask import Flaskimport json import queue from werkzeug.middleware.dispatcher import DispatcherMiddleware from prometheus_client import make_wsgi_app,Gauge app = Flask(__name__) G1 = Gauge('Gauge1','Gauge test') G2 = Gauge('Gauge2','Gauge test') @app....

January 1, 2020 · Me

GrafanaでのDashboard作成を自動化する

概要 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 https://grafana.com/docs/grafana/latest/administration/provisioning/#datasources 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 FROMgrafana/grafana:masterCOPY ....

January 1, 2020 · Me