Extension pipelines ship with extensions; they're ready-made and read-only. With pipeline groups, you can add custom processing without modifying the extension pipeline itself. You create a custom base pipeline that holds the additional processing you want to apply. The extension pipeline stays as the member pipeline—it keeps its routing and role, and updates from the extension apply to it directly without affecting your base pipeline.
Administrators, SREs, and engineers who use Dynatrace extensions and need to apply custom processing to the data the extensions ingest.
In this tutorial, you'll learn how to:
Required permissions: settings:objects:read and settings:objects:write, both with builtin:openpipeline.<configuration-scope>.pipelines and builtin:openpipeline.<configuration-scope>.pipeline-groups scopes.
Create a base pipeline with your custom processing, assign the member role the extension pipeline, create a pipeline group, and verify the result.
Create a custom pipeline with the base role. The base pipeline holds the additional processing you want to apply on top of the extension pipeline. It's not routable—once the base pipeline is in a group, the base pipeline processing is applied to data that matches both a member pipeline routing condition and the base pipeline matching condition.
In this example, the base pipeline adds an ownership tag, parses an additional attribute, and assigns a storage bucket.
Go to
Settings > Process and contextualize > OpenPipeline and select your configuration scope.
Go to Pipelines > Pipeline.
Enter the pipeline name—for example, Extension processing override.
Near the pipeline name, choose the Base pipeline role.
Configure the stages and processors—for example:
Set owner to team-platformtrueowner = team-platform, processing.source = extension-overridecloud.region and latency.ms from the log content:
Parse cloud.region and latency.mstrueparse content, "LD 'region=' LD:cloud.region ' latency_ms=' INT:latency.ms"{"content":"status=200 region=eu-west-1 latency_ms=42"}Retain logs for 90 daystrueSelect Save.
The extension pipeline acts as the member pipeline of the group. Its routing and group role remain as configured; the pipeline group references it as-is. This keeps the extension upgradeable and future extension updates won't cause conflicts.
To find the pipeline name, go to Pipelines and search for the technology.
Define a pipeline group with your custom base pipeline and the extension pipeline. The composition runs the base pipeline first and then the extension pipeline.
Extend my extension as the group name.After creating the group, each record processed by the extension is first handled by the base pipeline, and then by the extension pipeline.
In
Notebooks, query the records ingested by the extension. For example:
fetch logs| filter processing.source == "extension-override"| fields content, owner, processing.source, cloud.region, latency.ms
Confirm that both pipelines are applied:
owner, processing.source), the parsed cloud.region and latency.ms, and the logs-extension-90d bucket assignment from the base pipeline are applied.You've successfully applied custom processing to a ready-made extension pipeline without modifying the extension pipeline itself. Here's what you accomplished:
Notebooks that the extension processing and your additional processing are applied.The extension stays upgradeable—future extension updates apply to the member pipeline without touching your base pipeline. To add processing for specific teams or services, such as metric extraction, Dynatrace intelligence, or data extraction, you can define additional processors in the base pipeline anytime.