Skip to content

New component: Dynatrace Metrics Receiver #39372

Open
@MaCriMora

Description

@MaCriMora

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!

Metadata

Metadata

Assignees

No one assigned

    Labels

    Sponsor NeededNew component seeking sponsorneeds triageNew item requiring triage

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions