dt-obs-problems
DAVISによる問題分析を実行し、根本原因の特定・影響範囲の評価・他のテレメトリとの相関分析を行います。検出された問題の照会・調査時に使用してください。「アクティブな問題」「根本原因分析」「影響を受けたユーザー」「問題一覧」「P-12345の詳細」「Kubernetesに影響する問題」などのクエリに対応します。既存クエリの説明、製品ドキュメントの質問、一般的なログ検索、分散トレーシング、ホストレベルのリソース監視には使用しないでください。
description の原文を見る
>- DAVIS problem analysis including root cause identification, impact assessment, and correlation with other telemetry. Use when querying or investigating detected problems. Trigger: "active problems", "root cause analysis", "problem impact", "affected users", "list problems", "P-12345 details", "recurring problems", "problem history", "problem trending", "blast radius", "which entity caused the problem", "problems affecting Kubernetes", "problems by service". Do NOT use for explaining existing queries, product documentation questions, generic log searching, distributed tracing, or host-level resource monitoring.
SKILL.md 本文
問題分析スキル
Dynatrace AI が検出した問題を分析し、根本原因の特定、影響評価、ログやメトリクスとの相関関係を調査します。
ユースケース
1. アクティブな問題のトリアージ
- 目標: 現在アクティブな問題をリストアップし、優先順位を付ける
- トリガー: 「アクティブな問題」「オープンな問題は何か」「現在の問題」「可用性に関する問題」
- 完了: カテゴリ、ユーザーへの影響、表示 ID を含む優先順位付きの問題リスト
2. 根本原因の調査
- 目標: 特定の問題の根本原因となるエンティティを特定する
- トリガー: 「P-12345 の根本原因」「この問題の原因は何か」「どのエンティティが根本原因か」
- 完了: 根本原因となるエンティティが特定され、影響を受けるエンティティリストと波及範囲が示される
3. 問題のトレンド分析
- 目標: 時系列で問題パターンを分析し、繰り返し発生する問題を特定する
- トリガー: 「繰り返し発生する問題」「問題の履歴」「過去 30 日間の問題トレンド」
- 完了: 問題の頻度、繰り返し発生する根本原因、解決時間を示すトレンドデータ
概要
Dynatrace は環境全体の異常、パフォーマンス低下、障害を自動的に検出し、関連するアラート、警告、情報レベルのイベントを集約し、根本原因と影響の洞察を提供する問題を作成します。
問題とは何か?
問題は自動的に検出されるソフトウェアおよびインフラストラクチャのヘルスと回復力に関する問題で、以下のような特徴があります:
- 関連イベントを自動相関: サービス、インフラストラクチャ、フロントエンドアプリケーション、ユーザーセッション全体にわたるアラート、警告、情報レベルのイベントを自動的に相関させます
- 根本原因を特定: Smartscape 依存関係の因果分析を使用して根本原因を特定します
- ビジネス影響を評価: 影響を受けるユーザーとサービスを追跡することでビジネス影響を評価します
- アラートノイズを削減: 関連する症状を同じ根本原因と影響を持つ単一の問題にグループ化します
- 問題のライフサイクルを追跡: 早期検出から解決まで問題のライフサイクルを追跡します
イベントの種類
event.kind フィールド(安定版、権限が必要)は高レベルのイベントタイプを識別します:
event.kind の値 | 説明 |
|---|---|
DAVIS_EVENT | Davis が検出したインフラストラクチャ/アプリケーションイベント |
BIZ_EVENT | ビジネスイベント(API 経由で取り込まれるか、スパンからキャプチャされる) |
RUM_EVENT | リアルユーザー監視イベント |
AUDIT_EVENT | 管理/セキュリティ監査イベント |
event.provider(安定版、権限が必要)はイベントソースを識別します。
問題のカテゴリ
共通の event.category の値:
| カテゴリ | 説明 | 例 |
|---|---|---|
| AVAILABILITY | インフラストラクチャまたはサービスが利用できない | Web サービスがデータを返さない、合成テストが積極的に失敗する、データベース接続が切断される |
| ERROR | ベースライン を超えたエラー率の増加 | API エラー率が 0.1% から 15% に上昇 |
| SLOWDOWN | パフォーマンス低下 | レスポンスタイムが 200ms から 5000ms に増加 |
| RESOURCE | リソースの飽和 | コンテナメモリが 95% に達し、OOM キルが発生 |
| CUSTOM | カスタム異常検出 | ビジネス KPI(注文数/分)がしきい値を下回る |
問題のライフサイクル
検出 → アクティブ → 調査中 → クローズ
- ACTIVE: 現在発生している注意が必要な問題
- CLOSED: 履歴分析に使用される解決済みの問題
重要なフィールド
よくあるフィールド名の間違い
| ❌ 誤り | ✅ 正解 | 説明 |
|---|---|---|
title | event.name | 問題のタイトル/説明 |
status | event.status | 問題のライフサイクルステータス |
severity | event.category | 問題のタイプ/カテゴリ |
start | event.start | 問題の開始時刻 |
正しいステータス値
// ✅ 正解: これらのステータス値を使用してください
fetch dt.davis.problems
| filter event.status == "ACTIVE" // 現在発生している問題
// or event.status == "CLOSED" // 解決済みの問題
// ❌ 誤り: event.status == "OPEN" は存在しません!
| limit 1
キーフィールド リファレンス
fetch dt.davis.problems, from:now() - 1h
| filter not(dt.davis.is_duplicate)
| fields
event.start, // 問題開始タイムスタンプ
event.end, // 問題終了タイムスタンプ(クローズされた場合)
display_id, // 人間が読める問題 ID(P-XXXXX)
event.name, // 問題タイトル
event.description, // 詳細説明
event.category, // 問題のタイプ
event.status, // ACTIVE または CLOSED
dt.smartscape_source.id, // 影響を受けるリソースの smartscape ID
dt.davis.affected_users_count, // 影響を受けるユーザー数
smartscape.affected_entity.ids, // 影響を受けるエンティティ ID の配列
dt.smartscape.service, // 影響を受けるサービス(配列の場合もある)
dt.davis.root_cause_entity, // 根本原因として特定されたエンティティ
root_cause_entity_id, // 根本原因エンティティ ID
root_cause_entity_name, // 人間が読める根本原因名
dt.davis.is_duplicate, // 重複検出かどうか
dt.davis.is_rootcause // 根本原因か症状か
| limit 10
標準クエリパターン
すべての問題クエリを以下の基盤から開始してください:
fetch dt.davis.problems, from:now() - 2h
| filter not(dt.davis.is_duplicate) and event.status == "ACTIVE"
| fields event.start, display_id, event.name, event.category
| sort event.start desc
| limit 20
重要なコンポーネント:
fetch dt.davis.problems- 問題データソースnot(dt.davis.is_duplicate)- 重複検出をフィルタリングevent.status == "ACTIVE"- アクティブな問題のみを表示- 時間範囲 - 常に適切な期間を指定
よくあるクエリパターン
カテゴリ別アクティブな問題
fetch dt.davis.problems
| filter not(dt.davis.is_duplicate) and event.status == "ACTIVE"
| summarize problem_count = count(), by: {event.category}
| sort problem_count desc
高影響度のアクティブな問題(多くのユーザーに影響)
fetch dt.davis.problems
| filter not(dt.davis.is_duplicate) and event.status == "ACTIVE"
| filter dt.davis.affected_users_count > 100
| fields event.start, display_id, event.name, dt.davis.affected_users_count, event.category
| sort dt.davis.affected_users_count desc
高影響度のアクティブな問題(多くの smartscape エンティティに影響)
fetch dt.davis.problems
| filter not(dt.davis.is_duplicate) and event.status == "ACTIVE"
| filter arraySize(affected_entity_ids) > 5
| fields event.start, display_id, event.name, affected_entity_ids, event.category, impacted_entity_count = arraySize(affected_entity_ids)
| sort impacted_entity_count desc
特定の問題の詳細
fetch dt.davis.problems
| filter display_id == "P-XXXXXXXXXX"
| fields event.start, event.end, event.name, event.description, affected_entity_ids, dt.davis.affected_users_count, root_cause_entity_id, root_cause_entity_name
サービス固有の問題履歴
fetch dt.davis.problems, from:now() - 7d
| filter not(dt.davis.is_duplicate)
| filter in(dt.smartscape.service, toSmartscapeId("SERVICE-XXXXXXXXX"))
| summarize problems = count(), by: {event.category, event.status}
根本原因分析パターン
基本的な根本原因クエリ
fetch dt.davis.problems, from:now() - 24h
| filter not(dt.davis.is_duplicate) and event.status == "ACTIVE"
| fields
display_id,
event.name,
event.description,
root_cause_entity_id,
root_cause_entity_name,
smartscape.affected_entity.ids
エンティティタイプ別の根本原因
問題の原因となるエンティティタイプを特定します:
fetch dt.davis.problems, from:now() - 7d
| filter not(dt.davis.is_duplicate)
| filter isNotNull(root_cause_entity_id)
| summarize problem_count = count(), by:{root_cause_entity_name}
| sort problem_count desc
| limit 20
影響を受けるエンティティが AWS リソースである場合
fetch dt.davis.problems, from:now() - 24h
| filter not(dt.davis.is_duplicate) and event.status == "ACTIVE"
| filter matchesPhrase(arrayToString(smartscape.affected_entity.types, delimiter:","), "AWS_")
インフラストラクチャの根本原因とサービスの影響
fetch dt.davis.problems, from:now() - 30m
| filter not(dt.davis.is_duplicate) and event.status == "ACTIVE"
| filter matchesPhrase(root_cause_entity_id, "HOST-")
| filter isNotNull(dt.smartscape.service)
| fields display_id, event.name, root_cause_entity_name, dt.smartscape.service
問題の波及範囲
根本原因ごとのエンティティ影響を計算します:
fetch dt.davis.problems, from:now() - 7d
| filter not(dt.davis.is_duplicate)
| filter isNotNull(root_cause_entity_id)
| fieldsAdd affected_count = arraySize(smartscape.affected_entity.ids)
| summarize
avg_affected = avg(affected_count),
max_affected = max(affected_count),
problem_count = count(),
by:{root_cause_entity_name}
| sort avg_affected desc
繰り返し発生する根本原因
問題を繰り返し引き起こすエンティティを特定します:
fetch dt.davis.problems, from:now() - 24h
| filter not(dt.davis.is_duplicate)
| filter isNotNull(root_cause_entity_id)
| summarize
problem_count = count(),
first_occurrence = min(event.start),
last_occurrence = max(event.start),
by:{root_cause_entity_id, root_cause_entity_name}
| filter problem_count > 3
| sort problem_count desc
原因のカテゴリと根本原因エンティティ
これらは異なる質問です — 正しいアプローチを選択してください:
- 「問題の原因は何か?」 / 「最も一般的な原因」 →
event.categoryで集計します (SLOWDOWN、ERROR、RESOURCE、AVAILABILITY、CUSTOM)。各カテゴリをトリガーするものを説明します。 - 「どのエンティティが問題を引き起こすか?」 / 「根本原因エンティティ」 →
root_cause_entity_nameでグループ化します。特定のサービス、ホスト、またはアプリを一覧表示します。
原因カテゴリの内訳(一般的な原因、パターン、タイプについて質問された場合に使用):
fetch dt.davis.problems, from:now() - 30d
| filter not(dt.davis.is_duplicate)
| summarize problem_count = count(), by: {event.category}
| sort problem_count desc
その後、各カテゴリについて、「問題のカテゴリ」テーブルを使用してそれをトリガーするものを説明し、テナントデータからの特定のエンティティを例として引用してください。
問題のトレンド分析とパターン分析
時系列で問題のトレンドを追跡し、繰り返し発生する問題を特定し、解決のパフォーマンスを分析します。
プライマリファイル:
references/problem-trending.md- 時系列分析とパターン検出
よくあるユースケース:
makeTimeseriesを使用した時系列のアクティブな問題- カテゴリ別の問題作成率
- スケジュール別の繰り返し発生する問題検出
- 解決時間のトレンドと P95 期間分析
重要なテクニック:
makeTimeseriesvsbin(): ライフサイクルスパン vs 離散イベントに対して正しいアプローチを選択- NULL 処理: アクティブな問題に対して
coalesce(event.end, now())を使用 - ピーク時間分析: 問題が最も頻繁に発生する時間を特定
- 影響のトレンド: 時系列でのユーザー影響の変化を追跡
完全なクエリパターンとベストプラクティスについては、references/problem-trending.md を参照してください。
クロスドメイン問題クエリ
Kubernetes クラスタに関連する問題
affected_entity_ids または dt.smartscape_source.id を使用して、Kubernetes に関連する問題を検索します:
fetch dt.davis.problems, from:now() - 7d
| filter not(dt.davis.is_duplicate)
| filter matchesPhrase(dt.smartscape_source.id, "KUBERNETES_CLUSTER")
OR matchesPhrase(dt.smartscape_source.id, "K8S_")
| fields event.start, display_id, event.name, event.category, event.status,
dt.smartscape_source.id, affected_entity_ids
| sort event.start desc
代替方法: 影響を受けるエンティティを展開し、K8s エンティティタイプでフィルタリング:
fetch dt.davis.problems, from:now() - 7d
| filter not(dt.davis.is_duplicate)
| expand entity_id = affected_entity_ids
| filter matchesPhrase(entity_id, "KUBERNETES_CLUSTER")
OR matchesPhrase(entity_id, "K8S_")
| fields event.start, display_id, event.name, event.category, entity_id
| sort event.start desc
シンプルな問題リスト
過去 24 時間のすべての問題をリストアップします(一般的なリクエスト):
fetch dt.davis.problems, from:now() - 24h
| filter not(dt.davis.is_duplicate)
| fields event.start, event.end, display_id, event.name, event.category, event.status
| sort event.start desc
レスポンス構築
問題の原因サマリー
問題の原因、カテゴリ、またはパターンをまとめるときは、データに存在するすべての標準カテゴリ(AVAILABILITY、ERROR、SLOWDOWN、RESOURCE、CUSTOM)全体にわたる包括的な内訳を提供してください。見つかった各カテゴリについて:
- カテゴリ名と問題数
- それをトリガーするもの — 簡潔な説明(例:RESOURCE = CPU/メモリ/ディスク閾値を超える;AVAILABILITY = サービスまたはエンティティが到達不可能になる)
- テナントのデータからの具体例(影響を受けるエンティティ名、問題 ID)
最初の 2 つのカテゴリの後で停止しないでください — ユーザーは全体像を期待しています。上記の「問題のカテゴリ」テーブルを参照して、トリガーの説明を確認してください。
分析結果
クエリ結果を提示するときは:
- エンティティ名(ID だけではなく)を含めてください — ただし、効率的な方法を選択してください:
- 少数のエンティティ(5 未満):
get-entity-name呼び出しは問題ありません - 多くのエンティティ:
query-problemsツール(名前を直接返す)を使用するか、DQL クエリにroot_cause_entity_name/entityName()を含めて名前をインライン解決してください。10 個以上のエンティティに対してループでget-entity-nameを呼び出すことは避けてください — これはツール呼び出しの制限を超える可能性があり、まったく答えが返されません。
- 少数のエンティティ(5 未満):
- 識別された原因に合わせた実行可能な推奨を提供してください
- 簡単な優先順位付けのため、頻度または影響で整理してください
ベストプラクティス
重要なルール
- 常に重複をフィルタリング:
not(dt.davis.is_duplicate)を使用して、同じ問題を複数回カウントしないようにしてください - 正しいステータス値を使用:
"ACTIVE"または"CLOSED"、決して"OPEN"ではありません - 時間範囲を指定: 常に時間範囲を含めてパフォーマンスを最適化してください
- display_id を含める: 問題の特定とリンクに不可欠です
- 段階的にテスト: クエリを構築する際、一度に 1 つのフィルタまたはフィールドを追加してください
- 早期にフィルタリング: fetch の直後に
not(dt.davis.is_duplicate)を適用してください
クエリ開発
- シンプルに開始: 基本的なフィルタリングから始めて、その後複雑性を追加してください
- まずフィールドをテスト:
| limit 1で実行してフィールド名の存在を確認してください - 意味のある時間範囲を使用: 範囲が広すぎるとリソースを浪費し、狭すぎるとデータを逃します
- 問題 ID をドキュメント化: 常に
display_idをキャプチャして参照用に保存してください
根本原因の検証
- 必要な場合は常に
isNotNull(root_cause_entity_id)でフィルタリングしてください dt.davis.event_idsを使用してイベントを相互参照してください- 時間遅延を考慮してください: 根本原因は問題の数分前にログに表示される可能性があります
時間範囲ガイドライン
// ✅ 良い - 特定の時間範囲
fetch dt.davis.problems, from:now() - 4h
// ❌ 悪い - すべての履歴データをスキャン
fetch dt.davis.problems
トラブルシューティング
| 問題 | 原因 | 解決方法 |
|---|---|---|
| 問題が返されない | event.status == "OPEN" を使用している | "ACTIVE" または "CLOSED" を使用してください — "OPEN" は存在しません |
| 結果に重複する問題がある | 重複排除フィルタが欠落している | fetch の直後に filter not(dt.davis.is_duplicate) を追加してください |
誤ったフィールド名(title、status、severity) | SQL に似たネーミング | event.name、event.status、event.category を使用してください — 上記のフィールド名テーブルを参照 |
root_cause_entity_id が null | すべての問題が識別された根本原因を持つわけではありません | 根本原因をクエリするときに filter isNotNull(root_cause_entity_id) を追加してください |
| クエリが多くのデータをスキャン / タイムアウト | 時間範囲がない | 常に fetch コマンドで from:now() - <duration> を指定してください |
affected_entity_ids が空の配列 | 問題にマップされた影響を受けるエンティティがない | dt.smartscape.service または dt.smartscape_source.id を代替として確認してください |
リファレンスをロードするとき
problem-trending.md をロードする場合:
- 時系列で問題の頻度を分析する
- スケジュール別の繰り返し発生する問題を検出する
- 解決時間のトレンドと P95 期間を計算する
- カテゴリ別の問題作成レートを比較する
problem-correlation.md をロードする場合:
- 問題をログまたは他のテレメトリと相関させる
- 問題の前に発生したイベントを調査する
- 問題をデプロイメントまたは設定の変更にリンクする
impact-analysis.md をロードする場合:
- ビジネス影響を評価する(影響を受けるユーザー、サービス)
- 根本原因エンティティの波及範囲を計算する
- 技術的およびユーザーの影響で問題に優先順位を付ける
リファレンス
problem-trending.md— 問題トレンドと時系列分析パターンproblem-correlation.md— 問題とログおよび他のテレメトリとの相関impact-analysis.md— ビジネスおよび技術的影響評価problem-merging.md— DAVIS がイベントを問題にマージするときと理由
関連スキル
- dt-dql-essentials - 問題クエリ用のコア DQL 構文とクエリ構造
- dt-obs-logs - 問題とアプリケーション/インフラストラクチャログの相関
- dt-obs-tracing - 分散トレース分析を通じた問題の調査
ライセンス: Apache-2.0(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- dynatrace
- ライセンス
- Apache-2.0
- 最終更新
- 不明
Source: https://github.com/dynatrace/dynatrace-for-ai / ライセンス: Apache-2.0
関連スキル
superpowers-streamer-cli
SuperPowers デスクトップストリーマーの npm パッケージをインストール、ログイン、実行、トラブルシューティングできます。ユーザーが npm から `superpowers-ai` をセットアップしたい場合、メールまたは電話でサインインもしくはアカウント作成を行いたい場合、ストリーマーを起動したい場合、表示されたコントロールリンクを開きたい場合、後で停止したい場合、またはソースコードへのアクセスなしに npm やランタイムの一般的な問題から復旧したい場合に使用します。
catc-client-ops
Catalyst Centerのクライアント操作・監視機能 - 有線・無線クライアントのリスト表示・フィルタリング、MACアドレスによる詳細なクライアント検索、クライアント数分析、時間軸での分析、SSIDおよび周波数帯によるフィルタリング、無線トラブルシューティング機能を提供します。MACアドレスやIPアドレスでのクライアント検索、サイト別やSSID別のクライアント数集計、無線周波数帯の分布分析、Wi-Fi信号の問題調査が必要な場合に活用できます。
ci-cd-and-automation
CI/CDパイプラインの設定を自動化します。ビルドおよびデプロイメントパイプラインの構築または変更時に使用できます。品質ゲートの自動化、CI内のテストランナー設定、またはデプロイメント戦略の確立が必要な場合に活用します。
shipping-and-launch
本番環境へのリリース準備を行います。本番環境へのデプロイ準備が必要な場合、リリース前チェックリストが必要な場合、監視機能の設定を行う場合、段階的なロールアウトを計画する場合、またはロールバック戦略が必要な場合に使用します。
linear-release-setup
Linear Releaseに向けたCI/CD設定を生成します。リリース追跡の設定、LinearのCIパイプライン構築、またはLinearリリースとのデプロイメント連携を実施する際に利用できます。GitHub Actions、GitLab CI、CircleCIなど複数のプラットフォームに対応しています。
tracking-application-response-times
API エンドポイント、データベースクエリ、サービスコール全体にわたるアプリケーションのレスポンスタイムを追跡・最適化できます。パフォーマンス監視やボトルネック特定の際に活用してください。「レスポンスタイムを追跡する」「API パフォーマンスを監視する」「遅延を分析する」といった表現で呼び出せます。