Dt Obs Predictive Analytics

作者 Dynatrace9529e72715d9Apache-2.0161 個星標收錄於 2026年10月8日更新於 2026年10月8日儲存庫7 天前更新

Predictive analytics for Dynatrace — time series forecasting with the timeseries-forecast tool, capacity saturation planning, trend and anomaly detection across hosts, services, and infrastructure.

僅含說明Data & Analytics
AI 產生的概覽

指導 Dynatrace 預測分析:使用 DQL 與分析器工具進行預測、容量飽和、趨勢與異常偵測。

功能
提供在 Dynatrace 可觀測性資料上執行預測分析的說明,涵蓋預測、變化偵測、違規偵測與時間序列特徵描述。它說明針對不同問題應使用哪個分析器工具,給出移動平均、飽和風險、達到飽和所需天數與異常評分的 DQL 查詢模式,並定義包含關鍵發現部分的结构化預測結果表。它還指向預測、容量、異常評分、新穎性偵測與趨勢偵測的參考指南。
適用情境
適用於容量規劃問題,例如哪些主機將達到 90% CPU,也適用於預測服務請求量,以及針對主機、服務與基礎架構的趨勢、異常或基線問題。它還用於在設定告警前判斷某個指標是發生了變化還是目前超出範圍。
執行需求
需要 Dynatrace 存取權限,並可使用分析器工具 timeseries-forecast、adaptive-anomaly-detector、seasonal-baseline-anomaly-detector、static-threshold-analyzer 與 timeseries-novelty-detection,以及用於 DQL 查詢的 execute-dql。它不附帶指令碼,僅為說明文件與參考文件。

Predictive Analytics Skill

Forecast resource saturation, detect trends, analyze anomalies, and characterize signal behavior using DQL and Dynatrace analyzer tools.

Analysis Disciplines

#DisciplineUse when …
1Forecast and PredictionPredicting future metric values for capacity planning, cost estimation, or proactive alerting
2Detecting ChangesA metric shifted — find when the character of the signal changed, regardless of whether it crossed a limit
3Detecting ViolationsA metric is currently out of bounds — find entities that exceed or fall below an acceptable range
4Timeseries CharacteristicsCharacterizing a signal's seasonality, noise level, and trend before further analysis

Choosing the Right Detection Tool

The single most important decision: are you asking "did this metric change?" or "is this metric currently wrong?"

QuestionToolWhy
"Did this metric change in the last N hours?"timeseries-novelty-detectionDetects when the signal's character changed (spike, step, trend onset, variability shift) without requiring a known acceptable limit
"Which services spiked or dropped recently?"timeseries-novelty-detection with SPIKE / CHANGE_IN_VALUESFinds the specific entities and timestamps where change occurred; returns empty for stable signals
"When did CPU start trending up?"timeseries-novelty-detection with TREND_IN_VALUESPinpoints the onset of a directional shift
"Which hosts are currently above 90% CPU?"static-threshold-analyzerKnown fixed limit — fire alerts when exceeded
"Which services are currently above their usual load?"adaptive-anomaly-detectorLearns the normal distribution from the data and flags sustained threshold violations
"Which services are high right now vs. their weekly pattern?"seasonal-baseline-anomaly-detectorAccounts for time-of-day/day-of-week patterns before deciding what is anomalous

Decision rule in plain language

  • Use timeseries-novelty-detection when the question contains "changed", "shifted", "spiked", "dropped", "started", "when did", or "did anything unusual happen". The tool answers whether a change occurred and when. It requires no predefined threshold.
  • Use an anomaly detector (adaptive, seasonal, or static) when the question is about ongoing or current state relative to an expected range: "which are highest", "who is violating", "what is above X". These tools count violation samples inside a sliding window — they confirm how long something has been bad, not whether the signal changed.

Pitfall: Running adaptive-anomaly-detector on a broad fleet to answer "which service changed load?" typically flags every service that has any variation, producing low-signal results. Use timeseries-novelty-detection first to identify entities where the load character genuinely shifted, then use the anomaly detectors to measure the severity of those specific signals.

