Skip to content

Implement convert_classic_histograms_to_nhcb in the otel collector. #6183

@necoras

Description

@necoras

Component(s)

otelcol.exporter.prometheus

Request

Prometheus has the ability to convert incoming histograms from the bloated classic format to native histograms with pre-defined buckets (nhcb) via the prometheus.scrape functionality. The same conversion isn't possible with histogram data coming from otel collectors. While in both cases there is the possibility of modifying the data source to send native/exponential histograms, that doesn't help if the data source cannot be quickly modified, if it can be at all.

Given the conversion logic already exists, it would be helpful to be able to funnel otel histograms through the convert_classic_histograms_to_nhcb logic, thus saving on data transfer and storage costs on the back end.

Another option would be to put the logic into a new processor (ex: otelcol.processor.convert_nhcb)

Use case

We need to scrape many legacy otel data sources that we do not have direct control over. Classic histograms are large and expensive to transmit, process, and store. Allowing for a conversion/compression at the collector level gives control back to the team/user using alloy rather than relying on upstream legacy sources to update.

Tip

React with 👍 if this issue is important to you.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions