Skip to content

Commit f581f22

Browse files
committed
feat(http): add error handling for exporting
1 parent e0ac0a4 commit f581f22

File tree

3 files changed

+17
-3
lines changed
  • exporter/opentelemetry-exporter-otlp-proto-http/src/opentelemetry/exporter/otlp/proto/http

3 files changed

+17
-3
lines changed

exporter/opentelemetry-exporter-otlp-proto-http/src/opentelemetry/exporter/otlp/proto/http/_log_exporter/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,11 @@ def export(self, batch: Sequence[LogData]) -> LogExportResult:
184184
serialized_data = encode_logs(batch).SerializeToString()
185185
deadline_sec = time() + self._timeout
186186
for retry_num in range(_MAX_RETRYS):
187-
resp = self._export(serialized_data, deadline_sec - time())
187+
try:
188+
resp = self._export(serialized_data, deadline_sec - time())
189+
except Exception as error:
190+
_logger.error("Failed to export logs batch reason: %s", error)
191+
return LogExportResult.FAILURE
188192
if resp.ok:
189193
return LogExportResult.SUCCESS
190194
# multiplying by a random number between .8 and 1.2 introduces a +/20% jitter to each backoff.

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,13 @@ def export(
231231
serialized_data = encode_metrics(metrics_data).SerializeToString()
232232
deadline_sec = time() + self._timeout
233233
for retry_num in range(_MAX_RETRYS):
234-
resp = self._export(serialized_data, deadline_sec - time())
234+
try:
235+
resp = self._export(serialized_data, deadline_sec - time())
236+
except Exception as error:
237+
_logger.error(
238+
"Failed to export metrics batch reason: %s", error
239+
)
240+
return MetricExportResult.FAILURE
235241
if resp.ok:
236242
return MetricExportResult.SUCCESS
237243
# multiplying by a random number between .8 and 1.2 introduces a +/20% jitter to each backoff.

exporter/opentelemetry-exporter-otlp-proto-http/src/opentelemetry/exporter/otlp/proto/http/trace_exporter/__init__.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -179,7 +179,11 @@ def export(self, spans: Sequence[ReadableSpan]) -> SpanExportResult:
179179
serialized_data = encode_spans(spans).SerializePartialToString()
180180
deadline_sec = time() + self._timeout
181181
for retry_num in range(_MAX_RETRYS):
182-
resp = self._export(serialized_data, deadline_sec - time())
182+
try:
183+
resp = self._export(serialized_data, deadline_sec - time())
184+
except Exception as error:
185+
_logger.error("Failed to export span batch reason: %s", error)
186+
return SpanExportResult.FAILURE
183187
if resp.ok:
184188
return SpanExportResult.SUCCESS
185189
# multiplying by a random number between .8 and 1.2 introduces a +/20% jitter to each backoff.

0 commit comments

Comments
 (0)