mcpField
D
dt-obs-predictive-analytics

dt-obs-predictive-analytics

github.com/dynatraceデータ・データベース1692.2k 回インストール今日更新
リポジトリ

dt-obs-predictive-analytics について

Dynatrace 向けの分析スキルで、リソースの飽和予測やメトリクスの傾向、異常、信号特性の分析に使えます。容量計画や監視に適したアナライザーと DQL の使い方を案内します。

主な機能

  1. 01Dynatrace アナライザーによる予測
  2. 02信号変化と異常の検出
  3. 03季節性と傾向の分析
  4. 04容量リスク向け DQL クエリ例
  5. 05分析結果の解釈ガイド

活用シーン

  1. 01ホストが CPU 上限に達する時期の推定
  2. 02サービスリクエスト量の予測
  3. 03メトリクスの変化開始時点の特定
  4. 04現在のトラフィックと季節基準値の比較

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/dynatrace/dynatrace-for-ai --skill dt-obs-predictive-analytics

インストール後、Claude Code で/dt-obs-predictive-analyticsを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
anomaly-scoring.md
capacity-forecasting.md
forecasting-analyzer.md
novelty-detection.md
trend-detection.md

詳細

予測分析スキル

DQL と Dynatrace のアナライザーツールを使用して、リソースの飽和を予測し、傾向を検出し、異常を分析し、シグナルの挙動を特徴付けます。

分析分野

#分野使用するケース…
1予測と推定キャパシティプランニング、コスト見積もり、またはプロアクティブなアラートのために、将来のメトリクス値を予測する場合
2変化の検出メトリクスが変化した場合 — 上限を超えたかどうかに関係なく、シグナルの特性が変化した時点を見つけます
3違反の検出メトリクスが現在、範囲外にある場合 — 許容範囲を超えている、または下回っているエンティティを見つけます
4時系列の特性さらなる分析の前に、シグナルの季節性、ノイズレベル、傾向を特徴付けます

適切な検出ツールの選択

最も重要な判断事項:「このメトリクスは変化したか?」と尋ねているのか、それとも「このメトリクスは現在、異常な状態にあるか?」と尋ねているのかを判断します。

質問ツール理由
「過去 N 時間でこのメトリクスは変化しましたか?」timeseries-novelty-detection既知の許容限度を必要とせず、シグナルの特性が変化した時点(スパイク、ステップ、傾向の開始、変動性の変化)を検出します
「最近、急上昇または急落したサービスはどれですか?」SPIKE / CHANGE_IN_VALUES を指定した timeseries-novelty-detection変化が発生した特定のエンティティとタイムスタンプを検出します。安定したシグナルの場合、結果は空になります
「CPU の上昇傾向はいつ始まりましたか?」TREND_IN_VALUES を指定した timeseries-novelty-detection方向性のある変化が始まった時点を特定します
「現在、CPU 使用率が 90% を超えているホストはどれですか?」static-threshold-analyzer固定の既知の上限 — 超過時にアラートを発報します
「現在、通常より負荷が高いサービスはどれですか?」adaptive-anomaly-detectorデータから通常の分布を学習し、しきい値違反が継続している場合にフラグを立てます
「週ごとのパターンと比べて、現在負荷が高いサービスはどれですか?」seasonal-baseline-anomaly-detector何が異常かを判断する前に、時刻や曜日のパターンを考慮します
判断基準の平易な説明
  • 「変化した」「シフトした」「急上昇した」「急落した」「始まった」「いつ発生したか」「何か異常なことが起きたか」が質問に含まれる場合は、timeseries-novelty-detection を使用します。このツールは、変化が発生したかどうかと、その時点を回答します。事前に定義されたしきい値は必要ありません。
  • 予想範囲と比較した継続中または現在の状態についての質問には、異常検出ツール(adaptive、seasonal、または static)を使用します。「最も高い値のものはどれか」「違反しているのはどれか」「X を超えているのは何か」といった質問が該当します。これらのツールは、スライディングウィンドウ内の違反サンプル数をカウントします。シグナルが変化したかどうかではなく、何かがどれくらいの期間問題のある状態だったかを確認します。

注意点:広範なフリートに対して adaptive-anomaly-detector を実行し、「負荷が変化したサービスはどれか」という質問に答えようとすると、少しでも変動のあるサービスがすべてフラグされ、シグナルの少ない結果になりがちです。まず timeseries-novelty-detection を使用して、負荷の特性が実際に変化したエンティティを特定し、その後、異常検出ツールを使って該当するシグナルの重大度を測定します。

このスキルを使用する場面

  • キャパシティ:「今後 30 日以内に CPU 使用率が 90% に達するホストはどれですか?」
  • 予測:「今後 7 日間のサービスリクエスト数を予測してください」
  • 傾向:「Kubernetes ノード全体でメモリ使用量は増加していますか?」
  • 異常:「現在、異常なエラー率を示しているサービスはどれですか?」
  • ベースライン:「今日のトラフィックは先週と比べてどうですか?」
  • シグナルプロファイル:「アラートを設定する前に、このメトリクスが季節性なのか、傾向があるのかを確認できますか?」

重要な制約

Dynatrace Forecast Analyzer がサポートするのは単変量予測のみです。つまり、過去の値に基づいて1つのメトリクスを予測します。多変量予測(複数のメトリクスを入力として使用する予測)には、外部ツール(Python、R、Azure AutoML)が必要です。

ツール使用ルール:分析には、Dynatrace ツール timeseries-forecast、adaptive-anomaly-detector、seasonal-baseline-anomaly-detector、static-threshold-analyzer、timeseries-novelty-detection を使用してください。DQL クエリには execute-dql を使用してください。

