mcpField
T
TalkO11yToMe: Learning MCP Servers with Dynatrace Integration

TalkO11yToMe: Learning MCP Servers with Dynatrace Integration

ローカル
github.com/chiefnamingofficerクラウド・インフラ073 週間前に更新

TalkO11yToMe: Learning MCP Servers with Dynatrace Integration について

TalkO11yToMeは、MCPとDynatraceの可観測性ワークフローを学ぶ開発者向けのプロジェクトです。GrailとClassic環境用のコマンドラインツールを提供し、独自のMCPサーバーは開発予定です。

主な機能

  1. 01Grailのログとビジネス分析のクエリ
  2. 02Classic環境のログクエリ
  3. 03OAuthとAPIトークンの設定
  4. 04非同期DQLクエリのポーリング
  5. 05共通設定と環境判定

活用シーン

  1. 01本番ログと問題の確認
  2. 02Lambdaのエラーやタイムアウトの調査
  3. 03環境の日次ヘルスチェック

MCP 対応

DynatraceとのMCP連携を学ぶためのプロジェクトで、MCPサーバーの設計資料を含みます。独自サーバーの構築はREADMEで開発予定とされています。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

インストール方法は未掲載です

このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。

リポジトリ

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

TalkO11yToMe:Dynatrace 統合で学ぶ MCP サーバー

MCP(Model Context Protocol)の学習の旅へようこそ!このプロジェクトでは、MCP サーバーとそのユースケースについて理解し、特に Dynatrace テナントと統合して、オブザーバビリティを活用した強力な AI ワークフローを実現する方法を学べます。

🎉 プロジェクトの状態:完全稼働中

6 つすべての Dynatrace ツールが本番環境で利用できる状態になりました:

  • ✅ 設定の標準化:共通の dotenv ベース設定により、200 行以上の重複コードを解消
  • ✅ DQL クエリのポーリング:非同期クエリ実行(202 → ポーリング → 結果)を適切に処理
  • ✅ OAuth 認証:5 分間有効なベアラートークンを使用し、すべてのツールで動作
  • ✅ 実データの取得:本番環境の問題、ログ、メトリクスを検出できることを確認
  • ✅ クリーンなアーキテクチャ:保守性を高める lib/ と tools/ の分離

📊 コード品質の改善:

  • 改善前:ツールごとに環境変数を解析するコードが 40 行以上 × 6 ツール = 240 行以上
  • 改善後:共通設定を使った 6 行 × 6 ツール = 36 行
  • 削減:重複コードを 204 行以上削除し、検証も強化

🚨 重要:Grail と Classic の環境サポート

Dynatrace の環境タイプによって、必要なツールと設定が異なります:

🆕 Grail 環境(推奨 — モダンプラットフォーム)
  • URL パターン:https://xxx.apps.dynatrace.com
  • 認証:OAuth ベアラートークンが必須
  • API エンドポイント:/platform/classic/environment-api/v2/
  • 主要ツール:grail-log-query.js ✅ 本番環境で利用可能
  • MCP サーバー:✅ 構築準備完了 — 設計の詳細
🏛️ Classic 環境(レガシープラットフォーム)
  • URL パターン:https://xxx.live.dynatrace.com
  • 認証:API トークンまたは OAuth
  • API エンドポイント:/api/v2/
  • 主要ツール:classic-log-query.js ✅ 本番環境で利用可能
  • MCP サーバー:✅ 構築準備完了 — 設計の詳細

📖 設定の詳細については、以下の環境の検出を参照してください。


📁 プロジェクト構成

TalkO11yToMe/
├── lib/                    # 🔧 Shared Infrastructure
│   ├── config.js          #    → Standardized dotenv configuration
│   └── demo-dotenv.js     #    → Configuration demonstration
├── tools/                  # 🚀 Production Tools (6 tools)
│   ├── grail-log-query.js        #    → Primary tool for Grail environments
│   ├── grail-business-analytics.js #  → DQL and business events (Grail)
│   ├── classic-log-query.js      #    → Primary tool for Classic environments
│   ├── classic-api-client.js     #    → Comprehensive API client (both)
│   ├── dynatrace-oauth-tool.js   #    → Authentication testing
│   └── dynatrace-monitor.js      #    → Visual monitoring dashboard
├── tests/                  # 🧪 Comprehensive Test Suite
│   ├── test-suite.js      #    → Main test runner with 8 validation tests
│   ├── test-config.js     #    → Test configuration and scenarios
│   ├── test-history.js    #    → Test history tracking and analysis
│   ├── results/           #    → Organized timestamped test results
│   └── README.md          #    → Complete testing documentation
├── docs/                   # 📚 Documentation
│   ├── FIXES_SUMMARY.md          #    → Complete technical solution summary
│   ├── TOOLS_GUIDE.md            #    → Detailed tool usage and examples
│   ├── DYNATRACE_LOGS_SOLUTION.md #  → Environment setup guide
│   └── [additional guides...]
└── env/                    # 🔐 Environment Configuration
    └── .env.dev                  #    → Your Dynatrace credentials

