claude-skills/

Anthropic公式スキル・プラグインの日本語ディレクトリ

last sync 1h ago
スキルOfficialmonitoring

📊grafana-assistant-cli

プラグイン
grafana-assistant

説明

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

設定

設定ファイルの場所(最初に見つかったものが優先)

  1. GRAFANA_ASSISTANT_CONFIG 環境変数(設定されている場合)
  2. ./grafana-assistant.yaml(カレントディレクトリ、--local フラグで使用)
  3. ~/.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 設定ファイルパスを上書き

認証情報の解決優先順位

  1. --url および --token フラグ
  2. GRAFANA_URL および GRAFANA_SA_TOKEN 環境変数
  3. --instance <name> フラグ
  4. 設定ファイルの 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      # 送信後に待たない

会話のコンテキストを保持する

デフォルトでは、各プロンプトは新しい独立した会話として開始されます。フォローアップメッセージを同じ会話にスレッド化し(アシスタントが過去のやり取りを記憶するようにするには)、以下の手順が必要です:

  1. 最初のプロンプトで --json を使用して contextId を取得
  2. その後のプロンプトすべてで -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 /mkfsdd、無限フォーク)をブロック。デフォルトは最小限の環境。設定ファイルの許可・拒否リストで設定可能。

エージェント使用時の実践的なパターン

シェルのパーミッション

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)

  1. GRAFANA_ASSISTANT_CONFIG env var (if set)
  2. ./grafana-assistant.yaml (current directory, use --local flag)
  3. ~/.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

  1. --url and --token flags
  2. GRAFANA_URL and GRAFANA_SA_TOKEN env vars
  3. --instance <name> flag
  4. current-instance from 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:

  1. Use --json on the first prompt to capture the contextId
  2. 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 による自動翻訳です。