-
Notifications
You must be signed in to change notification settings - Fork 45
Description
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,