📚 ドキュメント

クイックリファレンス
主なセクション
  1. MCP とは?
  2. MCP アーキテクチャの理解
  3. Dynatrace MCP サーバー
  4. セットアップ手順
  5. 環境の検出
  6. クイックスタートデモ
  7. 実際のユースケース
  8. リソース
  9. プロジェクトのロードマップ

🤖 MCP とは?

Model Context Protocol(MCP)は、AI システム(Claude、Cursor、VS Code Copilot など)が、ビジネスですでに使用しているツールやデータに安全に接続できるようにするオープン標準です。AI の「ユニバーサルアダプター」と考えることができます。

主なメリット:
  • 統合の標準化:AI ツールごとにカスタム統合を作成する必要がなくなります
  • 安全なデータアクセス:システムへのアクセスを制御できます
  • リアルタイムのコンテキスト:AI は本番システムから最新の情報を取得できます
  • 拡張性:新しい機能やデータソースを簡単に追加できます

🏗️ MCP アーキテクチャの理解

MCP は 3 つの主要なコンポーネントで構成されています。

┌─────────────┐    ┌─────────────┐    ┌─────────────┐
│    Host     │◄───┤   Client    │◄───┤   Server    │
│ (AI Agent)  │    │(Translator) │    │ (Data/Tool) │
└─────────────┘    └─────────────┘    └─────────────┘
  • ホスト:AI アプリケーション(Claude Desktop、VS Code など)
  • クライアント:通信を処理し、リクエストを変換します
  • サーバー:特定の機能(Dynatrace のデータ、ファイルアクセス、API など)を提供します
MCP の機能:
  1. ツール:AI が呼び出せる関数(メトリクスのクエリ、アラートの作成など)
  2. リソース:AI が読み取れるデータソース(ログ、ダッシュボード、設定)
  3. プロンプト:一般的な AI とのやり取りのテンプレート

🔍 Dynatrace MCP サーバー

公式の Dynatrace MCP サーバーを使用すると、AI アシスタントが Dynatrace 環境とやり取りし、リアルタイムのオブザーバビリティに関する知見を得られます。

機能:
  • 問題管理:本番環境の問題を一覧表示して分析します
  • セキュリティの問題:脆弱性やセキュリティ上の問題の詳細にアクセスします
  • DQL クエリ:Dynatrace Query Language を実行して、ログやイベントを検索します
  • Slack 連携:Slack コネクターを介してアラートを送信します
  • ワークフローの自動化:通知ワークフローを設定します
  • エンティティの所有者情報:サービスの所有者情報を取得します
ユースケース:
  • リアルタイムのデバッグ:コーディング中に本番環境のコンテキストを取得します
  • インシデント対応:ライブデータを使って AI 支援によるトラブルシューティングを行います
  • セキュリティ分析:コードの脆弱性と本番環境の問題を関連付けます
  • パフォーマンスの最適化:自然言語でメトリクスやログをクエリします

🚀 セットアップ手順

前提条件
  • Node.js 18+(v20.19.2 LTS を使用しています)
  • Dynatrace テナントへのアクセス
  • Dynatrace API トークン、または OAuth クライアント認証情報
  • AI クライアント(Cursor IDE を推奨)
環境設定
  1. 環境テンプレートをコピーします:
cp env/env.template env/.env.dev
  1. env/.env.dev を認証情報に合わせて編集します:
# Dynatrace Environment
DT_ENVIRONMENT=https://your-environment-id.live.dynatrace.com

# API Token (simpler setup)
API_TOKEN=dt0c01.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

# OAuth (optional - for official MCP server)
OAUTH_CLIENT_ID=dt0s02.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
OAUTH_CLIENT_SECRET=dt0s02.XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.YYYYYYYYYYYYYYYYYYYYYYYYYYYY
OAUTH_RESOURCE_URN=urn:dynatrace:environment:your-environment-id
  1. 設定をテストします:
# Test shared configuration
node lib/demo-dotenv.js

# Verify tools work
node tools/dynatrace-monitor.js

# Run comprehensive test suite
node tests/test-suite.js

🔍 環境の判定

Dynatrace URL を確認して、環境の種類を判定します。

Grail 環境の判定
https://xxx.apps.dynatrace.com  ← Contains ".apps."

→ 使用: grail-log-query.js(OAuth が必要です)

Classic 環境の判定
https://xxx.live.dynatrace.com  ← Contains ".live."

→ 使用: classic-log-query.js(API トークンをサポートします)

🎯 クイックスタートデモ

