Welcome to the Arena
You're about to build custom applications that run inside Dynatrace. Full React apps with their own UI, backend logic, and access to every byte of platform data.
And to prove the platform can handle anything โ we start by running DOOM inside it.
Apps vs Extensions
Extensions โ collect data (SNMP, APIs โ metrics into Dynatrace)
Apps โ consume data (React UI โ query Grail โ display results)
The Architecture
Your App (React+TS in iframe)
โโโ queries Grail via DQL (metrics, logs, entities)
โโโ uses Strato Design System (DT's component library)
โโโ calls App Functions (serverless, 256MB/120s)
๐ก If you can build it in React, you can run it in Dynatrace.
๐ง Quick Check
What command creates a new Dynatrace App project?
DQL โ The Query Language
One hook, one query, live data:
import { useDql } from "@dynatrace-sdk/react-hooks";
const { data, error, isLoading } = useDql({
query: `timeseries avg(dt.host.cpu.usage), by:{dt.entity.host}, from:-2h`
});
What You'll Build
- Foundations โ Setup, first app, DOOM running inside DT
- Data & UI โ DQL, Strato components, charts, dashboard
- Advanced โ App functions, intents, workflows, deployment
- Boss Level โ Complete app from scratch + case studies
Prerequisites
- TypeScript basics (interfaces, async/await)
- React basics (components, hooks, JSX)
- Node.js 22+ (
node --version) - A Dynatrace environment (SaaS or sprint)
๐ง Quick CheckQuestion 2
Which runtime does a Dynatrace App use?
What's Next
Module 1 โ Set up the dev environment and scaffold your first project.