Automates the deployment and modification of Dynatrace notebook configurations.

Install

mkdir -p .claude/skills/dt-app-notebooks && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/16826" && unzip -o skill.zip -d .claude/skills/dt-app-notebooks && rm skill.zip

Installs to .claude/skills/dt-app-notebooks

Activation

This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.

Work with Dynatrace notebooks - create, modify, query, and analyze notebook JSON. Derives from the dt-app-dashboards skill with notebook-specific differences documented here.
174 charsno explicit “when” trigger
Intermediate

Key capabilities

  • Create Dynatrace notebooks by following dashboard workflows
  • Validate DQL queries using `dtctl query` before adding to notebooks
  • Deploy notebooks using the `deploy_notebook.sh` script
  • Modify existing notebooks by downloading, editing, and redeploying
  • Set `autoSelectVisualization` to true for automatic visualization selection
  • Analyze notebook JSON structure and map fields to dashboard equivalents

How it works

The skill creates, modifies, and analyzes Dynatrace notebooks by adapting workflows from the `dt-app-dashboards` skill, validating DQL queries, and deploying via a specific script.

Inputs & outputs

You give it
Notebook JSON or DQL query
You get back
Validated DQL query, deployed notebook, or modified notebook JSON

When to use dt-app-notebooks

  • Creating observability notebooks
  • Querying Dynatrace data
  • Deploying custom reporting layouts

About this skill

Dynatrace Notebook Skill

How to Use This Skill

Notebooks and dashboards are structurally similar. Follow the dt-app-dashboards skill for all workflows (creating, modifying, querying, analyzing), applying the differences documented below.

Mandatory Create/Update Workflow

  1. Load domain skills BEFORE generating queries — do not invent DQL
  2. Validate ALL queries via dtctl query '<DQL>' --plain before adding to the notebook
  3. Always set "autoSelectVisualization": true in visualizationSettings unless the user explicitly requests a specific visualization type
  4. ALWAYS deploy via deploy_notebook.sh — never use dtctl apply directly:
    bash scripts/deploy_notebook.sh notebook.json
    
    The script validates the notebook first and blocks deployment on errors. Skipping it risks deploying broken notebooks. On successful deployment, the local file is deleted.
  5. When updating an existing notebook: download first with dtctl get notebook <id> -o json --plain > notebook.json, modify, then deploy. Never reconstruct from scratch or inject an id manually.

Notebook JSON Structure

{
  "name": "My Notebook",
  "type": "notebook",
  "content": {
    "version": "7",
    "defaultTimeframe": { "from": "now()-2h", "to": "now()" },
    "sections": [
      { "id": "uuid-1", "type": "markdown", "markdown": "# Title\nContext" },
      {
        "id": "uuid-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
          }
        }
      }
    ]
  }
}

Key Differences from Dashboards

Document Structure

AspectDashboardNotebook
type"dashboard""notebook"
content.version21 (number)"7" (string)
Content blockstiles (object map) + layouts (object map)sections (ordered array)
Variablescontent.variables[] with query, csv, text typesNone
Layout/grid24-unit grid via layouts with x, y, w, hNone — sections render top-to-bottom in array order
Default timeframeControlled by UI time pickercontent.defaultTimeframe object with from/to

Section Types vs Tile Types

Dashboards have two tile types (markdown, data). Notebooks have three section types:

  • markdown — Same concept. Fields: id, type, markdown
  • dql — Equivalent to dashboard data tiles, but query and visualization are nested inside state (see table below)

Query & Visualization Path Mapping

FieldDashboard tileNotebook DQL section
Query stringtile.querysection.state.input.value
Visualization typetile.visualizationsection.state.visualization
Visualization settingstile.visualizationSettingssection.state.visualizationSettings
Query settingstile.querySettingssection.state.querySettings
Section-specific timeframeN/A (UI picker controls all tiles)section.state.input.timeframe

Notebook-Only Section Properties

  • autoSelectVisualization (boolean, in visualizationSettings) — when true, Dynatrace automatically selects the best visualization type for the query result. Prefer true when the user has no specific visualization preference. When set to false, you must explicitly set state.visualization to the desired type.
  • showTitle (boolean) — show/hide section title
  • showInput (boolean, default true) — show/hide query editor. Always set to true unless explicitly requested otherwise.
  • height (number, px) — section height (default ~400)
  • drilldownPath — navigation path for drilldown interactions
  • filterSegments — section-level filter segments
  • davis — Davis AI copilot configuration

