Homeโ€บ๐ŸŽฏ Phase 0: Understand the Shiftโ€บModule 33 min read ยท 4/25

Smartscape & Entity Model

Tutorial

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