📊grafana-assistant-cli
- プラグイン
- grafana-assistant
- ソース
- GitHub で見る ↗
説明
Grafana Assistant CLI を使用して、A2A API(エージェント間通信規格)経由で Grafana Assistant と連携するためのツールです。インストール、設定、プロンプト入力、会話の流れの保持、運用調査の実践的なパターンをカバーしています。 次のような場合に使用: - ユーザーが grafana-assistant、Grafana Assistant CLI、assistant tunnel について言及した場合 - ユーザーが Assistant 経由で Grafana インスタンスにクエリを実行したい場合
原文を表示
Use the grafana-assistant CLI to interact with Grafana Assistant via A2A API. Covers installation, configuration, prompting, keeping conversation context, and practical patterns for ops investigations. Use when the user mentions grafana-assistant, Grafana Assistant CLI, assistant tunnel, or wants to query a Grafana instance via the assistant.
ユースケース
- ✓Grafana Assistant と連携するツールを使いたいとき
- ✓Assistant 経由で Grafana インスタンスにクエリを実行するとき
- ✓A2A API で エージェント間通信をするとき
本文(日本語訳)
Grafana Assistant CLI
Grafana Assistant と A2A API を使用するためのコマンドラインツール。
必要な準備
grafana-assistant バイナリ(実行ファイル)がすでにインストール済みで、$PATH に設定されていることが必要です。
自動インストールは行わないでください。 コマンドが見つからない場合は、先にユーザーに手動でインストールするよう指示してください。
インストール手順と事前ビルド済みファイル: github.com/grafana/assistant-cli
Docker イメージも利用可能です: github.com/grafana/assistant-cli/pkgs
設定
設定ファイルの場所(最初に見つかったものが優先)
GRAFANA_ASSISTANT_CONFIG環境変数(設定されている場合)./grafana-assistant.yaml(カレントディレクトリ、--localフラグで使用)~/.config/grafana-assistant/config.yaml
設定ファイルのフォーマット
current-instance: prod
instances:
localhost:
url: http://localhost:3000
token: glsa_abcd1234
prod:
url: https://mystack.grafana.net
token: ${GRAFANA_PROD_TOKEN} # 環境変数の参照をサポート
projects:
- name: my-app
path: ~/projects/my-app
tunnel:
tools:
filesystem:
allowed_paths: [/var/log/myapp]
deny_paths: ["**/*.key", "**/secrets.yaml"]
terminal:
allowed_commands: [git, kubectl, docker]
deny_commands: ["rm -rf"]
passthrough_env: [AWS_PROFILE, KUBECONFIG]
環境変数
| 変数 | 説明 |
|---|---|
GRAFANA_URL |
Grafana インスタンスの URL(設定を上書き) |
GRAFANA_SA_TOKEN |
サービスアカウントトークン(設定を上書き) |
GRAFANA_ASSISTANT_CONFIG |
設定ファイルパスを上書き |
認証情報の解決優先順位
--urlおよび--tokenフラグGRAFANA_URLおよびGRAFANA_SA_TOKEN環境変数--instance <name>フラグ- 設定ファイルの
current-instance
クイックセットアップ
grafana-assistant config set-instance mystack --url https://mystack.grafana.net
grafana-assistant config use-instance mystack
grafana-assistant auth # ブラウザを開いて認証
grafana-assistant chat # 対話型チャットを開始
ブラウザ認証には Assistant CLI User ロール が必要です。Editor ロール以上のユーザーは自動的にこれを取得します。カスタムロールの場合は、grafana-assistant-app.tokens:access パーミッションを含めてください。
インスタンスの管理
grafana-assistant config set-instance <name> -u <url> -t <token>
grafana-assistant config use-instance <name>
grafana-assistant config current
grafana-assistant config list
grafana-assistant config delete-instance <name>
grafana-assistant config path
トークンは環境変数の参照をサポート: -t '${MY_TOKEN_VAR}'
プロジェクトの管理
プロジェクトはアシスタントが トンネル経由で アクセス可能な名前付きディレクトリです。
grafana-assistant config add-project <name> <path>
grafana-assistant config list-projects
grafana-assistant config remove-project <name>
プロンプト(非対話型、エージェント使用時の主要なモード)
grafana-assistant prompt は単一のメッセージを送信し、応答を返します。これは Cursor から使用する主要なコマンドです。
grafana-assistant prompt "メッセージ"
grafana-assistant prompt "メッセージ" --json # contextId を含む JSON 出力
grafana-assistant prompt "メッセージ" -c <context-id> # 会話を継続
grafana-assistant prompt "メッセージ" -a <agent-id> # 特定のエージェント
grafana-assistant prompt "メッセージ" --wait=false # 送信後に待たない
会話のコンテキストを保持する
デフォルトでは、各プロンプトは新しい独立した会話として開始されます。フォローアップメッセージを同じ会話にスレッド化し(アシスタントが過去のやり取りを記憶するようにするには)、以下の手順が必要です:
- 最初のプロンプトで
--jsonを使用してcontextIdを取得 - その後のプロンプトすべてで
-c <contextId>を渡す
# 最初のメッセージ — contextId をキャプチャ
grafana-assistant prompt "Show me metrics for the assistant service in ops-eu-south-0" --json
# 応答: { "contextId": "62a8823a-...", "status": "completed", "response": "..." }
# フォローアップ — contextId を渡す
grafana-assistant prompt "Now break those down by handler label" -c 62a8823a-... --json
注意:
-cなしの場合、毎回は過去のやり取りを記憶していない新しい会話になります。- コンテキストスレッド化が失敗した場合(例:「context was not created by CLI」)、代わりにプロンプトテキストに関連する過去の情報を含めてください。
- 長く複数のステップを伴う調査では、コンテキストスレッド化に頼るより、主要な情報をプロンプトに直接入力する方が多くの場合より信頼性があります。
JSON 出力形式
{
"taskId": "a2a-xxx",
"contextId": "uuid",
"agentId": "grafana_assistant_cli",
"status": "completed",
"response": "アシスタントの完全なテキスト応答..."
}
考えられるステータス値: completed(完了)、failed(失敗)、timeout(タイムアウト)、canceled(キャンセル)、unknown(不明)。
チャット(対話型)
全画面表示の対話型インターフェースを開きます。セッション内でコンテキストが自動的に保持されます。
grafana-assistant chat
grafana-assistant chat -i <instance> # 特定のインスタンス
grafana-assistant chat -a <agent-id> # 特定のエージェント
grafana-assistant chat --continue # 前回のセッションを再開
grafana-assistant chat -c <context-id> # 特定の会話を再開
grafana-assistant chat --timeout 600 # カスタムタイムアウト(デフォルト:300秒)
チャット内コマンド: /clear または /new(新規会話)、/exit または /quit または Ctrl+C(終了)、/help(ヘルプ)。
エージェントの一覧表示
grafana-assistant agents
grafana-assistant agents --json
grafana-assistant agents -i <instance>
AGENTS.md の生成
AI コーディングエージェント向けの AGENTS.md ファイルを生成します:
grafana-assistant agents-md <target-directory>
grafana-assistant agents-md <target-directory> --dry-run # プレビューを標準出力に表示
grafana-assistant agents-md <target-directory> -o AGENTS.md # カスタム出力ファイル名
grafana-assistant agents-md <target-directory> --force # 既存ファイルを上書き
grafana-assistant agents-md <target-directory> --non-interactive # プロンプトをスキップ
Assistant トンネル
トンネルにより Grafana Assistant はローカルマシン上でツールを実行できます。
grafana-assistant tunnel auth # 認証(ブラウザを開く)
grafana-assistant tunnel connect # フォアグラウンド接続(ファイルシステムはデフォルトで有効)
grafana-assistant tunnel connect --all # すべての認証済みインスタンス
grafana-assistant tunnel connect --terminal # ターミナルツールを有効化
デーモン管理
grafana-assistant tunnel daemon install # システムサービスとしてインストール
grafana-assistant tunnel daemon install --all # すべてのインスタンスを接続
grafana-assistant tunnel daemon install --start-on-login=false
grafana-assistant tunnel daemon start|stop|restart|status
grafana-assistant tunnel daemon logs [--follow]
grafana-assistant tunnel daemon uninstall
デフォルトセキュリティ
ファイルシステム: 読み取り専用でプロジェクト範囲内、~/.ssh、~/.gnupg、~/.aws/credentials、**/.env、**/secrets.yaml、**/*.pem、**/*.key をブロック。ファイルサイズ制限:1MB。
ターミナル: 危険なコマンド(rm -rf /、mkfs、dd、無限フォーク)をブロック。デフォルトは最小限の環境。設定ファイルの許可・拒否リストで設定可能。
エージェント使用時の実践的なパターン
シェルのパーミッション
CLI は Grafana に HTTPS リクエストを発行します。Shell ツール呼び出しで常に required_permissions: ["all"] を使用してください。これにより、サンドボックス制限による TLS 証明書検証エラーを回避できます。
タイムアウト処理
プロンプトはアシスタントが実行するツールの数に応じて 30 秒~ 300 秒かかる場合があります。複雑なクエリでは block_until_ms を最低でも 300000(5 分)に設定してください。
CLI エージェントでできることの詳細
CLI エージェントは Grafana Assistant の読み取り専用版です。データをクエリして分析しますが、Grafana では何も変更できません。
機能:
- すべての設定済みデータソースを対象にメトリクス(PromQL、Graphite)、ログ(LogQL)、トレース(TraceQL)、プロファイル、SQL などをクエリ
- データソース、メトリクス名、ラベル値、ログストリームを検出
- ダッシュボード検索とパネル定義の読み取り
- Grafana ドキュメントとブログ記事を検索
- アラート履歴、オンコール(当番)スケジュール、インシデントをクエリ
- Asserts エンティティの状態、グラフ、RCA(原因分析)パターンをクエリ
- インフラ メモリサービスをクエリ
実行フロー:
- クイックデータクエリ: データソース検出 → メトリクス/ログ名検出 → クエリ実行 → 結果を提示
- 調査: メトリクス → ログ → トレース の間でシグナルを追跡して根本原因を特定
- Q&A / ドキュメント検索: ドキュメントを使用して Grafana や監視に関する質問に回答
CLI では利用不可(Web / Slack のみ):
- ダッシュボード作成・修正
- アラートルール・サイレンス管理
- Grafana ページへのナビゲーション
原文(English)を表示
grafana-assistant CLI
CLI tool for interacting with Grafana Assistant via the A2A API.
Prerequisites
The grafana-assistant binary must already be installed and available on $PATH. Do not attempt to install it automatically. If the command is not found, stop and tell the user to install it first.
Installation instructions and pre-built binaries: github.com/grafana/assistant-cli
A Docker image is also available: github.com/grafana/assistant-cli/pkgs
Configuration
Config file locations (first found wins)
GRAFANA_ASSISTANT_CONFIGenv var (if set)./grafana-assistant.yaml(current directory, use--localflag)~/.config/grafana-assistant/config.yaml
Config file format
current-instance: prod
instances:
localhost:
url: http://localhost:3000
token: glsa_abcd1234
prod:
url: https://mystack.grafana.net
token: ${GRAFANA_PROD_TOKEN} # env var expansion supported
projects:
- name: my-app
path: ~/projects/my-app
tunnel:
tools:
filesystem:
allowed_paths: [/var/log/myapp]
deny_paths: ["**/*.key", "**/secrets.yaml"]
terminal:
allowed_commands: [git, kubectl, docker]
deny_commands: ["rm -rf"]
passthrough_env: [AWS_PROFILE, KUBECONFIG]
Environment variables
| Variable | Description |
|---|---|
GRAFANA_URL |
Grafana instance URL (overrides config) |
GRAFANA_SA_TOKEN |
Service account token (overrides config) |
GRAFANA_ASSISTANT_CONFIG |
Override config file path |
Credential resolution priority
--urland--tokenflagsGRAFANA_URLandGRAFANA_SA_TOKENenv vars--instance <name>flagcurrent-instancefrom config file
Quick setup
grafana-assistant config set-instance mystack --url https://mystack.grafana.net
grafana-assistant config use-instance mystack
grafana-assistant auth # opens browser for PKCE auth
grafana-assistant chat # start interactive chat
The Assistant CLI User role is required for browser auth. Users with Editor role or above get this automatically. For custom roles, include the grafana-assistant-app.tokens:access permission.
Managing instances
grafana-assistant config set-instance <name> -u <url> -t <token>
grafana-assistant config use-instance <name>
grafana-assistant config current
grafana-assistant config list
grafana-assistant config delete-instance <name>
grafana-assistant config path
Token supports env var references: -t '${MY_TOKEN_VAR}'
Managing projects
Projects are named directories the assistant can access via the tunnel.
grafana-assistant config add-project <name> <path>
grafana-assistant config list-projects
grafana-assistant config remove-project <name>
Prompting (non-interactive, primary mode for agent use)
grafana-assistant prompt sends a single message and returns the response. This is the primary command to use from Cursor.
grafana-assistant prompt "your message here"
grafana-assistant prompt "your message" --json # JSON output with contextId
grafana-assistant prompt "your message" -c <context-id> # continue a conversation
grafana-assistant prompt "your message" -a <agent-id> # specific agent
grafana-assistant prompt "your message" --wait=false # fire and forget
Keeping conversation context
Each prompt starts a new, independent conversation by default. To thread follow-up messages into the same conversation (so the assistant remembers prior context), you must:
- Use
--jsonon the first prompt to capture thecontextId - Pass
-c <contextId>on all subsequent prompts
# First message — capture contextId
grafana-assistant prompt "Show me metrics for the assistant service in ops-eu-south-0" --json
# Response: { "contextId": "62a8823a-...", "status": "completed", "response": "..." }
# Follow-ups — pass contextId
grafana-assistant prompt "Now break those down by handler label" -c 62a8823a-... --json
Caveats:
- Without
-c, every prompt is a brand new conversation with no memory. - If context threading fails (e.g. "context was not created by CLI"), include relevant prior findings directly in the prompt text instead.
- For long multi-step investigations, including key findings inline is often more reliable than depending on context threading.
JSON output format
{
"taskId": "a2a-xxx",
"contextId": "uuid",
"agentId": "grafana_assistant_cli",
"status": "completed",
"response": "The assistant's full text response..."
}
Possible status values: completed, failed, timeout, canceled, unknown.
Chatting (interactive)
Opens a full-screen TUI. Context is maintained automatically within the session.
grafana-assistant chat
grafana-assistant chat -i <instance> # specific instance
grafana-assistant chat -a <agent-id> # specific agent
grafana-assistant chat --continue # resume previous session
grafana-assistant chat -c <context-id> # resume specific conversation
grafana-assistant chat --timeout 600 # custom timeout (default: 300s)
In-chat commands: /clear or /new (new conversation), /exit or /quit or Ctrl+C (quit), /help.
Listing agents
grafana-assistant agents
grafana-assistant agents --json
grafana-assistant agents -i <instance>
Generating AGENTS.md
Generate an AGENTS.md file for AI coding agents:
grafana-assistant agents-md <target-directory>
grafana-assistant agents-md <target-directory> --dry-run # preview to stdout
grafana-assistant agents-md <target-directory> -o AGENTS.md # custom output name
grafana-assistant agents-md <target-directory> --force # overwrite existing
grafana-assistant agents-md <target-directory> --non-interactive # skip prompts
Assistant Tunnel
The tunnel allows Grafana Assistant to execute tools on your local machine.
grafana-assistant tunnel auth # authenticate (opens browser)
grafana-assistant tunnel connect # foreground connection (filesystem enabled by default)
grafana-assistant tunnel connect --all # all authenticated instances
grafana-assistant tunnel connect --terminal # enable terminal tool
Daemon management
grafana-assistant tunnel daemon install # install as system service
grafana-assistant tunnel daemon install --all # connect all instances
grafana-assistant tunnel daemon install --start-on-login=false
grafana-assistant tunnel daemon start|stop|restart|status
grafana-assistant tunnel daemon logs [--follow]
grafana-assistant tunnel daemon uninstall
Default security
Filesystem: read-only, project-scoped, blocks ~/.ssh, ~/.gnupg, ~/.aws/credentials, **/.env, **/secrets.yaml, **/*.pem, **/*.key. File size limit: 1MB.
Terminal: blocks dangerous commands (rm -rf /, mkfs, dd, fork bombs), minimal environment by default. Configurable via allow/deny lists in config.
Practical patterns for agent use
Shell permissions
The CLI makes HTTPS requests to Grafana. Always use required_permissions: ["all"] in Shell tool calls — this avoids TLS certificate verification failures from sandbox restrictions.
Timeout handling
Prompts can take 30s–300s depending on how many tools the assistant invokes. Set block_until_ms to at least 300000 (5 min) for complex queries.
What the CLI agent can do
The CLI agent is a read-only Grafana Assistant. It queries and analyzes data but cannot modify anything in Grafana.
Capabilities:
- Query metrics (PromQL, Graphite), logs (LogQL), traces (TraceQL), profiles, SQL, and more across all configured datasources
- Discover datasources, metric names, label values, and log streams
- Search dashboards and read panel definitions
- Search Grafana docs and blog posts
- Query alert history, on-call schedules, and incidents
- Query Asserts entity health, graph, and RCA patterns
- Query infrastructure memory service
Workflows it follows:
- Quick data query: discovers datasources → discovers metric/log names → executes query → presents findings
- Investigation: follows signals across metrics → logs → traces to find probable cause
- Q&A / doc search: answers Grafana/observability questions using docs
Not available in CLI (web/Slack only):
- Dashboard creation/modification
- Alert rule and silence management
- Navigation to Grafana pages
原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。