Enriching primary Grail fields and tags correctly makes it easier to filter, route, and govern your observability data. The approaches on this page are ordered from zero-configuration defaults to ingest-time derivation. Start at the top and move to the next only if the previous approach doesn't meet your needs. Each approach adds configuration effort, so apply only as much as your use case requires. For domain-specific guidance, see OneAgent and Kubernetes.
Check built-in Dynatrace coverage
Enrich at deployment
Configure centrally
Use OpenPipeline for ingest-time enrichment
Many primary Grail fields are automatically populated: the Kubernetes cluster and namespace, host group, and cloud account require no configuration. If these cover your filtering and access needs, no further setup is required.
Dynatrace reads the tags already set on your hosts, containers, and cloud resources. You configure which existing tags to promote, without having to change individual deployments. Tags enriched at the source are available before pipeline routing, so they can be used for bucket assignment and permissions from the earliest processing stage.
primary_tags.*, dt.security_context, dt.cost.costcenter, and dt.cost.product before data reaches Dynatrace.Promote existing cloud tags, Kubernetes labels, or host properties to primary Grail tags through central enrichment rules, without modifying individual deployments.
Use OpenPipeline for enrichment only when earlier-stage enrichment isn't sufficient. You can enrich at ingest time in two places in OpenPipeline:
dt.security_context from the relevant primary tags or fields. Use these rules to promote existing record fields to primary_tags.*, for example when provider field names differ across record types, such as cloud and Kubernetes tag fields.Use OpenPipeline as a fallback when earlier-stage enrichment isn't possible, or the central tag configuration doesn't cover your use case.