Skip to content

Repository files navigation

CNK NOC Booth

CNK イベントのブース展示用アプリ。
自然言語でプロンプトを入力すると、AWS Bedrock (Claude) が Grafana ダッシュボードを自動生成する。

アーキテクチャ

flowchart LR
    Browser(["ブラウザ"])

    subgraph local["ローカル / Docker"]
        Next["Next.js\n:3000"]
        Agent["Agent\n:8001\nStrands SDK"]
        MCP["mcp-grafana\n:8000"]
        Grafana["Grafana\n:3001"]
        Prometheus["Prometheus\n:9090"]
        NodeExp["Node Exporter\n:9100"]
    end

    Bedrock(["AWS Bedrock\n(Claude)"])

    Browser -->|HTTP| Next
    Next -->|HTTP| Agent
    Agent -->|API| Bedrock
    Agent -->|SSE| MCP
    MCP -->|HTTP API| Grafana
    Grafana -->|scrape| Prometheus
    Prometheus -->|scrape| NodeExp
Loading
サービス ポート 説明
Next.js 3000 フロントエンド
Agent 8001 Strands Agent (Bedrock + MCP)
mcp-grafana 8000 Grafana MCP サーバー
Grafana 3001 ダッシュボード
Prometheus 9090 メトリクス収集
Node Exporter 9100 ホストメトリクス

セットアップ

1. 環境変数の設定

cp .env.local.example .env.local

.env.local に設定が必要な変数:

変数名 説明
AWS_REGION Bedrock のリージョン(例: us-east-1
BEDROCK_MODEL_ID 使用するモデル ID(クロスリージョン推論プロファイル)
GRAFANA_SERVICE_ACCOUNT_TOKEN Grafana サービスアカウントトークン(手順は下記)

AWS 認証について: agent コンテナは ~/.aws をマウントしているため、AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY の直接指定は不要。
aws configure または aws sso login でローカルのプロファイルを設定しておくこと。

モデル ID の例:

# 速い・安い(ブース向き推奨)
us.anthropic.claude-3-haiku-20240307-v1:0

# 能力重視
us.anthropic.claude-3-5-sonnet-20241022-v2:0

anthropic.claude-xxx 形式はオンデマンドでは使えない。クロスリージョン推論プロファイル(us. プレフィックス)を使うこと。

2. Grafana の起動とトークン発行

docker compose up -d grafana prometheus node-exporter

Grafana でサービスアカウントトークンを発行(初回のみ):

  1. http://localhost:3001 を開く(admin / admin)
  2. Administration → Service accounts → Add service account
  3. Role: Editor → Create
  4. Add service account token → Generate → コピー
  5. .env.localGRAFANA_SERVICE_ACCOUNT_TOKEN に貼り付け

3. 残りのサービスを起動

docker compose --env-file .env.local up -d mcp-grafana agent

4. フロントエンドを起動

bun install
bun dev

ブラウザで http://localhost:3000 を開く。

コマンド一覧

# 全サービス起動
docker compose --env-file .env.local up -d

# ログ確認
docker compose logs -f agent

# 停止
docker compose down

# フロントエンド
bun dev        # 開発サーバー
bun build      # ビルド
bun start      # 本番起動

AWS 本番環境での起動

bun build
bun start

環境変数は EC2/ECS のタスク定義などに設定する(.env.local は不要)。

About

クラウドネイティブ会議でbooth展示をするGrafana MCPを使ったダッシュボード作成用の展示コンテンツになります

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages