Skip to content

[receiver/statsd]Add support for DataDog distribution metrics type  #24768

Closed
@anuprout

Description

@anuprout

Component(s)

receiver/statsd

Is your feature request related to a problem? Please describe.

The DataDog supported statsd metrics have an additional metric type distribution which is denoted by d in the statsd protocol. The Otel statsd receivers currently recognizes metric type GAUGE(g), TIMER(ms),COUNTER(c) & HISTOGRAM(h). This causes the distribution metrics sent from a DataDog statsd client to be dropped by the receiver.

Below are some examples of the distribution metrics sent from a DataDog statsd client.
test_distribution_metric:1|d|#tag1-key:tag1-value,tag2-key:tag2-value
test_distribution_metric:2|d|#tag1-key:tag1-value,tag2-key:tag2-value
test_distribution_metric:3|d|#tag1-key:tag1-value,tag2-key:tag2-value

Describe the solution you'd like

The distribution metrics can be parsed by the receiver as histograms . The DataDog exporter converts the Otel histograms to DataDog distributions by default.

When the metric payload is parsed, the metrics with type d can be treated as histograms which would wrap all the functionalities provided for histogram metrics.

Describe alternatives you've considered

The distribution metrics can be parsed by the receiver similar to the histograms where all the configs exposed for a histogram metric can be exposed for distribution metrics as well with default observer_type as histogram.

Sample receiver config.

receivers:
  statsd:
  statsd/2:
    endpoint: "localhost:8127"
    aggregation_interval: 70s
    enable_metric_type: true
    is_monotonic_counter: false
    timer_histogram_mapping:
      - statsd_type: "distribution"
        observer_type: "histogram"
        histogram: 
          max_size: 100 

Additional context

No response

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions