Work with Dynatrace notebooks - create, modify, query, and analyze notebook JSON including sections, DQL queries, visualizations, markdown documentation, and analytics workflows. Supports notebook creation from scratch, section-based updates, data extraction from Document Store, structure analysis, investigation workflows, and collaborative documentation.
71
58%
Does it follow best practices?
Impact
89%
1.28xAverage score across 3 eval scenarios
Passed
No known issues
Optimize this skill with Tessl
npx tessl skill review --optimize ./skills/dt-app-notebooks/SKILL.mdDynatrace notebooks are JSON documents stored in the Document Store for interactive data analysis, investigation, and documentation. Each notebook contains:
When to use this skill:
Four main workflows:
Notebooks in the Dynatrace Document Store include both metadata and content:
{
"id": "notebook-abc123",
"name": "Production Investigation",
"type": "notebook",
"owner": "user-uuid",
"isPrivate": false,
"version": 42,
"modificationInfo": {...},
"content": {
"version": "7",
"defaultTimeframe": {
"from": "now()-2h",
"to": "now()"
},
"sections": [...]
}
}Metadata (top-level):
.id - Document ID (UUID or semantic like "dynatrace.notebooks.getting-started").name - Notebook display name.type - Always "notebook".owner - Owner UUID.isPrivate - Visibility (true = private, false = shared).version - Document version (incremental, auto-managed).modificationInfo - Creation/modification timestampsNotebook content (.content):
.content.version - Content schema version (currently "7").content.defaultTimeframe - Default time range for all DQL sections.content.defaultSegments - Default filter segments (usually empty).content.sections - Array of markdown and DQL query sectionsAll jq examples in this skill use the .content.* paths.
This skill uses progressive disclosure - load only what you need:
Loading strategy:
💡 Tip: Reference files are linked throughout this document with
→arrows pointing to when you should load them.
For detailed workflows and mandatory requirements:
references/create-update.md for complete workflow, test-first approach, DQL query validation, and modification patternsreferences/analyzing.md for structure analysis, JSON extraction, and query execution⚠️ MANDATORY for creation/modification:
Required properties:
{
"version": "7", // Content schema version (current: "7")
"sections": [] // Array of markdown and DQL sections
}Optional properties:
defaultTimeframe - Default time range for all DQL sectionsdefaultSegments - Default filter segments (usually empty)Structure concept: Sections are ordered array (display order = array order). Each section has unique UUID. Section types: markdown (documentation) and dql (queries with visualizations).
📝 For detailed section specifications, visualization settings, and configuration options, load
references/sections.md
Markdown sections: {"type": "markdown", "markdown": "# Content"}
DQL sections: {"type": "dql", "state": {"input": {"value": "query"}, "visualization": "table"}}
Visualizations: table, lineChart, barChart, pieChart, singleValue, areaChart
→ See references/sections.md for complete specifications
⚠️ MANDATORY for create/update workflows: Always validate notebook JSON before save/upload.
→ Load references/create-update.md for validation commands, query validation, error interpretation, and test workflow.
Schema location: notebook-schema.json (Notebook content schema v7)
| Reference File | When to Use |
|---|---|
| create-update.md | Creating and updating notebooks - workflows, test-first approach, DQL query validation, patterns |
| analyzing.md | Extract information from notebooks, understand structure and content, query execution |
| sections.md | Section types, visualization settings, configuration reference |
Notebook types:
Key rules:
now()-2h) · Omit result objects when creating sections · Order sections logically · Add markdown between query sections for contextTimeframe strategies:
now()-2h, now()-7d for dynamic ranges4991356
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.