Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
matthieu-dujany-technis opened this issue Sep 6, 2024 · 1 comment
Labels
enhancement accepted An actionable enhancement for which PRs will be accepted enhancement New feature or request good first issue Good for newcomers priority: p2

Comments

@matthieu-dujany-technis
Copy link

matthieu-dujany-technis commented Sep 6, 2024

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,

@dashpole dashpole added bug Something isn't working priority: p2 labels Sep 18, 2024
@aabmass
Copy link
Collaborator

aabmass commented Sep 18, 2024

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

That's correct, its just not implemented yet. It should be pretty straightforward to add though, the logic can be copied from the Go or JS exporters where it is already implemented.

I'm going to mark this as up for grabs as I can't get to it right now. If you or anyone else wants to take a shot, let me know and I can assign it to you 🙂

@aabmass aabmass added enhancement New feature or request good first issue Good for newcomers enhancement accepted An actionable enhancement for which PRs will be accepted and removed bug Something isn't working labels Sep 18, 2024
@aabmass aabmass removed their assignment Sep 18, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement accepted An actionable enhancement for which PRs will be accepted enhancement New feature or request good first issue Good for newcomers priority: p2
Projects
None yet
Development

No branches or pull requests

3 participants