mcpField
D
dt-app-notebooks

dt-app-notebooks

github.com/dynatraceData & databases1692.7k installsUpdated today
Repository

About dt-app-notebooks

A skill for creating, updating, querying, and analyzing Dynatrace notebooks stored in the Document Store. It covers notebook structure, DQL sections, visualizations, and a validation-first update workflow.

Key features

  1. 01Explain notebook JSON structure
  2. 02Create and update notebook sections
  3. 03Validate DQL queries before deployment
  4. 04Configure notebook visualizations
  5. 05Read and analyze notebook content

Use cases

  1. 01Build a notebook with narrative and DQL sections
  2. 02Update a notebook while preserving current edits
  3. 03Inspect notebook queries and visualizations

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/dynatrace/dynatrace-for-ai --skill dt-app-notebooks

After installing, type/dt-app-notebooksin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

assets/
ExampleNotebook.json
visualization-settings.reference.jsonc
references/
analyzing.md
create-update.md
sections.md

Details

From the project README

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

{
  "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 (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 read the current state first: dtctl get notebook <id> -o json, save it as notebook.json, modify that file, then deploy it. 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. If it fails, fix all reported errors before re-applying.

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

Comments

Markdown supported