Dynatrace
私たちは、オブザーバビリティソリューションとしてDynatrace Managedを使用しています。このドキュメントは、Dynatrace Managed MCPを使用してDynatraceからEasyTradeシステムのデータを取得するための指示を提供します。
ベストプラクティス
- 常に特定の時間範囲を使用し、これを狭く保ちます(例:now-1h、now-24h)。大きなデータクエリを避けてください。
- エンティティセレクターについては、より正確なフィルタリングのためにタグの基準を使用することを検討してください(タグ付け戦略と名前付けが理解されている場合)。
easytradeのエンティティセレクター
エンティティセレクターでこれらの基準を使用して、easytradeアプリケーションのデータをフィルタリングしてください。
サービス:
type(SERVICE),entityName.contains("easytrade")
type(SERVICE),tag("app:easytrade")
プロセスグループとコンテナ:
type(PROCESS_GROUP),entityName.contains("easytrade")
type(CONTAINER_GROUP_INSTANCE),entityName.contains("easytrade")
ホスト:
type(HOST),tag("environment:production"),tag("app:easytrade")
AWS Lambda関数:
type(AWS_LAMBDA_FUNCTION),entityName.contains("easytrade")
type(AWS_LAMBDA_FUNCTION),tag("AWS_REGION:us-west-2"),tag("app:easytrade")
## 🔧 技術詳細
### 環境変数
#### 構成変数
- **`DT_CONFIG_FILE`**(オプション):構成ファイル(JSONまたはYAML)へのパス。**ローカル開発に推奨**。
- 相対パスをサポートします(例:`./dt-config.yaml`)
- 絶対パスをサポートします(例:`/etc/dynatrace/config.yaml`)
- `~` 展開をサポートします(例:`~/dt-config.yaml`)
- ファイル内容で環境変数の補間をサポートします(`${VAR_NAME}`)
- 例:`DT_CONFIG_FILE=./dt-config.yaml`
- **`DT_ENVIRONMENT_CONFIGS`**(オプション):環境構成を含むJSON文字列。**Kubernetes/Dockerに便利**。
- `DT_CONFIG_FILE` が設定されていない場合に使用されます。
- 有効なJSON配列である必要があります。
- 例:`DT_ENVIRONMENT_CONFIGS='[{"apiEndpointUrl":"...","environmentId":"...","alias":"...","apiToken":"..."}]'`
> **注意**:`DT_CONFIG_FILE` と `DT_ENVIRONMENT_CONFIGS` の両方が設定されている場合、`DT_CONFIG_FILE` が優先されます。
#### ロギング変数
- `LOG_LEVEL`(オプション):ログの詳細レベル(例:debug、info、warn、error)。デフォルト:`info`
- `LOG_OUTPUT`(オプション):ログの出力先。デフォルト:`file`
- `file`:ログをファイルに書き込みます(デフォルトの動作)
- `stdout` / `console`:標準出力にログを書き込みます(⚠️ **stdioトランスポートのみ**:stdioはMCPプロトコルに予約されているため、代わりに `stderr-all` を使用してください)
- `stderr`:エラーと警告を標準エラーに書き込みます(info/debugは抑制されます)
- `stderr-all`:すべてのログレベルを標準エラーに書き込みます(✅ **VS Codeでstdioトランスポートを使用する場合に推奨**)
- `file+console` / `file+stdout`:ログをファイルとstdoutの両方に書き込みます(⚠️ **stdioトランスポートのみ**:stdioはMCPプロトコルに予約されているため、代わりに `stderr-all` を使用してください)
- `file+stderr`:ログをファイルに、エラー/警告をstderrに書き込みます
- `disabled`:ロギングを完全に無効にします
- `LOG_FILE`(オプション):`LOG_OUTPUT` に `file` が含まれる場合のログファイルへのパス。デフォルト:現在の作業ディレクトリの `dynatrace-managed-mcp.log`
> ⚠️ **セットアップに適したLOG_OUTPUTを選択する**
>
> - **stdioトランスポート(デフォルト)**:`LOG_OUTPUT=stderr-all` または `LOG_OUTPUT=file`(デフォルト)を使用してください。
> - ❌ `LOG_OUTPUT=console` は機能しません - stdoutはMCPプロトコルに予約されています。
> - ✅ `LOG_OUTPUT=stderr-all` はVS Codeの出力パネルにすべてのログを表示します。
> - ✅ `LOG_OUTPUT=file` はログファイルに書き込みます(`tail -f dynatrace-managed-mcp.log` で読み取ります)。
> - **HTTPトランスポート(`--http` モード)**:任意の `LOG_OUTPUT` オプションが機能します。
> - ✅ `LOG_OUTPUT=console` はターミナルに表示されます。
> - ✅ `LOG_OUTPUT=stderr-all` はターミナルに表示されます。
> - ✅ `LOG_OUTPUT=file` はログファイルに書き込みます。
**ロギングの例**
```bash
# VS Codeでstdioトランスポートを使用する - 出力パネルにログを表示する
LOG_OUTPUT=stderr-all LOG_LEVEL=debug
# VS Codeでstdioトランスポートを使用する - ファイルに書き込む(デフォルト)
LOG_LEVEL=debug
# 読み取り:tail -f dynatrace-managed-mcp.log
# HTTPトランスポート - コンソールにログを出力する
LOG_OUTPUT=console LOG_LEVEL=debug node dist/index.js --http
# HTTPトランスポート - ファイルとコンソールにログを出力する
LOG_OUTPUT=file+console LOG_LEVEL=debug node dist/index.js --http
# カスタムファイルパスにログを出力する
LOG_OUTPUT=file LOG_FILE=/var/log/dynatrace-mcp.log node dist/index.js
# ロギングを完全に無効にする(推奨しない)
LOG_OUTPUT=disabled node dist/index.js
レート制限変数
DT_MCP_RATE_LIMIT_MAX_CALLS(オプション):レート制限ウィンドウ内で許可される最大ツール呼び出し数。デフォルト:20
DT_MCP_RATE_LIMIT_WINDOW_MS(オプション):レート制限ウィンドウのサイズ(ミリ秒)。デフォルト:20000(20秒)
例:30秒あたり50回の呼び出しを許可する
DT_MCP_RATE_LIMIT_MAX_CALLS=50
DT_MCP_RATE_LIMIT_WINDOW_MS=30000
マルチ環境構成フィールド
DT_ENVIRONMENT_CONFIGS 変数内で、配列の各要素には、各環境に対して以下のすべてのフィールドが含まれている必要があります。
dynatraceUrl:Dynatrace ManagedダッシュボードのベースURLで、環境IDが追加されます(例:https://dmz123.dynatrace-managed.com)。指定されていない場合、DT_API_ENDPOINT_URL と同じ値がデフォルトで使用されます。
apiEndpointUrl(必須):Dynatrace Managed APIのベースURLで、環境IDが追加されます(例:https://abc123.dynatrace-managed.com:9999)
environmentId(必須):管理環境のIDで、APIとダッシュボードのURLを構築するために使用されます(例:01234567-89ab-cdef-abcd-ef0123456789 の形式)
alias:環境のわかりやすい名前で、LLMで環境を区別する際に便利です。
apiToken(必須):必要なスコープを持つAPIトークン(認証 を参照)
httpProxyUrl(オプション):企業環境用のHTTPプロキシで、トラフィックをルーティングするために使用します(例:http://proxy.company.com:8080)
httpsProxyUrl(オプション):企業環境用のHTTPSプロキシで、トラフィックをルーティングするために使用します(例:https://proxy.company.com:8080)
プロキシ構成
MCPサーバーは、構成した各Dynatrace Managed環境に対して、企業環境用のシステムプロキシ設定を尊重します。
httpProxyUrl(オプション、文字列、例:http://proxy.company.com:8080) - HTTPSリクエスト用のプロキシサーバーURL
httpsProxyUrl(オプション、文字列、例:http://proxy.company.com:8080) - HTTPリクエスト用のプロキシサーバーURL
プロキシを使用した構成例
export DT_ENVIRONMENT_CONFIGS='[
{
"dynatraceUrl": "https://my-dashboard-endpoint.com/",
"apiEndpointUrl": "https://my-api-endpoint.com/",
"environmentId": "my-env-id-1",
"alias": "alias-env",
"apiToken": "my-api-token",
"httpProxyUrl": "http://proxy.company.com:8080"
},
{
"dynatraceUrl": "https://my-dashboard2-endpoint.com/",
"apiEndpointUrl": "https://my-api2-endpoint.com/",
"environmentId": "my-env-id-2",
"alias": "alias-env-2",
"apiToken": "my-api-token-2",
"httpProxyUrl": "http://proxy.company.com:8080"
}
]'
httpProxyUrl/httpsProxyUrl 変数は環境ごとに設定されるため、ある環境ではプロキシを使用し、他の環境では使用しないように構成できます。
認証
Dynatrace Managedは、APIトークンベースの認証を使用します。必要なスコープを持つAPIトークンをManagedクラスターで作成してください(次のサブセクションを参照)。
ManagedデプロイメントでAPIトークンを作成する方法の詳細については、Dynatrace Managedドキュメント を参照してください。
ManagedデプロイメントのAPIスコープ
APIトークンには、完全な機能を利用するために以下のスコープが含まれている必要があります。
必須スコープ
- 監査ログの読み取り (
auditLogs.read)
- エンティティの読み取り (
entities.read)
- イベントの読み取り (
events.read)
- ログの読み取り (
logs.read)
- メトリクスの読み取り (
metrics.read)
- ネットワークゾーンの読み取り (
networkZones.read)
- 問題の読み取り (
problems.read)
- セキュリティ問題の読み取り (
securityProblems.read)
- SLOの読み取り (
slo.read)
注意:ManagedデプロイメントのAPIトークンスコープは、SaaSプラットフォームのトークンとは異なります。Managedクラスターのバージョンに適したスコープを選択してください。
SaaS Dynatrace MCPとの主な違い
このMCPはDynatrace Managedプラットフォーム用です。Dynatrace SaaSで使用する場合は、別の Dynatrace MCP サーバーがあります。
主な違いは以下の通りです。
- Dynatrace SaaS MCPはDQLを使用しますが、Dynatrace Managedはv2 APIを使用します。
- Dynatrace SaaS MCPはDavis CoPilotを使用しますが、Dynatrace Managedは使用しません。
- Dynatrace SaaS MCPはOAuthを使用しますが、Dynatrace ManagedはAPIトークンを使用します。
Dynatrace SaaS MCPとDynatrace Managed MCPを併用したハイブリッドセットアップ
このManaged Dynatrace MCPは、SaaS Dynatrace MCPと並行して実行することができ、セルフホスト型とSaaSのDynatrace環境間のハイブリッドセットアップを可能にします。これは、アプリケーションをハイブリッド方式で実行する場合に便利ですが、Dynatrace SaaSに移行したが、Managedプラットフォームに移行しない履歴データがまだある移行シナリオにも対応しています。このシナリオでは、MCPクライアントを構成して、2つのMCPサーバーに同時に接続することができ、SaaSとManagedのデータをクエリできます。
これをセットアップするには、以下の手順を実行してください。
- 上記の手順 に従って、このDynatrace Managed MCPサーバーをセットアップします。
- Dynatrace SaaS MCPの手順 に従ってセットアップし、MCP構成ファイルで2つのサーバーに異なる名前を付けるようにしてください。
- AIアシスタントで、両方のサーバーに接続されていることを確認します。
- (オプションですが、推奨)AIアシスタントにルールまたはステアリングを設定して、両方のMCPを使用するための明確なガイダンスを与えます。
両方のMCPサーバーを構成したら、MCPクライアントが適切なMCPサーバー(または必要に応じて両方)に転送する質問をすることができます。
MCPクライアントにルールまたはステアリングを含めない場合、過去24時間のアプリケーション問題をDynatraceにリストアップするように依頼する などのクエリは、コンテキストウィンドウに含まれる内容に応じて、一方または両方のMCPサーバーを使用する場合があります。このように進める場合は、コマンドを 非常に 具体的にするようにしてください。たとえば、私のManaged環境で過去24時間のアプリケーション問題をDynatraceにリストアップするように依頼する というように。
ルール/ステアリング
AIアシスタントは通常、使用方法に関するガイダンスを提供するためのルールファイルをサポートしています(ルールファイル の構成情報を参照)。
このMCPサーバーをSaaS MCPサーバーとハイブリッドセットアップで使用する場合や、複数の管理環境を持っている場合、AIアシスタントが間違ったMCPを使用したり混乱したりしないように、構成にこれを追加することをお勧めします。
あなたのステアリングルールはあなたのセットアップに固有のものになりますが、以下にいくつかの推奨テンプレートを始点として含めています。
必要に応じてこれらを編集し、あなたの環境に固有の追加コンテキストを含めることができます。
複数のManaged環境
この例では、複数のDynatrace Managed環境が設定されています。これは、開発/テスト/本番環境のセットアップ、またはまったく異なるアプリケーションのセットである可能性があります。混乱を避けるために、DT_ENVIRONMENT_CONFIGS の alias フィールドで使用したのと同じエイリアスで環境を参照することをお勧めします。
# Dynatrace
- 3つの別々のDynatrace環境があります。
1. "production" はセルフホスト型のDynatrace Managed環境です。これには本番環境に関するデータが含まれており、
これは顧客に公開されているため、他の環境よりも問題や障害のランクが高くなります。
これは、dynatrace-managed-mcp-serverという名前のDynatrace Managed MCPを介してアクセスされます。
2. "test" はセルフホスト型のDynatrace Managed環境です。これにはテスト環境に関するデータが含まれており、本番環境に移行する前にコードを準備するために使用されます。
これは、dynatrace-managed-mcp-serverという名前のDynatrace Managed MCPを介してアクセスされます。
3. "development" はセルフホスト型のDynatrace Managed環境です。これには開発環境に関するデータが含まれており、
これは最も優先度の低い環境です。
これは、dynatrace-managed-mcp-serverという名前のDynatrace Managed MCPを介してアクセスされます。
- どの環境を使用するかに注意してください。
不明な場合は、使用する環境を尋ねてください。
- ユーザーに対して、どの環境のデータであるかを明確にする必要があります。
移行日付を含むハイブリッドセットアップ
この例では、ManagedからSaaSに移行しましたが、セルフホスト型のManaged環境にまだ履歴データが残っています。
AIアシスタントにデータがどこにあるかのコンテキストを持たせたいと思います。これにより、要求する日付範囲に対してどの環境をターゲットにするかを知ることができます。たとえば、過去7日間のすべてのDynatrace問題を表示してください という要求は、両方の環境からのデータが必要になる場合があり(したがって両方のMCPサーバーを使用する)、またはDynatrace SaaSのみに存在する場合もあります。
# Dynatrace
- 2つの別々のDynatraceがあります。
1. Dynatrace Managedはセルフホスト型です。これには2025年11月29日以前の履歴データのみが含まれています。
これは、dynatrace-managed-mcp-serverという名前のDynatrace Managed MCPを介してアクセスされます。
2. Dynatrace SaaSはすべてのライブデータに使用されます。
これは、dynatrace-saas-mcp-serverという名前のDynatrace SaaS MCPを介してアクセスされます。
- どのMCPを使用するかに注意してください。
不明な場合は、使用するMCPを尋ねてください。
- ユーザーに対して、データがDynatrace ManagedまたはDynatrace SaaSから来たものであることを明確にする必要があります。
並行して実行するハイブリッドセットアップ
この例では、一部のアプリケーションにDynatrace Managedを使用し、他のアプリケーションにDynatrace SaaSを使用しており、MCPクライアントに各アプリケーションのデータをどこで見つけるかのコンテキストを持たせたいと思います。
# Dynatrace
- 2つの別々のDynatraceがあり、どちらもライブデータを含んでいます。
1. Dynatrace Managedはセルフホスト型です。これには一部のシステム、主に書店システムのオブザーバビリティデータのみが含まれています。
これは、dynatrace-managed-mcp-serverという名前のDynatrace Managed MCPを介してアクセスされます。
2. Dynatrace SaaSは他のすべてのシステムのオブザーバビリティに使用されます。
これは、dynatrace-saas-mcp-serverという名前のDynatrace SaaS MCPを介してアクセスされます。
- どのMCPを使用するかに注意してください。
不明な場合は、使用するMCPを尋ねてください。
- ユーザーに対して、データがDynatrace ManagedまたはDynatrace SaaSから来たものであることを明確にする必要があります。
サンプルプロンプト
「Dynatraceに問題をリストアップするように依頼する」のような簡単なものから始めることができ、サンプル を参考にしてより高度なクエリを行うことができます。
トラブルシューティング
認証問題
ほとんどの場合、認証問題はスコープの不足または無効なトークンに起因します。上記にリストされているすべての必要なスコープを追加していることを確認してください。
エラーが発生した場合、AIアシスタントにMCPから返された正確なエラーを尋ねることができます。起動時の問題については、AIアシスタントのログを確認してください。
また、MCPを直接実行して、起動時にエラーが報告されるかどうかを確認することもできます。
npx @dynatrace-oss/dynatrace-managed-mcp-server@latest
テレメトリ
Dynatrace MCPサーバーには、Dynatrace OpenKitを介してテレメトリデータを送信する機能が含まれており、製品の改善に役立ちます。これには以下が含まれます。
- サーバー起動イベント
- ツールの使用状況(どのツールが呼び出されたか、成功/失敗、実行時間)
- デバッグと改善のためのエラー追跡
プライバシーとオプトアウト
- テレメトリは デフォルトで有効 ですが、
DT_MCP_DISABLE_TELEMETRY=true を設定することで無効にできます。
- Dynatrace環境からの機密データは追跡されません。
- 匿名の使用統計とエラー情報のみが収集されます。
- 使用統計とエラーデータは、Dynatraceの分析エンドポイントに送信されます。
構成オプション
DT_MCP_DISABLE_TELEMETRY(ブール値、デフォルト:false) - テレメトリを無効にする
DT_MCP_TELEMETRY_APPLICATION_ID(文字列、デフォルト:dynatrace-managed-mcp) - 追跡用のアプリケーションID
DT_MCP_TELEMETRY_ENDPOINT_URL(文字列、デフォルト:Dynatraceエンドポイント) - OpenKitエンドポイントURL
DT_MCP_TELEMETRY_DEVICE_ID(文字列、デフォルト:自動生成) - 追跡用のデバイス識別子
使用状況の追跡を無効にするには、構成に以下を追加してください。
DT_MCP_DISABLE_TELEMETRY=true