
GrafanaをClaudeDesktopからMCPで触ってみた
「AI駆動オブザーバビリティって、こんな感じになるんだろうなぁ…」
先日開催した、Grafana Meetup Japan #5| JAXAにおける観測データの一般公開と衛星運用のLT枠で「GrafanaをClaude DesktopからMCPで触ってみた」というタイトルで登壇しました。
登壇では実際にデモも実施してみました。おそらくオブザーバビリティという枠組みの中での生成AIの活用は、こういう方向性に収束していくかなぁという感触を感じられたので、是非どんな内容なのかざっと見てもらいつつ、皆さんの手元のダッシュボードで試してもらえればと思います!
登壇資料スライド
こちらにアップロードしています。
MCPとは?
MCP(Model Context Protocol)は、AIモデルやエージェントが外部データソース・ツールと接続するためのオープンスタンダード。「AIのUSBポート」とも呼ばれ、標準化されたインターフェースを持っています。ここの解説はそれこそ無数にありますが、直感的にはクラウドネイティブさんのこの図がめちゃくちゃわかりやすい。
引用:MCPとは何か 〜AIエージェントの為の標準プロトコル〜 – CloudNative Inc. BLOGs
AIとツール・データ間の接続を単純化する重要な役割を担っており、M×N統合問題(M個のAIアプリがN個のツールに接続しなければならない問題)を解決します。
MCPがある場合とない場合の違い
MCPがない場合、各AIプラットフォーム(OpenAI、Gemini、Claudeなど)と各ツール(GitHub、Google Drive、Notionなど)の間には個別の接続が必要になります。これは非効率的で管理が複雑。
一方、MCPがある場合は、AIプラットフォームとツールの間にMCPという中間層が入り、標準化されたプロトコルを通じて接続します。これにより、新しいツールやAIモデルの追加が容易になり、統合の複雑さが大幅に軽減されます。
Grafana MCP Serverの紹介
Grafana LabsはMCPサーバーをGitHubで公式に公開しています。現在、このサーバーは以下の主な機能をサポートしています。
- ダッシュボードの検索
- データソース情報のリストと取得
- データソースへのクエリ
- Prometheusメタデータのクエリ
- Lokiメタデータのクエリ
- インシデントの検索、作成、更新、クローズ
公式の詳細情報はGitHubを見てください。また、DeepWikiもあるので、そちらも見てもらえれば理解が深まるかと。
MCPサーバーを動かすまでの手順
環境構築の詳細は下記記事に全て書いてあるので参考にしてください。
ここでは、ざっくりとした手順を紹介します。
Grafana Cloud側の準備
- サービスアカウントを作成
- 十分な権限を付与
- サービスアカウントトークンを作成
クライアント側の準備
- Grafana MCPサーバーをダウンロード(Docker imageやバイナリ、ソースビルドなどから選択可能)
- サーバーコンフィグレーションを作成(Claude Desktopを使用する場合は「claude_desktop_config.json」を編集)
コンフィグレーションファイルの例
内容はこれだけです。APIキーの部分に、Grarfanaでサービスアカウントを作成したときのAPIキーを設定します。command
部分には、クライアントにダウンロードしたバイナリファイルへのパスを記述します。PATHに登録していない場合は、フルパスを設定する必要があるので気をつけてください。
{
"mcpServers": {
"grafana": {
"command": "mcp-grafana",
"args": [],
"env": {
"GRAFANA_URL": "http://localhost:3000",
"GRAFANA_API_KEY": "<your service account token>"
}
}
}
}
現時点で対応している主な機能
Grafana MCPサーバーが対応している機能。
- ダッシュボード関連:検索、UIDによる取得、更新・作成、パネル情報の取得
- データソース:情報取得、クエリ(Prometheus、Lokiのログクエリとメトリッククエリ)
- メタデータ:Prometheusメタデータ(メトリック名、ラベル名、値)、Lokiメタデータの取得
- インシデント管理:検索、作成、更新、クローズ
- Sift機能:調査開始、結果表示、エラーパターンや遅いリクエストの検出
- アラート:ルール情報の取得、ステータス確認、連絡先リスト
- OnCall機能:スケジュール管理、シフト詳細の取得
このあたりは、公式GitHubに記載があります。チェックボックスが空白になっているものも多くあるので、それらは、そのうち実装される予定とみて間違いなさそうです。
Claude DesktopでMCPサーバー経由でGrafana Cloudのダッシュボードにアクセスした実例
実際にClaude Desktopを使ってGrafana Cloudのダッシュボードにアクセスしてみました。以下にいくつかのインタラクション例を紹介。
デモ1. ダッシュボードの検索と取得
プロンプト
Grafanaで現在利用できるダッシュボードはどんなものがありますか?
そうすると、利用されるMCPのToolの名前と、そこでリクエストとレスポンスがその結果がこのような形式で表示されます。
リクエスト
{
`query`: ``
}
レスポンス
[{"id":30,"permanentlyDeleteDate":"0001-01-01T00:00:00.000Z","tags":[],"title":"GrafanaCloud","type":"dash-folder","uid":"xxxxxxxxx","uri":"db/grafanacloud","url":"/dashboards/f/xxxxxxxxxxxxx/grafanacloud"},{"id":78,"permanentlyDeleteDate":"0001-01-01T00:00:00.000Z","tags":[],"title":"Integration - MacOS Node","type":"dash-folder","
〜〜中略〜〜〜
出力結果
以下のような出力結果となります。接続しているGrafana環境のダッシュボードの内容が把握できます。
現在Grafanaで利用可能なダッシュボードをいくつかのカテゴリに分けてご紹介します。
フォルダ別ダッシュボード
-
GrafanaCloud フォルダ
- Cardinality management(カーディナリティ管理)シリーズ(3つのダッシュボード)
- Cloud Logs Export Insights
- Grafana Cloud Billing/Usage(請求/使用状況)
- Usage Insights シリーズ(1〜6までの概要、データソース、クエリエラー、Alertmanager、メトリクス取り込み、Lokiクエリ使用状況)
-
Integration - MacOS Node フォルダ
- MacOS / logs
- MacOS / overview
-
⛅ Grafana Weather Demo Dashboards フォルダ
- Overview [Celsius](摂氏表示の概要)
- Overview [Fahrenheit](華氏表示の概要)
- 独立したダッシュボード
- My First handson dashboard
- OnCall Insights
- Sun and Moon Datasource
これらのダッシュボードは、システム監視、使用状況分析、課金情報、デモ目的、および特定の統合(MacOSなど)に関する情報を提供するように設計されています。特に「GrafanaCloud」フォルダには、Grafanaの使用状況や監視に関する詳細な情報を提供する多くのダッシュボードが含まれています。
デモ2. Prometheusを使用したダッシュボードの探索
データソースの違いによる区別をしたかったので、Prometheusに絞った問いかけをしてみます。
プロンプト
Prometheusを利用した、ダッシュボードを教えて下さい。
出力結果
こんな出力結果になります。ダッシュボードの中のクエリ先のデータソースの種別まで探して、出力結果を組み立ててくれています。全量引用していますが、詳細に正確に出力しているのがわかりますね、よござんす。
Prometheusを利用したGrafanaダッシュボードを確認してみましょう。これらのダッシュボードはPrometheusをデータソースとして使用しています。
Prometheusという名前での検索結果がありませんでした。もう少し広く検索してみましょう。
Prometheusデータソースが3つ存在しています。これらのデータソースを使用しているダッシュボードを探しましょう。まず、Weather Dashboardで確認できるように、フォルダごとに検索してみます。
GrafanaCloudフォルダにPrometheusを使用した可能性の高いダッシュボードがいくつか見つかりました。それぞれのダッシュボードの詳細を確認してみましょう。まずカーディナリティ管理ダッシュボードから見てみます。
次に、Metrics Ingestionダッシュボードを確認してみましょう。
Weather Dashboardも含めて、Prometheusを利用したGrafanaダッシュボードについて詳しくご紹介します。
Prometheusを利用したGrafanaダッシュボード
- Weather Dashboards(⛅ Grafana Weather Demo Dashboards)
- 概要: 世界の様々な地域の気象データをリアルタイムで表示するデモダッシュボード
- データ内容: 気温、体感温度、湿度、UV指数、風速、風向、降水量、天候状態などの気象情報
- 特徴:
- 摂氏版と華氏版の2種類が用意されている
- 世界地図上で場所を表示
- 現在のデータと予測データの比較
- 昼夜の表示
- Cardinality Management - Metrics(GrafanaCloudフォルダ)
- 概要: メトリクスのカーディナリティ(一意のタイムシリーズ数)を監視・管理するためのダッシュボード
- データ内容:
- メトリクス名ごとのシリーズ数
- 全体に対する割合
- ラベルごとのカーディナリティ影響度
- 特徴:
- 特定のメトリクスに関連付けられたラベルの詳細分析
- ツリーマップによる視覚化
- メトリクスを使用しているダッシュボードやアラートルールの表示
- 高カーディナリティの特定と管理のためのツール
- Usage Insights - Metrics Ingestion(GrafanaCloudフォルダ)
- 概要: GrafanaCloudのメトリクス取り込みとその状態を監視するダッシュボード
- データ内容:
- サンプル取り込み速度
- 破棄されたサンプル数
- エグゼンプラー(特定の値)の取り込みと破棄
- メタデータの取り込みと破棄
- 特徴:
- インスタンスごとの取り込み状況の詳細表示
- エラー理由の分析
- ログメッセージによるエラー詳細の表示
- サンプル破棄の監視と問題解決のサポート
その他の関連ダッシュボード(GrafanaCloudフォルダ内)
-
Usage Insights - Overview
- GrafanaCloudの全体的な使用状況の概要を表示
-
Usage Insights - Data Sources
- データソースごとの使用状況や性能を分析
-
Usage Insights - Query Errors
- クエリエラーの監視と問題解決のためのダッシュボード
-
Usage Insights - Alertmanager
- アラートマネージャーの状態と性能の監視
-
Cardinality Management - Overview & Labels
- カーディナリティ管理のためのダッシュボード群
PrometheusデータソースとGrafanaの連携の特徴
-
リアルタイムデータの視覚化
- 時系列データをリアルタイムでグラフ化
- 様々なビジュアライゼーションパネル(グラフ、ゲージ、テーブルなど)に対応
-
高度なクエリ言語
- PromQLを使用した柔軟なクエリ構築
- 集計関数、レート計算、ラベルマッチングなどの機能
-
アラートと通知
- メトリクスに基づいたアラートルールの設定
- しきい値超過時の通知機能
-
ダッシュボードのテンプレート化
- 変数を使用した動的なダッシュボード作成
- 同じダッシュボードで異なるサービスやインスタンスを監視
-
パフォーマンス最適化
- 効率的なデータ取得とレンダリング
- 大量のメトリクスでも高速に表示
Prometheusデータソースを使ったGrafanaダッシュボードは、システム監視、アプリケーションパフォーマンス、ビジネスメトリクス、IoTデータなど、様々な時系列データの視覚化と分析に幅広く活用されています。特にクラウドネイティブ環境やマイクロサービスアーキテクチャの監視において、重要な役割を果たしています。
3. 天気データの取得と分析
ダッシュボードには、天気デモダッシュボードがあるので、「天気デモダッシュボードで取得できる地方を教えてください」と質問すると、Claudeはテンプレート変数を調査し、location
というテンプレート変数が使われていることを発見。Prometheusクエリを実行して、ロンドン、ニューデリー、ニューヨーク、パリなど、利用可能な10都市のリストを返します。このあたりも、非常に柔軟に対応してくれます。すげぇな。
4. 都市間の気温比較と洞察の生成
一番のポイントです。
「東京とニューデリーの気温を比較して見ることができる、グラフをアーティファクトとして作成してください」とリクエストすると、Claudeは両都市の気温データをPrometheusから取得し、時系列グラフとして可視化しました。
特筆すべきは、単なるグラフ表示だけでなく、「気温比較分析」として以下のような洞察を提供してくれた点です。このあたりが生成AIを使うことならではの世界観ですね。
- ニューデリーの平均気温は34.8°Cで、東京の平均気温21.6°Cより約13.2°C高い
- ニューデリーの最高気温は42.2°Cに達し、かなり暑い気候
- 東京の気温は17.1°C~26.3°Cの範囲で比較的穏やかに変動
- 両都市とも日中と夜間の気温差が見られるが、ニューデリーの方が日較差が大きい時間帯がある
- この時期、ニューデリーは夏季の高温期に入っており、東京は春から初夏への移行期にある
従来もCSVファイルを読み込ませることでこれぐらいの分析はできていたのは事実です。ただ、今回はMCPサーバー経由で都度Grafanaにアクセスできているので、わざわざデータを抜き出してClaudeに読み込ませなくても、常に最新のデータにGrafana経由でアクセスできるのが、MCPの一番すごいところかなと思います。
MCP経由でGrafanaを見るときの着目点
Grafana MCPサーバーを通じてAIアシスタントとGrafanaを連携する最も興味深い点は、AIならではの「洞察」の出力。
- ダッシュボードを人間が見ているだけでは気づかないような、複数グラフからの「洞察」をプロンプト次第で出力可能
- 過去時点と現在のデータの比較による検証なども、別途自分で時間範囲を設定してグラフを並べなくても実行できる
つまり、問いかけ次第では、専用のダッシュボードを利用しながら人間がデータの関連を検証していたことと、ほぼ同様のことが自然言語でできるようになるかもしれません。
Grafana MCPサーバーの利点と未来予想図
利点
-
AIアシスタントとのインタラクション強化
- 専門家ではなくてもデータソースにアクセス可能
- 例:ダッシュボードをナビゲートする代わりに、アプリケーションの現在のエラー率を表示するようにAIアシスタントに直接尋ねる
-
ルーチン操作の自動化
- 毎週のパフォーマンスレポートの作成
- アラートチケットの傾向分析
-
AI駆動型分析とアクセス工場
- 過去の傾向と違うメトリクスによるパフォーマンス低下の予測など
未来予想図
-
Grafana内でのMCPとのより深い統合
- GrafanaにMCP機能がよりネイティブに統合される可能性
-
利用可能なMCPツールの拡大
- 将来的には動的な更新ができる可能性
- 例:AIエージェントが検出した異常に基づいてダッシュボードに注釈を追加
- 例:発生したISSUEの内容に即した、原因追及のための専用ダッシュボードの構築
-
AI駆動オブザーバビリティ
- おそらく(もう既に?)流行るはずです。
まとめ
というわけで、Grarana MCPサーバー経由でGrafanaにClaudeデスクトップからアクセスしてみたデモでした。おそらくGrafana内部のUIにこういった機能は組み込まれていくんだろうなという感覚はありますが、AIモデル側もどんどん進化するので、MCPサーバー経由でのアクセスも引き続き利用価値は十分あるだろうなとも思います。
今すぐにでもこれを上手く使うことで、組織でのデータ活用がさらに柔軟になり利用するユーザーが増えていくんじゃないでしょうか。
まずは皆さんの手元にあるGrafana環境に接続してみましょう!話はそこから。実際に自分で触ってみて、自然言語で問い合わせてみて、皆さんの組織で活かせる部分があるか想像してみてください。これからのモニタリングとオブザーバビリティの世界がどう変わっていくのか、要チェックですよ!
それでは今日はこのへんで。濱田孝治(ハマコー)でした。
参考リンク
本資料作成時に参考した記事です。