Azure topology

  • Latest Dynatrace
  • Explanation
  • Published Oct 31, 2025
  • Preview

Overview

Dynatrace Azure Cloud Platform Monitoring periodically scans your Azure topology and stores it in Smartscape on Grail. Each Azure resource within your Azure environment is represented as an entity in Dynatrace (in the form of a Smartscape node) containing the resource configuration, its tags, and its relationships to other resources (in the form of Smartscape edges).

When telemetry for resources in your Azure subscription is ingested in Dynatrace (Azure Monitor native platform metrics), it's linked to the Smartscape node representing the resource producing it, setting telemetry in context.

This provides you a complete view of your resources with their configuration and telemetry in Clouds Clouds as well as the ability to perform advanced queries on your topology across all monitored Azure subscriptions via Dynatrace Query Language (DQL). Topology also powers Azure tag enrichment for your ingested telemetry.

Use cases

Azure topology on Smartscape on Grail enables multiple powerful use cases, like:

  • Access the inventory of your resources across all your monitored Azure subscriptions, including its configuration, together with their telemetry in Clouds Clouds.

  • Use DQL to query telemetry using topology context. For example, show PercentageCPU for all VM resources registered with a specific Azure Load Balancer or show DataDiskReadOperations_Sec and DataDiskWriteOperations_Sec for all the Azure Managed Disks attached to a given VM instance.

    This helps with simplified observability with topology context as the context data (like load balancer or attached VM resources) is not available as Azure Monitor native platform metric dimensions.

  • Use DQL to query the configuration state of your resources across monitored Azure Subscriptions such as:

    • List all Virtual Machines that do not have VM disk encryption enabled.
    • Pull up a report of VM resources per resource type
    • List internet-facing load balancers

Key concepts

Entities (Smartscape nodes)

Dynatrace scans your Azure Subscriptions' topology by querying Azure Resource Graph to retrieve resource configuration and tag information.

Resources are then persisted as entities in Smartscape on Grail.

In addition to the Smartscape on Grail common attributes, all Azure entities have the following attributes:

  • azure.subscription
  • azure.location
  • azure.resource.id
  • azure.resource.group
  • azure.resource.name
  • azure.resource.type
  • tags

Smartscape node types for Azure follow the resource type notation, making all letters uppercase and substituting . & / with _. For example, a Azure resource type microsoft.compute/virtualmachines would be persisted in Smartscape as node type AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES.

Smartscape nodes can be fetched via DQL in Notebooks Notebooks with the smartscapeNodes command as in this example:

smartscapeNodes "AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES"

Entities are produced from information from Azure Resource Graph and Azure Resource Manager APIs and contain the resource configuration in the azure.object attribute. The azure.object attribute is a JSON structure with the following format:

{
"configuration": "<output_of_arg_or_arm_api>"
}

Relationships (Smartscape edges)

While scanning Azure topology, Dynatrace also discovers relationships between resources and persists them in Smartscape on Grail as static edges.

For details, see Smartscape on Grail.

Topology data freshness

Dynatrace performs a full scan of your topology data on your Azure Subscriptions every 12 hours. In addition, Dynatrace refreshes tag information and listens for resource changes (using Azure Respource Graph) every 15 minutes.

You can see the timestamp when a given Smartscape node was updated looking at the lifetime.end attribute.

When querying topology, make sure you select at least the last hour on the query timeframe to list all active resources.

Dynatrace scans the topology of the Azure Regions that have been selected for monitoring.

Access Azure topology data in Dynatrace

You can access topology data via Clouds Clouds to visualize entities and their telemetry or via Notebooks Notebooks to perform advanced DQL queries.

Query topology data via DQL

By using DQL in Notebooks Notebooks, you can perform advanced topology queries across all your monitored Azure Subscriptions. To help you get started, you can find some useful query examples below.

List the count of entities by type

The following query gives you an overview of your Azure entities discovered by Dynatrace, broken down by Azure Subscription ID and Region, sorted by number of entities.

smartscapeNodes "AZURE*"
| summarize count=count(), by:{azure.subscription, azure.location, type}
| sort count desc

Query all Virtual Machines with a specific tag

The following query fetches Smartscape nodes of type AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES that have the tag owner_team with value team-acme.

smartscapeNodes "AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES"
| filter tags[owner_team]=="team-acme"

Query all Virtual Machines including a subset of their configuration attributes

The following query fetches Smartscape nodes of type AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES, including the attributes managedDiskId, storageAccountType, and diskSizeGB.

smartscapeNodes "AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES"
| parse azure.object, "JSON:azurejson"
| fieldsAdd managedDiskId=azurejson[configuration][properties][storageProfile][osDisk][managedDisk][id],
storageAccountType=azurejson[configuration][properties][storageProfile][osDisk][managedDisk][storageAccountType],
diskSizeGB=azurejson[configuration][properties][storageProfile][osDisk][diskSizeGB]
| fieldsRemove azure.object, azurejson

Query the discovered relationship (edge) types by source resource type and target resource type

Fetches the count of relationship types by source resource type and target resource types discovered for your monitored Azure Subscriptions.

smartscapeEdges "*"
| summarize count=count(), by: {edgeType=type, sourceType=source_type, targetType=target_type}

What's next?

We recommend experimenting with our purpose-built Azure topology notebooks, which you can find linked in Clouds Clouds. These notebooks contain multiple example DQL queries and use cases.

Related tags
Infrastructure Observability