Grafanaはデータを保管する道具ではなく、Prometheusなどのdata sourceへ問い合わせて可視化する道具です。今回はPrometheus自身の稼働を示すupだけを表示します。
初出日: 2026-04-24 / 最終確認日: 2026-07-25
今回やること

Prometheus(保存・PromQL) → Grafana data source → panel 1枚
- Docker Composeで2サービスを起動する
- GrafanaへPrometheusを接続する
upをStatパネルで表示する
ログ、トレース、アラート、複雑な変数は扱いません。
役割を分ける
| 名前 | この実習での役割 |
|---|---|
| Prometheus | 対象をscrapeし、メトリクスを保存してPromQLで返す |
| data source | GrafanaからPrometheusへ接続する設定 |
| dashboard | 複数の可視化をまとめる画面 |
| panel | 一つのquery結果を表示する部品 |
GrafanaへPrometheusのデータがコピーされるわけではありません。dashboardを開くたびに、Grafanaがdata sourceへqueryを送ります。
PrometheusとGrafanaを起動する
学習用ディレクトリにcompose.yamlを作ります。
services:
prometheus:
image: prom/prometheus:v3.12.0
ports:
- "9090:9090"
grafana:
image: grafana/grafana:13.1.0
ports:
- "3000:3000"
environment:
GF_SECURITY_ADMIN_USER: admin
GF_SECURITY_ADMIN_PASSWORD: admin
docker compose up -d
docker compose ps
この固定タグは、初出日2026-04-24の記事を最終確認日2026-07-25に検証した版です。後日試す時はGrafana releasesとPrometheus releasesで利用可能な版を確認してください。
Prometheusをdata sourceへ追加する
http://localhost:3000を開き、ユーザー名・パスワードともadminでログインします。これはローカル学習専用です。本番で既定または単純なパスワードを使ってはいけません。
Grafanaで次を操作します。
- Connections → Data sourcesを開く
- Add new data sourceからPrometheusを選ぶ
- Prometheus server URLへ
http://prometheus:9090を入力する - Save & testを押す
Grafanaはコンテナ内で動くため、localhost:9090ではなく、Composeのサービス名prometheusを使います。
panelを一つ作る
- Dashboards → New → New dashboardを開く
- Add visualizationを押す
- Prometheus data sourceを選ぶ
- Queryへ
upを入力する - VisualizationをStatにする
- タイトルを
Prometheus target upとして保存する
upは、Prometheusが対象を直近のscrapeで取得できた時に1、失敗した時に0になります。
系列が複数表示された場合は、凡例にあるjobやinstanceを確認します。この構成ではPrometheus自身を表す系列を見つけ、必要ならqueryをup{job="prometheus"}へ絞ります。
成功確認
- data sourceの接続テストが成功する
upの結果が少なくとも1系列表示される- Statパネルに
1が表示される - Prometheusを停止すると、過去の値と現在の取得不能を区別できる
パネルが表示されたことだけで「システムが正常」とは断定できません。今回確認できるのは、Prometheusのscrape対象が応答したことだけです。
dashboardはLearning Prometheusのような目的が分かる名前で保存します。時刻範囲を直近15分へ変え、同じqueryでも表示範囲によってグラフが変わることも確認してください。
よくあるつまずき
data sourceへ接続できない
URLがhttp://prometheus:9090か確認し、docker compose psで両方が起動しているか見ます。ブラウザからPrometheusを見るURLはlocalhost:9090ですが、Grafanaコンテナからはサービス名を使います。
パネルがNo dataになる
まずhttp://localhost:9090のPrometheus画面でupを実行します。そこで結果がなければ、GrafanaではなくPrometheus側を確認します。
0を「データなし」と同じに扱う
0はscrape失敗を示す値で、No dataとは異なります。値がないのか、対象が失敗して0なのかを分けて調べます。
練習
同じdashboardへTime seriesパネルを一つ追加し、同じupを表示してください。Statは現在値、Time seriesは時間変化を見る用途だと説明できれば成功です。
後片付け
docker compose down
この例はvolumeを付けていないため、コンテナ削除とともに作成したdashboardも消えます。