Smartscape & Entity Model
Smartscape โ Entity Model After Migration
Dynatrace still auto-discovers infrastructure, services, and relationships after migration, but Smartscape on Grail uses a new node-and-edge model. Use Smartscape DQL commands for new topology queries; verify existing Classic queries against your environment's migration stage.
Entity Type Mapping
Use this mapping to start migrating Classic entity queries. Available node types and fields depend on the entities monitored in your environment:
Classic Query Smartscape Command
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
fetch dt.entity.host smartscapeNodes HOST
fetch dt.entity.service smartscapeNodes SERVICE
fetch dt.entity.process_group_instance smartscapeNodes PROCESS
fetch dt.entity.application smartscapeNodes FRONTEND
fetch dt.entity.kubernetes_cluster smartscapeNodes K8S_CLUSTER
fetch dt.entity.kubernetes_node smartscapeNodes K8S_NODE
๐ก smartscapeNodes returns node properties, and traverse follows their relationships. Discover the node's id and fields instead of assuming Classic IDs and properties translate unchanged.
โ ๏ธ Classic query availability depends on the environment and migration stage. Dynatrace's migration guidance describes transitional Classic support, not indefinite compatibility. Verify existing Classic queries in your own environment before relying on them.
Navigating Relationships
Classic entity selectors use relationship filters. In Smartscape, use traverse. A service's runs_on edge points toward its host, so discovering services from a host uses direction:backward; see the scoped example below.
๐ Try it: Open a Notebook and run:
smartscapeNodes HOST, from:now()-15m | fields id, name | sort name asc | limit 20
Copy a returned Smartscape id into the services-on-a-host example below. A host with no matching service relationships can legitimately return no services.
Function Migration
Gen2 Function Gen3 Replacement
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
entityName(id) name field, or getNodeName(id)
entityAttr(id, "field") direct node field, or getNodeField(id, "field")
classicEntitySelector(...) node filters + traverse
Common Entity Queries
Classic host properties (requires a Classic entity store)
fetch dt.entity.host
| fields entity.name, osType, cpuCores, tags
| sort entity.name asc
List services on a host
Replace HOST-<16_HEX_DIGITS> with a discovered Smartscape host ID. This placeholder is not executable as written; converting a string with toSmartscapeId does not map a historical Classic ID to a new node.
smartscapeNodes HOST, from:now()-15m
| filter id == toSmartscapeId("HOST-<16_HEX_DIGITS>")
| traverse runs_on, SERVICE, direction:backward
| fields id, name
| dedup id
| sort name asc
| limit 20
๐ก Classic discovery tip: Where the Classic entity store is available, describe dt.entity.service lists its known service fields. For Smartscape, inspect returned node fields and consult the Semantic Dictionary.
Smartscape Views & In-Context Views
Gen3 Smartscape is now an interactive map powered by Grail:
- Smartscape views โ ready-made perspectives for different topology questions
- In-context views โ View topology and Visual Resolution Path, opened through supported app actions without leaving the current context
- Cloud topology โ AWS and Azure overview views provide cloud-specific perspectives; the Smartscape on Grail view also includes supported GCP resources
- Kubernetes โ full-stack visibility of clusters, namespaces, workloads
๐ Try it: Ctrl+K โ "Smartscape" โ Explore the topology โ Click any entity โ See relationships, metrics, and problems in context.
Interpreting the graph
The graph is not necessarily a complete inventory. Views can aggregate or enrich underlying topology, so displayed nodes and edges do not always map one-to-one to Grail records.
- The selected timeframe includes nodes whose lifetime overlaps it.
- Filtering a parent with a segment can hide its children in nested views.
- The documented display limit is 4,000 nodes and 10,000 edges. This is a visualization limit, not a Grail storage or DQL result limit.
See the Smartscape concepts and views documentation for current behaviour and available perspectives.
Smartscape App Prerequisites
The following are documented Smartscape app permissions, not the minimum permissions for every individual DQL query.
Permission Purpose
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
storage:smartscape:read Read Smartscape topology data
storage:entities:read Read segment-variable data
storage:metrics:read Display entity metrics
storage:events:read Query problems on entities
storage:filter-segments:read Apply segment filters
storage:buckets:read Required for reading problems
storage:spans:read Read segment-variable data
storage:logs:read Read segment-variable data
storage:security.events:read Read segment-variable data
storage:bizevents:read Read segment-variable data