Skip to content

Commit a28c110

Browse files
committed
fix flaky test
1 parent 1681f5c commit a28c110

File tree

2 files changed

+10
-5
lines changed

2 files changed

+10
-5
lines changed

exporter/opentelemetry-exporter-otlp-proto-grpc/src/opentelemetry/exporter/otlp/proto/grpc/metric_exporter/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -152,18 +152,18 @@ def _translate_data(
152152

153153
def export(
154154
self,
155-
data: MetricsData,
155+
metrics_data: MetricsData,
156156
timeout_millis: float = 10_000,
157157
**kwargs,
158158
) -> MetricExportResult:
159159
if self._max_export_batch_size is None:
160160
return self._exporter.export_with_retry(
161-
timeout_millis * 1e-3, data
161+
timeout_millis * 1e-3, metrics_data
162162
)
163163

164164
export_result = MetricExportResult.SUCCESS
165165
deadline_s = time() + timeout_millis * 1e-3
166-
for split_metrics_data in self._split_metrics_data(data):
166+
for split_metrics_data in self._split_metrics_data(metrics_data):
167167
time_remaining_s = deadline_s - time()
168168
split_export_result = self._exporter.export_with_retry(
169169
time_remaining_s, split_metrics_data

exporter/opentelemetry-exporter-otlp-proto-grpc/tests/test_otlp_metrics_exporter.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from os.path import dirname
2121
from typing import List
2222
from unittest import TestCase
23-
from unittest.mock import ANY, patch
23+
from unittest.mock import patch
2424

2525
from google.protobuf.duration_pb2 import Duration
2626
from google.rpc.error_details_pb2 import RetryInfo
@@ -769,6 +769,7 @@ def test_split_metrics_timeout(self, mock_export):
769769
metrics_data=metrics_data,
770770
)
771771
)
772+
self.assertEqual(len(split_metrics_data), 2)
772773
exporter = OTLPMetricExporter(max_export_batch_size=2)
773774

774775
timeout_s = 0.5
@@ -780,7 +781,11 @@ def test_split_metrics_timeout(self, mock_export):
780781
exporter.export(metrics_data, timeout_s * 1e3),
781782
MetricExportResult.FAILURE,
782783
)
783-
mock_export.assert_called_once_with(ANY, split_metrics_data[0])
784+
# There could be multiple calls to export because of the jitter in backoff
785+
self.assertNotIn(
786+
split_metrics_data[1],
787+
[call_args[1] for call_args in mock_export.call_args_list],
788+
)
784789
self.assertEqual(
785790
warning.records[-1].message,
786791
"Export deadline passed, ignoring data",

0 commit comments

Comments
 (0)