Grail 環境の場合:
# Run primary tool for modern Dynatrace platforms
node tools/grail-log-query.js "error" now-2h

# Business analytics with DQL polling
node tools/grail-business-analytics.js query "fetch logs | limit 5"

# Visual monitoring dashboard
node tools/dynatrace-monitor.js
Classic 環境の場合:
# Run primary tool for legacy Dynatrace platforms
node tools/classic-log-query.js search "error" now-2h

# Comprehensive API client with auto-detection
node tools/classic-api-client.js problems 10

# Visual monitoring dashboard
node tools/dynatrace-monitor.js

🎯 最近のテスト結果:

  • メタデータを含む 5 件のログレコードを取得(16 ms で 418,085 件のレコードをスキャン)
  • Lambda の問題を 17 件検出(高いエラー率やタイムアウトを含む)
  • OAuth トークンが動作(ベアラートークンの有効期間は 5 分)
  • DQL ポーリングが機能(適切な 202 → ポーリング → 結果のワークフロー)

📖 ツールの詳しい使い方については、ツールガイドを参照してください。

🎯 実際のユースケース

1. AI を活用したインシデント対応

AI 連携デモを使用して、以下を行えます。

  • Lambda 関数のエラーを自動的に分析する
  • インシデント対応の優先順位を作成する
  • セキュリティ評価を作成する
  • モニタリングダッシュボードを設計する
2. 本番環境のデバッグコンテキスト
# Get context for coding session
node tools/dynatrace-monitor.js

# Search for specific errors with polling
node tools/grail-log-query.js "timeout" now-1h
3. 日次のヘルスモニタリング
# Morning standup dashboard
node tools/dynatrace-monitor.js

# Lambda function health check
node tools/classic-api-client.js lambda-problems now-24h

📊 アーキテクチャの改善

共有設定(lib/config.js)

変更前:各ツールで環境設定の解析処理が 40 行以上重複していました 変更後:dotenv を標準化した共有設定を 1 つにまとめました

// All tools now use this simple pattern:
const config = require('../lib/config');
const dt = await config.getDynatraceConfig();
// 6 lines replace 40+ lines of custom parsing
実現したメリット:
  • ✅ 204 行以上を削減 — 大幅なコード削減
  • ✅ エラー処理を標準化 — すべてのツールで一貫性を確保
  • ✅ 環境を検証 — Grail と Classic を自動判定
  • ✅ セキュリティを強化 — ログ内の認証情報を適切にマスキング
  • ✅ 保守性を向上 — 設定情報の信頼できる単一の情報源

📚 リソース

MCP の公式リソース:
Dynatrace MCP 統合:
プロジェクトドキュメント:

🎉 さっそく始めませんか? 包括的な使用例とベストプラクティスについては、ツールガイドをご覧ください!

🧪 テストスイート

すべてのツールとインフラストラクチャを検証するための包括的なテストスイートが含まれています。

クイックテストの実行
# Run all tests (takes ~8 seconds)
node tests/test-suite.js
テスト対象
  • ✅ ファイル構成:想定される9個のファイルがすべて存在すること
  • ✅ 共有設定:Dotenv 統合が機能していること
  • ✅ 認証:OAuth トークンの生成(有効期間5分)
  • ✅ 6つのすべてのツール:Grail、Classic、Universal の各ツール
  • ✅ 実データへのアクセス:本番環境の問題とログ
  • ✅ DQL ポーリング:非同期クエリの実行(202 → ポーリング → 結果)
期待される結果
📊 TEST RESULTS SUMMARY
Total Tests: 8
✅ Passed: 8
❌ Failed: 0
📈 Success Rate: 100.0%

📋 詳細な使用方法とトラブルシューティングについては、テストスイートのドキュメントをご覧ください。


🚀 プロジェクトロードマップ

🎯 現在の状況:本番環境で使用可能

すべてのツールが包括的なテストを経て、整理された構成で動作しています。次のフェーズの拡張に進む準備が整っています。

📋 今後の優先事項
  1. 🌐 HTTP の改善:エラー処理とリクエストインターセプターを強化するため、fetch から axios に移行
  2. 🤖 MCP サーバーの開発:ツールを AI が利用できる機能として公開するカスタム MCP サーバーを構築
  3. ⚡ パフォーマンスの最適化:並列テスト、パフォーマンスベンチマーク、負荷テスト
📚 計画ドキュメント
💡 アイデアと貢献

ロードマップには、次のような高度な機能が含まれています。

  • 自然言語によるクエリ(「過去1時間の Lambda エラーを表示」)
  • 複数環境のサポートと比較
  • 予測分析と異常検知
  • 他のオブザーバビリティプラットフォームとの統合

📝 貢献:今後の開発に貢献する方法については、TODO.mdをご確認ください。

🎯 注力分野:HTTP の改善と MCP サーバーの開発が、当面の優先事項です**

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。