Available Visualizations

Notebooks support: table, lineChart, areaChart, barChart, categoricalBarChart, pieChart, donutChart, singleValue, bandChart, histogram, honeycomb, raw, recordView

What Does NOT Apply from the Dashboard Skill

  • Variables — Notebooks have no variables. Ignore all variable sections: types, substitution patterns ($Var, array($Var)), dependency resolution, variable validation.
  • Layouts/grid — No positioning system. Section order in the array = display order. No x, y, w, h.
  • Tile ID / Layout ID matching — Not applicable (no layouts object).
  • UI timeframe picker warnings — Notebooks don't have a dashboard-style time picker that controls all queries. Instead, content.defaultTimeframe sets the default, and each section can override via section.state.input.timeframe. Hardcoded time filters in queries are acceptable in notebooks.
  • Variable substitution in queries — Not applicable.

Validation & Deployment

Use the scripts in scripts/:

  • notebook-validator.js — Validates notebook structure and executes all DQL queries. Run via:

    cat notebook.json | jq '{notebook: .}' | dtctl exec function -f scripts/notebook-validator.js --data - --plain | jq -r .result
    

    Or by notebook ID: echo '{"notebookId":"<id>"}' | dtctl exec function -f scripts/notebook-validator.js --data - --plain | jq -r .result

  • deploy_notebook.sh — Validates then deploys:

    bash scripts/deploy_notebook.sh notebook.json
    bash scripts/deploy_notebook.sh --dry-run notebook.json
    

Related Skills

  • dt-app-dashboards — Base skill for all workflows; this skill documents only the differences
  • dt-dql-essentials — DQL query syntax, functions, and optimization

When not to use it

  • When working with Dynatrace dashboards that are not notebooks
  • When deploying notebooks directly with `dtctl apply`
  • When attempting to use variables within notebooks

Limitations

  • Notebooks do not support variables
  • Notebooks do not have a layout/grid system like dashboards
  • Notebooks do not have a dashboard-style UI timeframe picker

How it compares

This skill provides specific instructions and tools for Dynatrace notebooks, addressing their structural and functional differences from dashboards, unlike a generic dashboard management approach.

Compared to similar skills

dt-app-notebooks side by side with the closest alternatives in the catalog.

SkillInstallsUpdatedSafetyDifficulty
dt-app-notebooks (this skill)01moReviewIntermediate
agent-session-monitor26moReviewIntermediate
ideogram-observability11moReviewIntermediate
coralogix-analysis16moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

You might also like

agent-session-monitor

alibaba

Real-time agent conversation monitoring - monitors Higress access logs, aggregates conversations by session, tracks token usage. Supports web interface for viewing complete conversation history and costs. Use when users ask about current session token consumption, conversation history, or cost statistics.

26

ideogram-observability

jeremylongshore

Set up comprehensive observability for Ideogram integrations with metrics, traces, and alerts. Use when implementing monitoring for Ideogram operations, setting up dashboards, or configuring alerting for Ideogram integration health. Trigger with phrases like "ideogram monitoring", "ideogram metrics", "ideogram observability", "monitor ideogram", "ideogram alerts", "ideogram tracing".

11

coralogix-analysis

incidentfox

Coralogix log analysis with DataPrime query language. Use when querying Coralogix logs, metrics, or traces. Provides syntax reference and intelligent investigation scripts.

10

clay-observability

jeremylongshore

Set up comprehensive observability for Clay integrations with metrics, traces, and alerts. Use when implementing monitoring for Clay operations, setting up dashboards, or configuring alerting for Clay integration health. Trigger with phrases like "clay monitoring", "clay metrics", "clay observability", "monitor clay", "clay alerts", "clay tracing".

11

model-usage

openclaw

Use CodexBar CLI local cost usage to summarize per-model usage for Codex or Claude, including the current (most recent) model or a full model breakdown. Trigger when asked for model-level usage/cost data from codexbar, or when you need a scriptable per-model summary from codexbar cost JSON.

548

analytics-tracking

davila7

When the user wants to set up, improve, or audit analytics tracking and measurement. Also use when the user mentions "set up tracking," "GA4," "Google Analytics," "conversion tracking," "event tracking," "UTM parameters," "tag manager," "GTM," "analytics implementation," or "tracking plan." For A/B test measurement, see ab-test-setup.

736

Search skills

Search the agent skills registry