When to Use This Skill

  • Capacity: "Which hosts will hit 90% CPU in the next 30 days?"
  • Forecast: "Forecast service request volume for the next 7 days"
  • Trend: "Is memory usage growing across our Kubernetes nodes?"
  • Anomaly: "Which services have unusual error rates right now?"
  • Baseline: "How does today's traffic compare to last week?"
  • Signal profile: "Is this metric seasonal or trending before I set up alerting?"

Important Constraints

Dynatrace Forecast Analyzer supports univariate forecasting only — predicting one metric based on its own historical values. Multivariate forecasting (using multiple metrics as inputs) requires external tools (Python, R, Azure AutoML).

Tooling Rule: Run analyses using Dynatrace tools: timeseries-forecast, adaptive-anomaly-detector, seasonal-baseline-anomaly-detector, static-threshold-analyzer, and timeseries-novelty-detection. Use execute-dql for DQL queries.

Result Analysis Rule: Always analyse and summarise results directly from the raw tool output. Derive all numbers, trends, and conclusions inline.


Result Presentation Format

Always present forecast results as a structured table:

ColumnContent
Rank🥇 🥈 🥉 ordered by urgency or magnitude
Signal / EntityMetric name and entity or dimension
Last ActualMost recent non-null value from the historical series
ForecastPoint forecast at the end of the horizon
RangeLower – Upper confidence band at the same horizon point
Trend% change from Last Actual to Forecast: 🔴 >+20% / 🟠 +5–20% / 🟢 ±5% stable / 🔵 −5–20% declining / ⚫ <−20% sharp drop
Action✅ No action / ⚠️ Monitor / 🔴 Act now

Always follow the table with a Key Findings section (3–5 bullet points, ranked by priority).


Core DQL Techniques

DQL has no native forecast function. For forward-looking forecasts, use timeseries-forecast (see references/forecasting-analyzer.md).

Key DQL Rules

  1. timeseries returns arrays — one value per time slot per entity
  2. arrayLast(arr) = most recent value; arrayFirst(arr) = oldest
  3. Growth = (arrayLast - arrayFirst) / number_of_intervals
  4. Always filter isNotNull(field) before sorting to avoid null ordering issues
  5. Use toLong() when dividing Long fields to avoid type errors
  6. Use dt.smartscape.* not deprecated dt.entity.* in DQL display fields; use dt.smartscape.* in by:{} grouping clauses for entity-level queries

Standard Query Patterns

Moving Average Trend

dql
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

Saturation Risk Classification

dql
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

Days to Saturation Forecast

dql
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

Anomaly Scoring

dql
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

Metric Discovery

Before forecasting, discover available metrics by keyword:

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

Reference Guides

  • references/forecasting-analyzer.md — timeseries-forecast tool: data requirements, parameter reference, interval selection, horizon limits, common pitfalls
  • references/capacity-forecasting.md — CPU/memory/disk/K8s saturation forecasts; multi-resource risk scoring; days-to-saturation DQL patterns
  • references/anomaly-scoring.md — adaptive-anomaly-detector, seasonal-baseline-anomaly-detector, static-threshold-analyzer; DQL deviation scoring
  • references/novelty-detection.md — timeseries-novelty-detection tool: spike, drop, step change, trend onset, and variability change detection; all novelty types; parameter reference; worked examples
  • references/trend-detection.md — timeseries-novelty-detection for trend onset and change points; week-over-week joins; growth rate and acceleration detection

Related Skills

  • dt-dql-essentials — DQL syntax, timeseries command rules, array function reference
  • dt-obs-hosts — Host and process metrics catalog
  • dt-obs-services — Service RED metrics for service-level trend analysis
  • dt-obs-problems — Davis AI problem history for anomaly correlation

來源與署名

來源:Dynatrace/dynatrace-for-ai位於skills/dt-obs-predictive-analytics提交9529e72

授權條款: Apache-2.0

內容歸原作者所有。SourceWeft 從公開儲存庫中收錄這些內容。

檢舉或申請下架