Skip to content

Commit 0115dc9

Browse files
committed
fix: Small improvement to OTLP Exporter logs
1 parent 8e47d84 commit 0115dc9

File tree

6 files changed

+74
-23
lines changed

6 files changed

+74
-23
lines changed

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,20 +30,24 @@ impl LogExporter for OtlpHttpClient {
3030
}
3131

3232
let request_uri = request.uri().to_string();
33-
otel_debug!(name: "HttpLogsClient.CallingExport");
33+
otel_debug!(name: "HttpLogsClient.ExportStarted");
3434
let response = client
3535
.send_bytes(request)
3636
.await
3737
.map_err(|e| OTelSdkError::InternalFailure(format!("{e:?}")))?;
38+
3839
if !response.status().is_success() {
3940
let error = format!(
4041
"OpenTelemetry logs export failed. Url: {}, Status Code: {}, Response: {:?}",
4142
request_uri,
4243
response.status().as_u16(),
4344
response.body()
4445
);
46+
otel_debug!(name: "HttpLogsClient.ExportFailed", error = &error);
4547
return Err(OTelSdkError::InternalFailure(error));
4648
}
49+
50+
otel_debug!(name: "HttpLogsClient.ExportSucceeded");
4751
Ok(())
4852
}
4953

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

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,31 @@ impl MetricsClient for OtlpHttpClient {
3333
request.headers_mut().insert(k.clone(), v.clone());
3434
}
3535

36-
otel_debug!(name: "HttpMetricsClient.CallingExport");
37-
client
36+
otel_debug!(name: "HttpMetricsClient.ExportStarted");
37+
let result = client
3838
.send_bytes(request)
39-
.await
40-
.map_err(|e| OTelSdkError::InternalFailure(format!("{e:?}")))?;
39+
.await;
4140

42-
Ok(())
41+
match result {
42+
Ok(response) => {
43+
if response.status().is_success() {
44+
otel_debug!(name: "HttpMetricsClient.ExportSucceeded");
45+
Ok(())
46+
} else {
47+
let error = format!(
48+
"OpenTelemetry metrics export failed. Status Code: {}, Response: {:?}",
49+
response.status().as_u16(),
50+
response.body()
51+
);
52+
otel_debug!(name: "HttpMetricsClient.ExportFailed", error = &error);
53+
Err(OTelSdkError::InternalFailure(error))
54+
}
55+
}
56+
Err(e) => {
57+
otel_debug!(name: "HttpMetricsClient.ExportFailed", error = format!("{:?}", e));
58+
Err(OTelSdkError::InternalFailure(format!("{e:?}")))
59+
}
60+
}
4361
}
4462

4563
fn shutdown(&self) -> OTelSdkResult {

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ impl SpanExporter for OtlpHttpClient {
4242
}
4343

4444
let request_uri = request.uri().to_string();
45-
otel_debug!(name: "HttpTracesClient.CallingExport");
45+
otel_debug!(name: "HttpTracesClient.ExportStarted");
4646
let response = client
4747
.send_bytes(request)
4848
.await
@@ -51,13 +51,15 @@ impl SpanExporter for OtlpHttpClient {
5151
if !response.status().is_success() {
5252
let error = format!(
5353
"OpenTelemetry trace export failed. Url: {}, Status Code: {}, Response: {:?}",
54-
response.status().as_u16(),
5554
request_uri,
55+
response.status().as_u16(),
5656
response.body()
5757
);
58+
otel_debug!(name: "HttpTracesClient.ExportFailed", error = &error);
5859
return Err(OTelSdkError::InternalFailure(error));
5960
}
6061

62+
otel_debug!(name: "HttpTracesClient.ExportSucceeded");
6163
Ok(())
6264
}
6365

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

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,17 +72,26 @@ impl LogExporter for TonicLogsClient {
7272

7373
let resource_logs = group_logs_by_resource_and_scope(batch, &self.resource);
7474

75-
otel_debug!(name: "TonicsLogsClient.CallingExport");
75+
otel_debug!(name: "TonicLogsClient.ExportStarted");
7676

77-
client
77+
let result = client
7878
.export(Request::from_parts(
7979
metadata,
8080
extensions,
8181
ExportLogsServiceRequest { resource_logs },
8282
))
83-
.await
84-
.map_err(|e| OTelSdkError::InternalFailure(format!("export error: {:?}", e)))?;
85-
Ok(())
83+
.await;
84+
85+
match result {
86+
Ok(_) => {
87+
otel_debug!(name: "TonicLogsClient.ExportSucceeded");
88+
Ok(())
89+
}
90+
Err(e) => {
91+
otel_debug!(name: "TonicLogsClient.ExportFailed", error = format!("{:?}", e));
92+
Err(OTelSdkError::InternalFailure(format!("export error: {:?}", e)))
93+
}
94+
}
8695
}
8796

8897
fn shutdown_with_timeout(&self, _timeout: time::Duration) -> OTelSdkResult {

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

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,18 +75,26 @@ impl MetricsClient for TonicMetricsClient {
7575
)),
7676
})?;
7777

78-
otel_debug!(name: "TonicsMetricsClient.CallingExport");
78+
otel_debug!(name: "TonicMetricsClient.ExportStarted");
7979

80-
client
80+
let result = client
8181
.export(Request::from_parts(
8282
metadata,
8383
extensions,
8484
ExportMetricsServiceRequest::from(metrics),
8585
))
86-
.await
87-
.map_err(|e| OTelSdkError::InternalFailure(format!("{e:?}")))?;
86+
.await;
8887

89-
Ok(())
88+
match result {
89+
Ok(_) => {
90+
otel_debug!(name: "TonicMetricsClient.ExportSucceeded");
91+
Ok(())
92+
}
93+
Err(e) => {
94+
otel_debug!(name: "TonicMetricsClient.ExportFailed", error = format!("{:?}", e));
95+
Err(OTelSdkError::InternalFailure(format!("{e:?}")))
96+
}
97+
}
9098
}
9199

92100
fn shutdown(&self) -> OTelSdkResult {

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

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -76,17 +76,27 @@ impl SpanExporter for TonicTracesClient {
7676

7777
let resource_spans = group_spans_by_resource_and_scope(batch, &self.resource);
7878

79-
otel_debug!(name: "TonicsTracesClient.CallingExport");
8079

81-
client
80+
otel_debug!(name: "TonicTracesClient.ExportStarted");
81+
82+
let result = client
8283
.export(Request::from_parts(
8384
metadata,
8485
extensions,
8586
ExportTraceServiceRequest { resource_spans },
8687
))
87-
.await
88-
.map_err(|e| OTelSdkError::InternalFailure(e.to_string()))?;
89-
Ok(())
88+
.await;
89+
90+
match result {
91+
Ok(_) => {
92+
otel_debug!(name: "TonicTracesClient.ExportSucceeded");
93+
Ok(())
94+
}
95+
Err(e) => {
96+
otel_debug!(name: "TonicTracesClient.ExportFailed", error = format!("{:?}", e));
97+
Err(OTelSdkError::InternalFailure(e.to_string()))
98+
}
99+
}
90100
}
91101

92102
fn shutdown(&mut self) -> OTelSdkResult {

0 commit comments

Comments
 (0)