Skip to content

Commit ab431cb

Browse files
committed
Use delta temporality for cloud metrics export
1 parent 5529921 commit ab431cb

1 file changed

Lines changed: 13 additions & 3 deletions

File tree

plain-cloud/plain/cloud/config.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,11 @@
55
from opentelemetry import metrics, trace
66
from opentelemetry.exporter.otlp.proto.http.metric_exporter import OTLPMetricExporter
77
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
8-
from opentelemetry.sdk.metrics import MeterProvider
9-
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
8+
from opentelemetry.sdk.metrics import Counter, Histogram, MeterProvider, UpDownCounter
9+
from opentelemetry.sdk.metrics.export import (
10+
AggregationTemporality,
11+
PeriodicExportingMetricReader,
12+
)
1013
from opentelemetry.sdk.resources import Resource
1114
from opentelemetry.sdk.trace import TracerProvider, sampling
1215
from opentelemetry.sdk.trace.export import BatchSpanProcessor
@@ -53,10 +56,17 @@ def ready(self) -> None:
5356
tracer_provider.add_span_processor(BatchSpanProcessor(span_exporter))
5457
trace.set_tracer_provider(tracer_provider)
5558

56-
# Metrics
59+
# Metrics — use delta temporality so each export contains only the
60+
# increment since the last export, not a running total. This makes
61+
# server-side aggregation (sum/avg in ClickHouse) straightforward.
5762
metric_exporter = OTLPMetricExporter(
5863
endpoint=f"{export_url}/v1/metrics",
5964
headers=headers,
65+
preferred_temporality={
66+
Counter: AggregationTemporality.DELTA,
67+
Histogram: AggregationTemporality.DELTA,
68+
UpDownCounter: AggregationTemporality.DELTA,
69+
},
6070
)
6171
reader = PeriodicExportingMetricReader(metric_exporter)
6272
meter_provider = MeterProvider(metric_readers=[reader], resource=resource)

0 commit comments

Comments
 (0)