Skip to content

Unsupported metric data type ExponentialHistogram in opentelemetry-exporter-gcp-monitoringΒ #357

@matthieu-dujany-technis

Description

@matthieu-dujany-technis

Hello,

I am having issues exporting an opentelemetry histogram to Google Cloud with exponential bucketing.

I get the error "Unsupported metric data type ExponentialHistogram, ignoring it" which I believe comes from this code line 216.

I am using the following code:

from opentelemetry.exporter.cloud_monitoring import (
    CloudMonitoringMetricsExporter,
)
from opentelemetry.sdk.metrics import MeterProvider, Histogram
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
from opentelemetry.sdk.resources import Resource
from opentelemetry.sdk.metrics.view import View
import random
import time
from opentelemetry.sdk.metrics._internal.aggregation import (
    ExponentialBucketHistogramAggregation,
)

project_id = "my_project_id"

meter_provider = MeterProvider(
    metric_readers=[
        PeriodicExportingMetricReader(
            CloudMonitoringMetricsExporter(
                project_id=project_id,
            ),
            export_interval_millis=30000,
        )
    ],
    resource=Resource.create(
        {
            "service.name": "test-matthieu-opentelemetry",
        }
    ),
    views=[
        View(
            instrument_type=Histogram,
            aggregation=ExponentialBucketHistogramAggregation(),
        )
    ],
)

meter = meter_provider.get_meter("test-meter")
request_duration_seconds = meter.create_histogram("test_histogram")

while True:
    value = random.random()
    request_duration_seconds.record(value)
    time.sleep(10)

with the following packages on Python 3.10.12:
opentelemetry-api==1.27.0
opentelemetry-exporter-gcp-monitoring==1.7.0a0
opentelemetry-resourcedetector-gcp==1.7.0a0
opentelemetry-sdk==1.27.0

If I remove the view part with the ExponentialBucketHistogramAggregation, the export then runs successfully but with the default explicit histogram bucketing boundaries defined here. I would like to be able to run it with the ExponentialBucketHistogramAggregation.

I have seen that is possible to do it in opentelemetry-operations-js with this example in the README.

Is there something that I am missing ? Or are exponential buckets not supported in opentelemetry-operations-python (as the error seems to indicate) ?

Thanks for the help,

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions