Loading...
Loading...
Azure cloud resources including VMs, VMSS, SQL Database, Storage, AKS, App Service, Functions, VNet networking, load balancers, Event Hubs, Container Apps, and Key Vault. Monitor Azure infrastructure, analyze resource usage, audit security posture, and manage organizational hierarchy across subscriptions and resource groups.
npx skill4agent add dynatrace/dynatrace-for-ai dt-obs-azure| Task | File to load |
|---|---|
| Inventory and topology queries | (no additional file — use core patterns below) |
| Query Azure metric timeseries (CPU, latency, throughput) | Load |
| VNet topology, subnets, NSGs, public IPs, VPN, peering | Load |
| Azure SQL, Cosmos DB, PostgreSQL, Redis investigation | Load |
| Functions, App Service, AKS infrastructure, Container Apps | Load |
| Azure LB, Application Gateway, Front Door, API Management | Load |
| WAF rule analysis, false-positive investigation | Load |
| Event Hubs, Service Bus, Event Grid | Load |
| Storage Accounts, Blob, File, Queue, Table | Load |
| Unattached resources, tag compliance, lifecycle | Load |
| Cost savings, unused resources, SKU analysis | Load |
| Capacity headroom, VMSS scaling, quotas | Load |
| Security audit, encryption, public access, Key Vault | Load |
| NSG rule analysis (0.0.0.0/0, open ports) | Load |
| Storage account encryption/public access audit | Load |
| Cost allocation, chargeback, ownership | Load |
| Determine orchestration context (AKS, VMSS, standalone) | Load |
AZURE_*smartscapeNodes/Microsoft.Compute/virtualMachinesAZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES/Microsoft.Sql/servers/databasesAZURE_MICROSOFT_SQL_SERVERS_DATABASESAZURE_MICROSOFT_COMPUTE_VIRTUALMACHINESAZURE_MICROSOFT_COMPUTE_VIRTUALMACHINESCALESETSAZURE_MICROSOFT_COMPUTE_VIRTUALMACHINESCALESETS_VIRTUALMACHINESAZURE_MICROSOFT_COMPUTE_DISKSAZURE_MICROSOFT_COMPUTE_SSHPUBLICKEYSAZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES_EXTENSIONSAZURE_MICROSOFT_NETWORK_VIRTUALNETWORKSAZURE_MICROSOFT_NETWORK_VIRTUALNETWORKS_SUBNETSAZURE_MICROSOFT_NETWORK_NETWORKSECURITYGROUPSAZURE_MICROSOFT_NETWORK_PUBLICIPADDRESSESAZURE_MICROSOFT_NETWORK_NETWORKINTERFACESAZURE_MICROSOFT_NETWORK_LOADBALANCERSAZURE_MICROSOFT_NETWORK_APPLICATIONGATEWAYSAZURE_MICROSOFT_NETWORK_VIRTUALNETWORKGATEWAYSAZURE_MICROSOFT_NETWORK_CONNECTIONSAZURE_MICROSOFT_NETWORK_EXPRESSROUTECIRCUITSAZURE_MICROSOFT_SQL_SERVERSAZURE_MICROSOFT_SQL_SERVERS_DATABASESAZURE_MICROSOFT_CACHE_REDISAZURE_MICROSOFT_CACHE_REDISENTERPRISEAZURE_MICROSOFT_DOCUMENTDB_DATABASEACCOUNTSAZURE_MICROSOFT_STORAGE_STORAGEACCOUNTSAZURE_MICROSOFT_STORAGE_STORAGEACCOUNTS_BLOBSERVICES_CONTAINERSAZURE_MICROSOFT_STORAGE_STORAGEACCOUNTS_FILESERVICES_SHARESAZURE_MICROSOFT_STORAGE_STORAGEACCOUNTS_QUEUESERVICES_QUEUESAZURE_MICROSOFT_STORAGE_STORAGEACCOUNTS_TABLESERVICES_TABLESAZURE_MICROSOFT_CONTAINERSERVICE_MANAGEDCLUSTERSAZURE_MICROSOFT_CONTAINERSERVICE_MANAGEDCLUSTERS_AGENTPOOLSAZURE_MICROSOFT_CONTAINERREGISTRY_REGISTRIESAZURE_MICROSOFT_APP_CONTAINERAPPSAZURE_MICROSOFT_APP_MANAGEDENVIRONMENTSAZURE_MICROSOFT_APP_JOBSAZURE_MICROSOFT_WEB_SITESAZURE_MICROSOFT_WEB_SERVERFARMSAZURE_MICROSOFT_WEB_SITES_FUNCTIONSAZURE_MICROSOFT_EVENTHUB_NAMESPACESAZURE_MICROSOFT_EVENTHUB_NAMESPACES_EVENTHUBSAZURE_MICROSOFT_SERVICEBUS_NAMESPACESAZURE_MICROSOFT_SERVICEBUS_NAMESPACES_QUEUESAZURE_MICROSOFT_SERVICEBUS_NAMESPACES_TOPICSAZURE_MICROSOFT_SERVICEBUS_NAMESPACES_TOPICS_SUBSCRIPTIONSAZURE_MICROSOFT_KEYVAULT_VAULTSAZURE_MICROSOFT_MANAGEDIDENTITY_USERASSIGNEDIDENTITIESAZURE_MICROSOFT_OPERATIONALINSIGHTS_WORKSPACESAZURE_MICROSOFT_INSIGHTS_COMPONENTSAZURE_MICROSOFT_APIMANAGEMENT_SERVICEfilter azure.subscription == "08b9810e-..."filter azure.resource.group == "my-rg"filter azure.location == "eastus"smartscapeNodes "AZURE_*"
| filter azure.subscription == "<SUBSCRIPTION_ID>"
and azure.resource.group == "<RESOURCE_GROUP>"
and azure.location == "<REGION>"
| summarize count = count(), by: {type}
| sort count descsmartscapeNodes "AZURE_*"
| summarize resource_count = count(), by: {azure.subscription, azure.resource.group}
| sort resource_count descazure.subscriptionazure.resource.groupazure.locationeastuspolandcentralazure.resourceTypemicrosoft.compute/virtualmachinesazure.provisioning_stateSucceededazure.objectcloud.providerazuretagstags[`key`]azure.resourceIdazure.resourceNameazure.availabilityZonestraversedt.traverse.relationship"*"traverse "*", "AZURE_MICROSOFT_COMPUTE_DISKS"traverse "*", "AZURE_MICROSOFT_NETWORK_NETWORKINTERFACES"traverse "*", "AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINESCALESETS"traverse "*", "AZURE_MICROSOFT_RESOURCES_LOCATIONS_AVAILABILITYZONES"traverse "*", "AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES_EXTENSIONS", direction:backwardtraverse "*", "AZURE_MICROSOFT_CONTAINERSERVICE_MANAGEDCLUSTERS"traverse "*", "AZURE_MICROSOFT_NETWORK_VIRTUALNETWORKS_SUBNETS"traverse "*", "AZURE_MICROSOFT_NETWORK_NETWORKSECURITYGROUPS"traverse "*", "AZURE_MICROSOFT_NETWORK_LOADBALANCERS_BACKENDADDRESSPOOLS"traverse "*", "AZURE_MICROSOFT_NETWORK_VIRTUALNETWORKS"traverse "*", "AZURE_MICROSOFT_NETWORK_NETWORKSECURITYGROUPS"traverse "*", "AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINESCALESETS", direction:backwardtraverse "*", "AZURE_MICROSOFT_NETWORK_NETWORKINTERFACES", direction:backwardtraverse "*", "AZURE_MICROSOFT_NETWORK_VIRTUALNETWORKS_SUBNETS", direction:backwardtraverse "*", "AZURE_MICROSOFT_NETWORK_LOADBALANCERS_BACKENDADDRESSPOOLS"traverse "*", "AZURE_MICROSOFT_NETWORK_LOADBALANCERS_FRONTENDIPCONFIGURATIONS"traverse "*", "AZURE_MICROSOFT_NETWORK_LOADBALANCERS_LOADBALANCINGRULES"traverse "*", "AZURE_MICROSOFT_SQL_SERVERS_DATABASES", direction:backwardtraverse "*", "AZURE_MICROSOFT_STORAGE_STORAGEACCOUNTS_BLOBSERVICES_CONTAINERS", direction:backwardtraverse "*", "AZURE_MICROSOFT_STORAGE_STORAGEACCOUNTS_FILESERVICES_SHARES", direction:backwardtraverse "*", "AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINESCALESETS", direction:backwardtraverse "*", "AZURE_MICROSOFT_CONTAINERSERVICE_MANAGEDCLUSTERS_AGENTPOOLS", direction:backwardtraverse "*", "AZURE_MICROSOFT_NETWORK_NETWORKSECURITYGROUPS", direction:backwardtraverse "*", "AZURE_MICROSOFT_NETWORK_PUBLICIPADDRESSES", direction:backwardtraverse "*", "AZURE_MICROSOFT_NETWORK_PUBLICIPADDRESSES"traverse "*", "AZURE_MICROSOFT_WEB_SERVERFARMS"traverse "*", "AZURE_MICROSOFT_WEB_SITES_FUNCTIONS", direction:backwardtraverse "*", "AZURE_MICROSOFT_APP_MANAGEDENVIRONMENTS"traverse "*", "AZURE_MICROSOFT_EVENTHUB_NAMESPACES_EVENTHUBS", direction:backwardtraverse "*", "AZURE_MICROSOFT_SERVICEBUS_NAMESPACES_QUEUES", direction:backwardtraverse "*", "AZURE_MICROSOFT_SERVICEBUS_NAMESPACES_TOPICS", direction:backwardtraverse "*", "AZURE_MICROSOFT_SERVICEBUS_NAMESPACES_TOPICS_SUBSCRIPTIONS", direction:backwardfieldsKeep:{field1, field2}dt.traverse.history[0][id]lookup| fieldsAdd sourceId = dt.traverse.history[0][id]
| lookup [smartscapeNodes "SOURCE_TYPE" | fields name, id], sourceField: sourceId, lookupField: id, prefix: "src."dt.traverse.history[-N]fieldsKeepcloud.azure.<provider_namespace>.<resource_type>.<MetricName><provider_namespace>microsoft_compute<resource_type>virtualmachinesmicrosoft_sql.servers.databases<MetricName>| Azure Monitor metric | Dynatrace metric key |
|---|---|
VM | |
SQL DB | |
Storage | |
Event Hub | |
Service Bus | |
App Service | |
Load Balancer | |
AKS | |
Cosmos DB | |
Redis | |
App Gateway | |
timeseries cpu = avg(cloud.azure.microsoft_compute.virtualmachines.PercentageCPU),
by: {dt.smartscape_source.id},
from: now()-1h
| limit 10azure.objectazjsonparse azure.object, "JSON:azjson"configuration{
"configuration": {
"id": "<ARM resource ID>",
"name": "<resource name>",
"type": "<ARM resource type>",
"location": "<region>",
"sku": { ... },
"properties": { ... },
"zones": [...]
},
"tags": { ... }
}azjson[configuration][properties][field]azjson[configuration][sku][name]azjson[configuration][kind]azjson[configuration][zones]properties.hardwareProfile.vmSizeproperties.storageProfile.imageReference.offerproperties.storageProfile.osDisk.osTypeproperties.extended.instanceView.powerState.displayStatussku.namesku.capacitytags.aks-managed-poolNameproperties.securityRules[]properties.securityRules[].properties.directionproperties.securityRules[].properties.accessproperties.securityRules[].properties.sourceAddressPrefixkindsku.nameproperties.accessTierproperties.supportsHttpsTrafficOnlyproperties.allowBlobPublicAccessproperties.encryption.keySourceproperties.fullyQualifiedDomainNameproperties.publicNetworkAccessproperties.minimalTlsVersionsku.namesku.capacityproperties.statusproperties.zoneRedundantproperties.kubernetesVersionproperties.powerState.codeproperties.networkProfile.networkPluginproperties.enableRBACkindfunctionapp,linuxproperties.stateproperties.defaultHostNameproperties.siteConfig.linuxFxVersionproperties.runningStatusproperties.template.containers[].imageproperties.template.scale.minReplicasproperties.template.scale.maxReplicassku.nameproperties.kafkaEnabledproperties.zoneRedundantsku.nameproperties.zoneRedundantproperties.minimumTlsVersionproperties.publicNetworkAccessproperties.disableLocalAuthproperties.statusproperties.maxSizeInMegabytesproperties.enablePartitioningproperties.deadLetteringOnMessageExpirationproperties.maxDeliveryCountproperties.lockDurationproperties.requiresDuplicateDetectionproperties.statusproperties.enableRbacAuthorizationproperties.enableSoftDeleteproperties.publicNetworkAccessproperties.sku.nameproperties.hostNameproperties.redisVersionproperties.enableNonSslPortkindproperties.EnabledApiTypesproperties.consistencyPolicy.defaultConsistencyLevelsku.nametags.aks-managed-cluster-nameproperties.sku.nameproperties.sku.tierproperties.operationalStateproperties.webApplicationFirewallConfiguration.enabledproperties.webApplicationFirewallConfiguration.firewallModeproperties.webApplicationFirewallConfiguration.ruleSetTypeproperties.webApplicationFirewallConfiguration.ruleSetVersionproperties.webApplicationFirewallConfiguration.disabledRuleGroups[]properties.webApplicationFirewallConfiguration.exclusions[]properties.firewallPolicy.idsmartscapeNodes "AZURE_*"
| filter azure.subscription == "<SUBSCRIPTION_ID>" and azure.location == "<REGION>"
| summarize count = count(), by: {type}
| sort count desc"AZURE_*""AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES"| fields name, azure.subscription, azure.resource.group, azure.location, ...tags[`TagName`]azure.objectsmartscapeNodes "AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINES"
| parse azure.object, "JSON:azjson"
| fieldsAdd vmSize = azjson[configuration][properties][hardwareProfile][vmSize],
osType = azjson[configuration][properties][storageProfile][osDisk][osType]
| summarize vm_count = count(), by: {vmSize, osType, azure.location}"*"dt.traverse.relationshipsmartscapeNodes "AZURE_MICROSOFT_NETWORK_LOADBALANCERS"
| parse azure.object, "JSON:azjson"
| fieldsAdd lbSku = azjson[configuration][sku][name]
| traverse "*", "AZURE_MICROSOFT_NETWORK_LOADBALANCERS_BACKENDADDRESSPOOLS", fieldsKeep:{lbSku, name, id}
| fieldsAdd backendPoolName = name
| traverse "*", "AZURE_MICROSOFT_COMPUTE_VIRTUALMACHINESCALESETS", direction:backward, fieldsKeep:{backendPoolName, id}
| fieldsAdd loadBalancerName = dt.traverse.history[-2][name],
loadBalancerId = dt.traverse.history[-2][id],
backendPoolId = dt.traverse.history[-1][id]"*"smartscapeNodes "AZURE_*"
| filter isNotNull(tags[`<TAG_NAME>`])
| summarize resource_count = count(), by: {tags[`<TAG_NAME>`], type}
| sort resource_count desctags[`ACE:CREATED-BY`]tags[`dt_owner_email`]tags[`dt_owner_team`]tags[`project`]tags[`managed-by`]"AZURE_*"| filter arraySize(tags) == 0| Reference | When to load | Key content |
|---|---|---|
| vnet-networking-security.md | VNet topology, subnets, NSGs, public IPs, VPN, peering | VNet/subnet mapping, NSG blast radius, public IP detection |
| database-monitoring.md | Azure SQL, Cosmos DB, Redis Cache | Service tier distribution, zone redundancy, public access checks |
| serverless-containers.md | Functions, App Service, AKS infra, Container Apps | Runtime distribution, App Service Plan mapping, AKS node pools |
| load-balancing-api.md | Load Balancers, Application Gateways, API Management | LB backend pool traversal, App Gateway routing, APIM config |
| messaging-integration.md | Event Hubs, Service Bus, Event Grid | Namespace inventory, Kafka enablement, throughput unit analysis |
| storage-monitoring.md | Storage Accounts, Blob, File, Queue, Table | SKU distribution, access tier, encryption audit, public access |
| resource-management.md | Resource audits, tag compliance, lifecycle | Unattached disks, tag coverage, provisioning state analysis |
| cost-optimization.md | Cost savings, unused resources, sizing | VM SKU analysis, unattached disks, deallocated VMs |
| capacity-planning.md | Capacity analysis, scaling, utilization | VMSS headroom, subnet IP counts, AKS node pool sizing |
| security-compliance.md | Security audits, encryption, public access, Key Vault | NSG rule analysis, TLS version audit, public endpoint detection, encryption checks |
| resource-ownership.md | Chargeback, ownership, cost allocation | Tag-based grouping, subscription/resource-group summaries |
| workload-detection.md | Determine orchestration context and resolution path | AKS node, VMSS member, standalone VM detection for blast radius analysis |
| metrics-performance.md | Query metric timeseries for a specific resource | DQL timeseries patterns for VM, SQL, Storage, Event Hub, LB, App Service, AKS, Cosmos DB, Redis, App Gateway |
"AZURE_*"| limit NisNotNull()azure.objectparse azure.object, "JSON:azjson"fieldsAdd configField = azjson[configuration][properties][field]azjson[configuration][sku][name]propertiestoString()azure.subscriptionazure.resource.groupazure.locationsummarize ... by: {azure.subscription, azure.resource.group}tags[`key`]arraySize(tags)dt_owner_emaildt_owner_teamACE:CREATED-BYparse azure.object, "JSON:azjson"cloud.azure.*"*"traversedirection:backwardfieldsKeepdt.traverse.history[0][id]lookupdt.traverse.history[-N]fieldsKeepdt-obs-kubernetesgetNodeName()isNotNull()isNull()countDistinct()azure.resourceTypemicrosoft.compute/virtualmachines