Skip to content

Commit ee0d2bc

Browse files
committed
fix: Improved logging for OTLP Tonic Exporter
1 parent 0462369 commit ee0d2bc

File tree

3 files changed

+50
-14
lines changed

3 files changed

+50
-14
lines changed

opentelemetry-otlp/src/exporter/tonic/logs.rs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,15 @@ impl LogExporter for TonicLogsClient {
6363
let (m, e, _) = inner
6464
.interceptor
6565
.call(Request::new(()))
66-
.map_err(|e| OTelSdkError::InternalFailure(format!("error: {e:?}")))?
66+
.map_err(|e| {
67+
otel_debug!(
68+
name: "TonicLogsClient.InterceptorFailed",
69+
grpc_code = format!("{:?}", e.code()),
70+
grpc_message = e.message(),
71+
grpc_details = format!("{:?}", e.details())
72+
);
73+
OTelSdkError::InternalFailure("Logs export failed in interceptor".into())
74+
})?
6775
.into_parts();
6876
(inner.client.clone(), m, e)
6977
}
@@ -88,9 +96,13 @@ impl LogExporter for TonicLogsClient {
8896
Ok(())
8997
}
9098
Err(e) => {
91-
let error = format!("export error: {e:?}");
92-
otel_debug!(name: "TonicLogsClient.ExportFailed", error = &error);
93-
Err(OTelSdkError::InternalFailure(error))
99+
otel_debug!(
100+
name: "TonicLogsClient.ExportFailed",
101+
grpc_code = format!("{:?}", e.code()),
102+
grpc_message = e.message(),
103+
grpc_details = format!("{:?}", e.details())
104+
);
105+
Err(OTelSdkError::InternalFailure("Logs export failed".into()))
94106
}
95107
}
96108
}

opentelemetry-otlp/src/exporter/tonic/metrics.rs

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,15 @@ impl MetricsClient for TonicMetricsClient {
6363
.interceptor
6464
.call(Request::new(()))
6565
.map_err(|e| {
66-
OTelSdkError::InternalFailure(format!(
67-
"unexpected status while exporting {e:?}"
68-
))
66+
otel_debug!(
67+
name: "TonicMetricsClient.InterceptorFailed",
68+
grpc_code = format!("{:?}", e.code()),
69+
grpc_message = e.message(),
70+
grpc_details = format!("{:?}", e.details())
71+
);
72+
OTelSdkError::InternalFailure(
73+
"Metrics export failed in interceptor".into(),
74+
)
6975
})?
7076
.into_parts();
7177
Ok((inner.client.clone(), m, e))
@@ -91,9 +97,15 @@ impl MetricsClient for TonicMetricsClient {
9197
Ok(())
9298
}
9399
Err(e) => {
94-
let error = format!("{e:?}");
95-
otel_debug!(name: "TonicMetricsClient.ExportFailed", error = &error);
96-
Err(OTelSdkError::InternalFailure(error))
100+
otel_debug!(
101+
name: "TonicMetricsClient.ExportFailed",
102+
grpc_code = format!("{:?}", e.code()),
103+
grpc_message = e.message(),
104+
grpc_details = format!("{:?}", e.details())
105+
);
106+
Err(OTelSdkError::InternalFailure(
107+
"Metrics export failed".into(),
108+
))
97109
}
98110
}
99111
}

opentelemetry-otlp/src/exporter/tonic/trace.rs

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,15 @@ impl SpanExporter for TonicTracesClient {
6767
.lock()
6868
.await // tokio::sync::Mutex doesn't return a poisoned error, so we can safely use the interceptor here
6969
.call(Request::new(()))
70-
.map_err(|e| OTelSdkError::InternalFailure(format!("error: {e:?}")))?
70+
.map_err(|e| {
71+
otel_debug!(
72+
name: "TonicTracesClient.InterceptorFailed",
73+
grpc_code = format!("{:?}", e.code()),
74+
grpc_message = e.message(),
75+
grpc_details = format!("{:?}", e.details())
76+
);
77+
OTelSdkError::InternalFailure("Traces export failed in interceptor".into())
78+
})?
7179
.into_parts();
7280
(inner.client.clone(), m, e)
7381
}
@@ -92,9 +100,13 @@ impl SpanExporter for TonicTracesClient {
92100
Ok(())
93101
}
94102
Err(e) => {
95-
let error = e.to_string();
96-
otel_debug!(name: "TonicTracesClient.ExportFailed", error = &error);
97-
Err(OTelSdkError::InternalFailure(error))
103+
otel_debug!(
104+
name: "TonicTracesClient.ExportFailed",
105+
grpc_code = format!("{:?}", e.code()),
106+
grpc_message = e.message(),
107+
grpc_details = format!("{:?}", e.details())
108+
);
109+
Err(OTelSdkError::InternalFailure("Traces export failed".into()))
98110
}
99111
}
100112
}

0 commit comments

Comments
 (0)