📊grafana-assistant-cli
- プラグイン
- Grafana Assistant
- ソース
- GitHub で見る ↗
説明
次のような場合に使用: ユーザーがgrafana-assistant、Grafana Assistant CLI、assistant tunnel、またはアシスタント経由でGrafanaインスタンスへのクエリを希望する場合 Grafana Assistant CLI(コマンドラインツール)を使用して、A2A API(アプリケーション間通信インターフェース)経由でGrafana Assistantと連携できます。 このドキュメントでカバーしている内容: - インストール方法 - 設定手順 - プロンプト(指示内容)の入力方法 - 会話の文脈を維持する方法 - 運用調査に役立つ実践的なパターン
原文を表示
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インスタンスをクエリしたい
- ✓Grafana Assistant CLIで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 <名前>フラグ- 設定ファイルの
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 ユーザーロールが必要です。エディターロール以上のユーザーは自動的にこのロールを取得します。カスタムロールの場合は、grafana-assistant-app.tokens:access 権限を含めてください。
インスタンスの管理
grafana-assistant config set-instance <名前> -u <url> -t <トークン>
grafana-assistant config use-instance <名前>
grafana-assistant config current
grafana-assistant config list
grafana-assistant config delete-instance <名前>
grafana-assistant config path
トークンは環境変数参照に対応: -t '${MY_TOKEN_VAR}'
プロジェクトの管理
プロジェクトは、Assistant がトンネル経由でアクセスできる名前付きディレクトリです。
grafana-assistant config add-project <名前> <パス>
grafana-assistant config list-projects
grafana-assistant config remove-project <名前>
プロンプト送信(非対話型、エージェント利用時の主要なモード)
grafana-assistant prompt で単一のメッセージを送信して応答を取得します。Cursor から使用する主要なコマンドです。
grafana-assistant prompt "メッセージ"
grafana-assistant prompt "メッセージ" --json # JSON 形式で出力(contextId 含む)
grafana-assistant prompt "メッセージ" -c <context-id> # 会話を継続
grafana-assistant prompt "メッセージ" -a <agent-id> # 特定のエージェント
grafana-assistant prompt "メッセージ" --wait=false # 非同期実行
会話のコンテキスト(記憶)を保持する
デフォルトでは、各プロンプトは新しい独立した会話を開始します。後続のメッセージを同じ会話に続けて、Assistant が以前の文脈を記憶する状態にするには:
- 最初のプロンプトで
--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": "Assistant からの完全なテキスト応答..."
}
ステータス値: completed(完了)、failed(失敗)、timeout(タイムアウト)、canceled(キャンセル)、unknown(不明)
チャット(対話型)
フルスクリーンの対話画面を開きます。セッション内でコンテキストは自動的に保持されます。
grafana-assistant chat
grafana-assistant chat -i <インスタンス> # 特定のインスタンス
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 <インスタンス>
AGENTS.md の生成
AI コーディングエージェント用の AGENTS.md ファイルを生成します:
grafana-assistant agents-md <対象ディレクトリ>
grafana-assistant agents-md <対象ディレクトリ> --dry-run # 標準出力に表示
grafana-assistant agents-md <対象ディレクトリ> -o AGENTS.md # カスタム出力名
grafana-assistant agents-md <対象ディレクトリ> --force # 既存ファイルを上書き
grafana-assistant agents-md <対象ディレクトリ> --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、フォークボムなど)をブロック。デフォルトは最小限の環境。設定ファイルで許可リスト/ブロックリストを指定して カスタマイズ可能。
エージェント利用時の実践的パターン
シェルの権限
このツールは HTTPS でリクエストを Grafana に送信します。Shell ツール呼び出し時は常に required_permissions: ["all"] を指定してください。これにより、サンドボックス制限による TLS 証明書検証の失敗を回避できます。
タイムアウト対応
プロンプトは Assistant が実行するツール数に応じて 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 による自動翻訳です。