結果分析ルール:必ず生のツール出力から直接結果を分析し、要約してください。すべての数値、傾向、結論はその場で導き出してください。


結果の表示形式

予測結果は必ず、次のような構造化された表で提示してください。

列内容
順位緊急度または規模の高い順に 🥇 🥈 🥉
シグナル/エンティティメトリクス名とエンティティまたはディメンション
最新の実績値履歴系列の最新の null ではない値
予測値予測期間の最後の時点における予測値
範囲同じ時点における信頼区間の下限 – 上限
傾向最新の実績値から予測値への変化率:🔴 >+20% / 🟠 +5–20% / 🟢 ±5% 安定 / 🔵 −5–20% 低下 / ⚫ <−20% 急激な低下
対応✅ 対応不要 / ⚠️ 監視 / 🔴 直ちに対応

表の後には必ず 主な所見 セクションを続け、優先度順に3~5項目を箇条書きで記載してください。


DQL の基本テクニック

DQL にはネイティブの forecast 関数はありません。将来予測には timeseries-forecast を使用してください(references/forecasting-analyzer.md を参照)。

DQL の主なルール
  1. timeseries は配列を返します。エンティティごとに各時間枠の値が1つずつ含まれます
  2. arrayLast(arr) = 最新の値、arrayFirst(arr) = 最古の値
  3. 増加量 = (arrayLast - arrayFirst) / number_of_intervals
  4. null の並べ替えに関する問題を避けるため、ソートの前に必ず filter isNotNull(field) を使用してください
  5. 型エラーを避けるため、Long フィールドを除算するときは toLong() を使用してください
  6. DQL の表示フィールドには、非推奨の dt.entity.* ではなく dt.smartscape.* を使用してください。エンティティレベルのクエリでグループ化句 by:{} を使用する場合も、dt.smartscape.* を使用してください

標準的なクエリパターン

移動平均の傾向
timeseries cpu = avg(dt.host.cpu.usage), from: now()-24h, interval: 1h, by: {dt.smartscape.host}
| fieldsAdd moving_avg = arrayMovingAvg(cpu, 4)
| fieldsAdd current = arrayLast(cpu)
| fieldsAdd trend = arrayLast(cpu) - arrayFirst(cpu)
| filter isNotNull(current)
| sort trend desc
| limit 20
| fields dt.smartscape.host, current, trend, moving_avg
飽和リスクの分類
timeseries cpu = avg(dt.host.cpu.usage), from: now()-7d, interval: 1h, by: {dt.smartscape.host}
| fieldsAdd p95 = arrayPercentile(cpu, 95)
| fieldsAdd saturation_risk = if(p95 > 85, "HIGH", else: if(p95 > 70, "MEDIUM", else: "LOW"))
| filter isNotNull(p95)
| sort p95 desc
| fields dt.smartscape.host, p95, saturation_risk
飽和までの日数の予測
timeseries cpu = avg(dt.host.cpu.usage), from: now()-30d, interval: 1d, by: {dt.smartscape.host}
| fieldsAdd current = arrayLast(cpu)
| fieldsAdd daily_growth = (arrayLast(cpu) - arrayFirst(cpu)) / 30
| filter isNotNull(current)
| fieldsAdd days_to_saturation = if(daily_growth > 0, toLong((90 - current) / daily_growth), else: 9999)
| sort days_to_saturation asc
| limit 20
| fields dt.smartscape.host, current, daily_growth, days_to_saturation
異常スコアリング
timeseries cpu = avg(dt.host.cpu.usage), from: now()-24h, interval: 1h, by: {dt.smartscape.host}
| fieldsAdd baseline_avg = arrayAvg(cpu)
| fieldsAdd current = arrayLast(cpu)
| fieldsAdd anomaly_score = if(isNotNull(current) and isNotNull(baseline_avg), abs(current - baseline_avg), else: 0)
| sort anomaly_score desc
| limit 20
| fields dt.smartscape.host, current, baseline_avg, anomaly_score
メトリクスの検出

予測を行う前に、キーワードで利用可能なメトリクスを検出してください。

metrics from: now() - 1h
| filter contains(metric.key, "cpu")
| summarize count(), by: {metric.key}
| sort `count()` desc

リファレンスガイド

  • references/forecasting-analyzer.md — timeseries-forecast ツール: データ要件、パラメーターのリファレンス、間隔の選択、予測期間の上限、よくある落とし穴
  • references/capacity-forecasting.md — CPU/メモリ/ディスク/K8s の飽和予測、複数リソースのリスクスコアリング、飽和までの日数を求める DQL パターン
  • references/anomaly-scoring.md — adaptive-anomaly-detector、seasonal-baseline-anomaly-detector、static-threshold-analyzer、DQL による偏差スコアリング
  • references/novelty-detection.md — timeseries-novelty-detection ツール:スパイク、低下、段差変化、傾向の発生、変動性の変化の検出、すべての新規性タイプ、パラメーターのリファレンス、詳細な例
  • references/trend-detection.md — 傾向の発生と変化点の検出に使用する timeseries-novelty-detection、週次比較の結合、成長率と加速度の検出

関連スキル

  • dt-dql-essentials — DQL 構文、timeseries コマンドのルール、配列関数のリファレンス
  • dt-obs-hosts — ホストとプロセスのメトリクスカタログ
  • dt-obs-services — サービスレベルの傾向分析に使用するサービス RED メトリクス
  • dt-obs-problems — 異常の相関分析に使用する Davis AI の問題履歴

コメント