grafana-plugin-scaffolding について
grafana-plugin-scaffolding は、公式の @grafana/create-plugin を使って Grafana プロジェクトを作成するスキルです。Grafana v12.x 以降のパネル、データソース、アプリプラグインのセットアップとローカル開発を案内します。
主な機能
- 01パネル、データソース、アプリの作成
- 02フロントエンドと任意のバックエンド設定
- 03Docker で Grafana をローカル実行
- 04フロントエンドのビルドと変更監視
- 05Playwright による E2E テスト
活用シーン
- 01新しい Grafana パネルプラグインの開始
- 02バックエンド付きデータソースプラグインの作成
- 03Grafana プラグインのローカル開発と検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ nodnarbnitram/ claude-code-extensions --skill grafana-plugin-scaffoldingインストール後、Claude Code で/grafana-plugin-scaffoldingを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdreferences/e2e-testing.mdplugin-types.mdsdk-patterns.mdsigning-publishing.mdtroubleshooting.mdscripts/create_plugin.shdev_server.shtemplates/app-plugin.jsonbackend-plugin.jsondatasource-plugin.jsondocker-compose.yamlpanel-plugin.json詳細
Grafana プラグインのスキャフォールディングスキル
公式の @grafana/create-plugin スキャフォールダーを使用して、Grafana プラグインプロジェクトの作成を自動化します。このスキルでは、すべてのプラグインタイプについて、プロジェクトのスキャフォールディング、開発環境のセットアップ、初期設定を行います。
対応する Grafana バージョン: v12.x+ のみ
手順
ステップ 1:前提条件を確認する
スキャフォールディングを始める前に、次のツールがインストールされていることを確認します。
# Check Node.js (v18+ required)
node --version
# Check npm
npm --version
# Check Docker (optional, for local development)
docker --version
前提条件を満たしていない場合は、次のリンクからインストールするようユーザーに案内します。
- Node.js:https://nodejs.org/
- Docker Desktop:https://www.docker.com/products/docker-desktop/
ステップ 2:プラグインをスキャフォールディングする
公式の @grafana/create-plugin ツールを使用します。
# Interactive scaffolding (recommended)
npx @grafana/create-plugin@latest
# The tool will prompt for:
# - Plugin type (panel, datasource, app, scenesapp)
# - Organization name (e.g., "myorg")
# - Plugin name (e.g., "my-panel")
# - Include backend? (y/n)
ステップ 3:移動して依存関係をインストールする
# Navigate to the new plugin directory
cd <orgName>-<pluginName>-<pluginType>
# Install frontend dependencies
npm install
# Install backend dependencies (if backend plugin)
go mod tidy
ステップ 4:開発環境を起動する
オプション A:ホットリロード対応の Docker(推奨)
スキャフォールダーは docker-compose.yaml を生成します。ファイル監視に対応したより快適な開発環境を利用するには、Docker Compose の develop 機能を含む templates/docker-compose.yaml のテンプレートを使用します。
# Start Grafana with file watching (Docker Compose v2.22.0+)
docker compose watch
# Or standard start without watching
docker compose up -d
# Access Grafana at http://localhost:3000
# Login: admin / admin
docker compose watch を使用すると、次のようになります。
dist/内のフロントエンドの変更は自動的に同期されます(再起動不要)- バックエンドバイナリの変更(
gpx_*)によってコンテナが再起動します - 手動での再ビルドと再起動を繰り返す必要はありません
オプション B:手動
# Build and watch frontend
npm run dev
# Build backend (if applicable)
mage -v
# Configure Grafana to load unsigned plugins
# Add to grafana.ini: plugins.allow_loading_unsigned_plugins = <plugin-id>
ステップ 5:プラグインのインストールを確認する
- http://localhost:3000 を開きます
- Administration > Plugins に移動します
- プラグイン名を検索します
- プラグインが表示され、ダッシュボードに追加できることを確認します
プラグインタイプ別のワークフロー
パネルプラグイン
npx @grafana/create-plugin@latest
# Select: panel
# Enter: organization name
# Enter: plugin name
# Backend: No (panels don't need backend)
スキャフォールディング後:
src/components/SimplePanel.tsxを編集して、可視化ロジックを実装しますsrc/types.tsを編集して、パネルオプションのインターフェースを設定しますsrc/module.tsを編集して、オプションの設定を行います
データソースプラグイン(フロントエンドのみ)
npx @grafana/create-plugin@latest
# Select: datasource
# Enter: organization name
# Enter: plugin name
# Backend: No
スキャフォールディング後:
src/datasource.tsを編集して、クエリロジックを実装しますsrc/ConfigEditor.tsxを編集して、接続設定を行いますsrc/QueryEditor.tsxを編集して、クエリビルダーの UI を実装します
データソースプラグイン(バックエンドあり)
npx @grafana/create-plugin@latest
# Select: datasource
# Enter: organization name
# Enter: plugin name
# Backend: Yes
スキャフォールディング後:
pkg/plugin/datasource.goを編集して、Go のクエリロジックを実装しますQueryDataメソッドとCheckHealthメソッドを実装します- バックエンドをビルドします:
mage -v
アプリプラグイン
npx @grafana/create-plugin@latest
# Select: app
# Enter: organization name
# Enter: plugin name
# Backend: Optional
スキャフォールディング後:
src/pages/を編集して、アプリのページを作成します- ナビゲーション用に
plugin.jsonの includes を更新します - React コンポーネントとして新しいページを追加します
開発コマンド
# Frontend development (watch mode)
npm run dev
# Frontend production build
npm run build
# Backend build (Go plugins)
mage -v
# Run unit tests
npm test
# Run E2E tests (requires Grafana running)
npx playwright test
# Lint code
npm run lint
# Type check
npm run typecheck
E2E テスト
@grafana/create-plugin スキャフォールダーには、@grafana/plugin-e2e と Playwright を使用した E2E テストのセットアップが含まれています。
# Install Playwright browsers
npx playwright install --with-deps chromium
# Start Grafana
docker compose up -d
# Run E2E tests
npx playwright test
# Run with UI mode (debugging)
npx playwright test --ui
テストのパターン、フィクスチャ、CI/CD の設定について詳しくは、references/e2e-testing.md を参照してください。
ベストプラクティス
- シンプルに始める:最小限の機能から始めて、段階的に改善します
- Docker を使用する:チームメンバー間で一貫した環境を維持します
- 早い段階からテストする:開発中は頻繁にテストを実行します
- 型安全性:すべてのフロントエンドコードで TypeScript を活用します
- SDK の更新:
@grafana/data、@grafana/ui、@grafana/runtimeのバージョンを揃えます
よくある問題
プラグインが表示されない
plugin.jsonのidフィールドが正しいことを確認します- Docker のボリュームが正しくマウントされていることを確認します
npm run devがエラーなく完了したことを確認します
バックエンドプラグインのエラー
mage -vを実行して Go コードを再ビルドしますdist/内にplugin_start_linux_*またはgpx_*バイナリが存在することを確認しますplugin.jsonに"backend": trueが設定されていることを確認します
開発サーバーの問題
- ブラウザーのキャッシュをクリアします
- Docker を再起動します:
docker compose down && docker compose up -d - Grafana のログを確認します:
docker compose logs grafana
委任
複雑なアーキテクチャ上の判断、プラグインの設計パターン、またはトラブルシューティングについては、Context7 経由で最新の SDK ドキュメントを参照できる grafana-plugin-expert エージェントに委任してください。