dynatrace/dynatrace-for-ai

dt-app-notebooks

Work with Dynatrace notebooks - create, modify, query, and analyze notebook JSON including sections, DQL queries, and visualizations.

Vedi sorgente
Documento Skill originale

Contenuto dal repository con titoli, esempi, codice, tabelle, link e immagini preservati.

Dynatrace Notebook Skill

Overview

Dynatrace notebooks are JSON documents stored in the Document Store containing an ordered array of sections — markdown blocks for narrative and dql blocks for DQL queries with visualizations. Sections render top-to-bottom in array order.

When to use: Creating, modifying, querying, or analyzing notebooks.

Notebook JSON Structure

json
{
  "name": "My Notebook",
  "type": "notebook",
  "content": {
    "version": "7",
    "defaultTimeframe": { "from": "now()-2h", "to": "now()" },
    "sections": [
      { "id": "1", "type": "markdown", "markdown": "# Title" },
      {
        "id": "2", "type": "dql", "title": "Query Section", "showInput": true,
        "state": {
          "input": { "value": "fetch logs | summarize count()" },
          "visualization": "table",
          "visualizationSettings": { "autoSelectVisualization": true, "chartSettings": {} },
          "querySettings": {
            "maxResultRecords": 1000, "defaultScanLimitGbytes": 500,
            "maxResultMegaBytes": 1, "defaultSamplingRatio": 10, "enableSampling": false
          }
        }
      }
    ]
  }
}
  • Sections render in array order.
  • Section types: markdown, dql. (function exists but is rare.)
  • Use string-int IDs ("1", "2", …); UUIDs are also accepted.
  • content.defaultTimeframe sets the default timeframe; each section can override via section.state.input.timeframe. Hardcoded time filters in DQL are allowed.

Optional content properties: defaultSegments.

Reading & Analyzing

Fetch full content with dtctl get notebook <id> -o json --plain (describe returns metadata only), then inspect the JSON to discover its available properties. Carefully read references/analyzing.md before analyzing.

Create/Update Workflow (Mandatory Order)

Carefully follow the workflow described in references/create-update.md.

Key rules:

  • Load domain skills BEFORE generating queries — do not invent DQL.
  • Validate ALL section queries before adding to the notebook.
  • Set name before deploying.
  • Prefer `autoSelectVisualization: true` in visualizationSettings unless the user requested a specific visualization type — when false, state.visualization must be set explicitly.
  • Updating — ALWAYS download first: dtctl get notebook <id> -o json --plain > notebook.json, modify, then deploy the downloaded file. Never reconstruct JSON from scratch or inject an id manually — both silently overwrite UI edits the user made since last deployment.
  • Deploy with `dtctl apply` — validation runs automatically, and the local file is deleted on success.

Visualization Types

Notebooks support a subset of Dynatrace visualizations:

  • Time-series (require timeseries/makeTimeseries): lineChart, areaChart, barChart, bandChart
  • Categorical (summarize ... by:{field}): categoricalBarChart, pieChart, donutChart
  • Single value / gauge / meter: singleValue, meterBar, gauge
  • Tabular (any data shape): table, raw, recordView
  • Distribution/status: histogram, honeycomb
  • Geographic maps: choropleth, dotMap, connectionMap, bubbleMap
  • Matrix/correlation: heatmap, scatterplot

Required field types per visualization: references/sections.md.

References

FileWhen to Load
create-update.mdCreating/updating notebooks
sections.mdSection types, visualization field requirements, settings
analyzing.mdReading notebooks, extracting queries, purpose identification
dallo stesso repository

Altri Skills

Tutti gli Skills
dynatrace
Community

dt-alerting

End-to-end Dynatrace alerting lifecycle — anomaly detector setup and model selection (static threshold, adaptive baseline, seasonal baseline), alert event storage in Grail, problem grouping and denoising by root cause analysis, and workflow-based notification routing (email, Slack, ServiceNow, webhook). Use when configuring alerting, choosing between detector types, querying alert event history, understanding why alerts merged into a problem, or setting up problem-triggered notifications.

installazioni
2
GitHub Stars
135
Aggiornato
31 ago
dynatrace
Community

dt-app-dashboards

Work with Dynatrace dashboards - create, modify, query, and analyze dashboard JSON including tiles, layouts, DQL queries, variables, and visualizations.

installazioni
2
GitHub Stars
135
Aggiornato
31 ago
dynatrace
Community

dt-dql-essentials

Core DQL syntax, pitfalls, query patterns, and query optimization. Load to write, build, fix, or OPTIMIZE a DQL query — prevents syntax errors and makes queries faster, more efficient, and cheaper (less data scanned = lower query consumption/cost per run). Covers fetch commands, data models, field namespaces, time alignment, entity/smartscape patterns, metric discovery, and performance/cost optimization (filter early, bucket filters, short time ranges, field selection, sampling, cardinality). Trigger: \"write/build/fix a DQL query\", \"DQL syntax\", \"query logs/spans/metrics\", \"create a timeseries\", \"optimize my DQL\", \"make my query faster/cheaper\", \"reduce DQL cost/consumption/scanned data\", \"keep DQL cost under control\". Do NOT use to explain an existing query or answer product questions. For MONITORING a tenant's ACTUAL query consumption/billing (how much queries cost, who scanned most, cost trends) use dt-platform-costs — this tunes the query text, not billing data.

installazioni
2
GitHub Stars
135
Aggiornato
31 ago
dynatrace
Community

dt-js-runtime

Dynatrace server-side JS runtime — function contract, runtime limits, Web APIs, Node.js modules, fetch with credential vault, and the @dynatrace-sdk/ catalog.

installazioni
2
GitHub Stars
135
Aggiornato
31 ago