Skip to content

Commit 483c4de

Browse files
committed
chore: PR: OTLP retry PR feedback
1 parent 16d0863 commit 483c4de

File tree

2 files changed

+5
-5
lines changed

2 files changed

+5
-5
lines changed

opentelemetry-otlp/CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ Released 2025-Sep-25
1111
- Update `opentelemetry-proto` and `opentelemetry-http` dependency version to 0.31.0
1212
- Add HTTP compression support with `gzip-http` and `zstd-http` feature flags
1313
- Add retry with exponential backoff and throttling support for HTTP and gRPC exporters
14-
This behaviour is opt in via the `experimental-grpc-retry` and `experimental-http-retry flags` on this crate.
14+
This behaviour is opt in via the `experimental-grpc-retry` and `experimental-http-retry` flags on this crate. You can customize the retry policy using the `with_retry_policy` on the exporter builders.
1515

1616
## 0.30.0
1717

opentelemetry-otlp/src/retry.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -128,15 +128,15 @@ where
128128

129129
match error_type {
130130
RetryErrorType::NonRetryable => {
131-
otel_warn!(name: "OtlpRetryNonRetryable", operation = operation_name, error = format!("{:?}", err));
131+
otel_warn!(name: "Export.Failed.NonRetryable", operation = operation_name, error = format!("{:?}", err));
132132
return Err(err);
133133
}
134134
RetryErrorType::Retryable if attempt < policy.max_retries => {
135135
attempt += 1;
136136
// Use exponential backoff with jitter
137-
otel_info!(name: "OtlpRetryRetrying", operation = operation_name, error = format!("{:?}", err));
138137
let jitter = generate_jitter(policy.jitter_ms);
139138
let delay_with_jitter = std::cmp::min(delay + jitter, policy.max_delay_ms);
139+
otel_info!(name: "Export.InProgress.Retrying", operation = operation_name, error = format!("{:?}", err), attempt = attempt, delay_ms = delay_with_jitter, jitter_ms = jitter);
140140
runtime
141141
.delay(Duration::from_millis(delay_with_jitter))
142142
.await;
@@ -145,13 +145,13 @@ where
145145
RetryErrorType::Throttled(server_delay) if attempt < policy.max_retries => {
146146
attempt += 1;
147147
// Use server-specified delay (overrides exponential backoff)
148-
otel_info!(name: "OtlpRetryThrottled", operation = operation_name, error = format!("{:?}", err), delay = format!("{:?}", server_delay));
148+
otel_info!(name: "Export.InProgress.Throttled", operation = operation_name, error = format!("{:?}", err), attempt = attempt, delay_ms = server_delay.as_millis());
149149
runtime.delay(server_delay).await;
150150
// Don't update exponential backoff delay for next attempt since server provided specific timing
151151
}
152152
_ => {
153153
// Max retries reached
154-
otel_warn!(name: "OtlpRetryExhausted", operation = operation_name, error = format!("{:?}", err), attempts = attempt);
154+
otel_warn!(name: "Export.Failed.Exhausted", operation = operation_name, error = format!("{:?}", err), retries = attempt);
155155
return Err(err);
156156
}
157157
}

0 commit comments

Comments
 (0)