Skip to content

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

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,

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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