Dynatrace discovers your Google Cloud resource inventory and stores it in Smartscape on Grail. Each resource is a Smartscape entity containing its configuration, labels, tags, and relationships to other resources. Ingested metrics and logs are linked to their corresponding entity, making telemetry available in topology context in
Clouds and via DQL.
Clouds.Dynatrace discovers your Google Cloud resource inventory using two complementary paths:
Dynatrace polls the Google Cloud Asset Inventory API periodically to discover and update resource state across your monitored scope.
An optional Cloud Asset feed that pushes near-real-time notifications when resources are created, updated, or deleted. Complements polling by delivering changes between poll cycles. Requires separate deployment — see Enable or update asset inventory feed.
Terraform creates the feed with a Dynatrace-maintained base set of resource types. Add or remove types to match your needs. There is no Google Cloud Console UI for this — use gcloud CLI or Terraform. For commands and the full base type list, see Manual onboarding reference.
All GCP entities include the Smartscape on Grail common attributes plus:
gcp.project.idgcp.locationgcp.regiongcp.zone (set only for zonal resources)gcp.resource.namegcp.resource.typegcp.labelsgcp.tagsExample Smartscape entity for a GKE node pool:
{"id": "GCP_CONTAINER_GOOGLEAPIS_COM_NODEPOOL-0096C9F386DC3C24","type": "GCP_CONTAINER_GOOGLEAPIS_COM_NODEPOOL","name": "pool-5","lifetime": {"start": "2026-01-19T09:50:00.000000000+01:00","end": "2026-02-26T20:57:00.000000000+01:00"},"cloud.provider": "gcp","cloud.acquisition.status": "OK","gcp.project.id": "my-project","gcp.region": "us-west1","gcp.location": "us-west1","gcp.organization.id": "178056077565","gcp.resource.name": "//container.googleapis.com/projects/my-project/locations/us-west1/clusters/my-cluster/nodePools/pool-5","gcp.resource.type": "container.googleapis.com/NodePool","gcp.asset.type": "container.googleapis.com/NodePool","gcp.properties.version": "v1","gcp.object": "<full asset configuration as retrieved from Google Cloud Asset Inventory>","tags:gcp_tags": {"my-org/environment": "production"},"dt.security_context": [],"dt.da.source": "gcp-smartscape-poller-full"}
Dynatrace derives gcp.location, gcp.region, and gcp.zone from the location value returned by Google Cloud Asset Inventory.
| GCP location value | gcp.location | gcp.region | gcp.zone |
|---|---|---|---|
Zone (for example, |
|
|
|
Region (for example, |
|
| (unset) |
Multi-region (for example, |
|
| (unset) |
|
|
| (unset) |
No location |
|
| (unset) |
gcp.location always reflects the raw value from Google Cloud. gcp.region is always set—when GCP returns a zone, Dynatrace strips the zone suffix to derive the region (for example, europe-west4-a → europe-west4). If no location is available, both fields default to global. gcp.zone is only set when GCP returns a zone.
Dynatrace supports all asset types listed in the Google Cloud Asset Inventory documentation.
While scanning GCP topology, Dynatrace also discovers relationships between resources and persists them in Smartscape on Grail as static edges—for example, a Compute Engine instance and the VPC network it belongs to.
Dynatrace receives near-real-time topology updates via the Asset Inventory feed for resource changes as they happen. The periodic polling cycle ensures consistency and catches any changes not delivered by the feed.
Labels: When a resource's labels change, Google Cloud emits an asset feed event. Dynatrace processes these events in near-real time, so label changes are typically reflected in Dynatrace within minutes.
Tags: Google Cloud tags are hierarchical and changes to tag bindings may not trigger asset feed events. Dynatrace picks up tag changes through periodic polling, so tag updates can take up to one hour to appear in Dynatrace entity data.
The dt.da.source attribute indicates how the entity was last updated:
gcp-smartscape-poller-full — updated by periodic pollinggcp-smartscape-poller-feed — updated by an Asset Inventory feed eventYou can see the timestamp when a given Smartscape node was last updated in the lifetime.end attribute.
When querying topology, select at least the last hour in your query timeframe to list all active resources.
Dynatrace scans the topology of the Google Cloud projects, folders, or organization scope configured for your connection. Resources outside the configured scope are not discovered.
GCP labels and tags are stored directly on Smartscape entities as part of the asset data retrieved from Cloud Asset Inventory. No enrichment configuration is required — they are always present on the entity.
gcp.labels — map of all labels on the resource at the time of last discoverygcp.tags — map of all tags bound to the resource at the time of last discoveryFor timing behavior — including why tag changes can take up to one hour to appear — see Topology data freshness.
Access topology via
Clouds, or query it via DQL in
Notebooks.
smartscapeNodes "GCP*"| summarize count=count(), by:{gcp.project.id, gcp.location, type}| sort count desc
smartscapeNodes "GCP_COMPUTE_GOOGLEAPIS_COM_INSTANCE"
smartscapeNodes "GCP_COMPUTE_GOOGLEAPIS_COM_INSTANCE"| parse gcp.object, "JSON:gcpjson"| fieldsAdd machineType=gcpjson[configuration][resource][machineType],zone=gcpjson[configuration][resource][zone]| fieldsRemove gcp.object, gcpjson
smartscapeEdges "*"| filter startsWith(source_type, "GCP")| summarize count=count(), by: {edgeType=type, sourceType=source_type, targetType=target_type}
GCP topology ingestion (entities and relationships) is included in GCP Cloud Platform Monitoring at no additional Dynatrace cost. See the Dynatrace rate card for details on metric and log ingest pricing.
Topology discovery can cause charges in your Google Cloud environment, depending on what you use:
For details and current rates, see the Google Cloud pricing pages.
Explore your GCP resources with their linked telemetry in
Clouds, or run topology queries across projects in
Notebooks.