Description
The purpose and use-cases of the new component
Component type:
Receiver
Problem:
OpenTelemetry Collector does not currently offer a native Dynatrace receiver which pulls metrics from Dynatrace.
Why a custom receiver?
Dynatrace does not expose native OTLP metrics export or integration with core OpenTelemetry Collector components. While it has an API (Metrics v2), there's:
- No existing receiver for pulling data via Dynatrace API
- No built-in support to schedule, transform, or enrich that data using OTel
Therefore, a custom receiver is required to handle:
- Periodic polling
- JSON decoding and transformation into OTel metrics
- Enrichment with custom resource attributes like environment, project, etc.
Proposed Solution:
Introduce a new receiver called dynatracereceiver, which:
- Pulls data from the Dynatrace Metrics API v2
Supports configurable:
- Metric selectors
- Time windows (e.g. now-1m to now)
- Poll intervals
- Retry and timeout settings
- Injects custom resource attributes (e.g., environment, team)
- Passes the transformed OpenTelemetry pmetric.Metrics downstream
Example Use Cases:
-
Teams with Dynatrace used as a central monitoring solution, who want to pull metrics into a different environment. This enables a flexible solution which enables teams to manage and process their own data differently.
-
Companies with multiple clusters/environments who want centralized dashboards across all observability tools
Example configuration for the component
receivers:
dynatrace:
API_ENDPOINT: ${env:API_ENDPOINT}
API_TOKEN: ${env:API_TOKEN}
metric_selectors:
- builtin:containers.cpu.usageTime
- builtin:containers.memory.residentSetBytes
resolution: 1m
from: now-1m
to: now
poll_interval: 30s
max_retries: 3
http_timeout: 10s
processors:
resource:
attributes:
- key: environment
value: ${env:DEPLOYMENT_ENVIRONMENT}
action: upsert
- key: project
value: ${env:PROJECT_NAME}
action: upsert
exporters:
logging:
verbosity: detailed
service:
pipelines:
metrics:
receivers: [dynatrace]
processors: [resource]
exporters: [logging]
Telemetry data types supported
The receiver transforms data into pmetric.Metrics and supports standard attribute injection via configuration.
Code Owner(s)
me
Sponsor (optional)
Looking for a sponsor — open to guidance from maintainers or anyone involved with integrations/Dynatrace.
Additional context
Status:
Prototype complete
Custom receiver fetches metrics and injects resource attributes
Tested locally with logging exporter and simulated Dynatrace data
Would love feedback and ideally a sponsor @evan-bradley to help guide next steps to contribute it!