Skip to content

Commit 7a3c9b9

Browse files
chore: change metrics aggregation temporality to delta
1 parent 05a7213 commit 7a3c9b9

File tree

4 files changed

+48
-9
lines changed

4 files changed

+48
-9
lines changed

pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[project]
22
name = "sap-cloud-sdk"
3-
version = "0.3.1"
3+
version = "0.3.2"
44
description = "SAP Cloud SDK for Python"
55
readme = "README.md"
66
license = "Apache-2.0"

src/sap_cloud_sdk/core/telemetry/_provider.py

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,19 @@
55

66
from opentelemetry import metrics
77
from opentelemetry.exporter.otlp.proto.grpc.metric_exporter import OTLPMetricExporter
8-
from opentelemetry.sdk.metrics import MeterProvider
9-
from opentelemetry.sdk.metrics.export import PeriodicExportingMetricReader
8+
from opentelemetry.sdk.metrics import (
9+
MeterProvider,
10+
Counter,
11+
Histogram,
12+
ObservableCounter,
13+
ObservableGauge,
14+
ObservableUpDownCounter,
15+
UpDownCounter,
16+
)
17+
from opentelemetry.sdk.metrics.export import (
18+
AggregationTemporality,
19+
PeriodicExportingMetricReader,
20+
)
1021
from opentelemetry.sdk.resources import Resource
1122

1223
from sap_cloud_sdk.core.telemetry.config import (
@@ -73,9 +84,16 @@ def _setup_meter_provider() -> Optional[MeterProvider]:
7384
try:
7485
resource = Resource.create(create_resource_attributes_from_env())
7586

76-
# Create OTLP exporter
7787
exporter = OTLPMetricExporter(
7888
endpoint=config.otlp_endpoint,
89+
preferred_temporality={
90+
Counter: AggregationTemporality.DELTA,
91+
Histogram: AggregationTemporality.DELTA,
92+
ObservableCounter: AggregationTemporality.DELTA,
93+
ObservableGauge: AggregationTemporality.DELTA,
94+
ObservableUpDownCounter: AggregationTemporality.DELTA,
95+
UpDownCounter: AggregationTemporality.DELTA,
96+
},
7997
)
8098

8199
# Create metric reader with periodic export

tests/core/unit/telemetry/test_provider.py

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import pytest
44
from unittest.mock import patch, MagicMock
55

6+
from opentelemetry.sdk.metrics import Counter, Histogram, ObservableCounter, ObservableGauge, ObservableUpDownCounter, UpDownCounter
7+
from opentelemetry.sdk.metrics.export import AggregationTemporality
8+
69
from sap_cloud_sdk.core.telemetry._provider import (
710
get_meter,
811
shutdown,
@@ -182,9 +185,17 @@ def test_setup_meter_provider_success(self):
182185

183186
assert result is mock_provider
184187

185-
# Verify exporter was created with endpoint
188+
# Verify exporter was created with endpoint and delta temporality
186189
mock_exporter_class.assert_called_once_with(
187-
endpoint="http://localhost:4317"
190+
endpoint="http://localhost:4317",
191+
preferred_temporality={
192+
Counter: AggregationTemporality.DELTA,
193+
Histogram: AggregationTemporality.DELTA,
194+
ObservableCounter: AggregationTemporality.DELTA,
195+
ObservableGauge: AggregationTemporality.DELTA,
196+
ObservableUpDownCounter: AggregationTemporality.DELTA,
197+
UpDownCounter: AggregationTemporality.DELTA,
198+
},
188199
)
189200

190201
# Verify reader was created with exporter
@@ -224,5 +235,15 @@ def test_setup_meter_provider_with_valid_config(self):
224235
result = _setup_meter_provider()
225236

226237
assert result is mock_provider
227-
# Verify exporter was created with correct endpoint
228-
mock_exporter.assert_called_with(endpoint=config.otlp_endpoint)
238+
# Verify exporter was created with correct endpoint and delta temporality
239+
mock_exporter.assert_called_with(
240+
endpoint=config.otlp_endpoint,
241+
preferred_temporality={
242+
Counter: AggregationTemporality.DELTA,
243+
Histogram: AggregationTemporality.DELTA,
244+
ObservableCounter: AggregationTemporality.DELTA,
245+
ObservableGauge: AggregationTemporality.DELTA,
246+
ObservableUpDownCounter: AggregationTemporality.DELTA,
247+
UpDownCounter: AggregationTemporality.DELTA,
248+
},
249+
)

uv.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)