@@ -29,7 +29,7 @@ use std::time::Duration;
2929 feature = "experimental-http-retry"
3030) ) ]
3131use std:: time:: SystemTime ;
32-
32+ use opentelemetry :: otel_info ;
3333#[ cfg( any(
3434 feature = "experimental-grpc-retry" ,
3535 feature = "experimental-http-retry"
@@ -61,26 +61,6 @@ pub struct RetryPolicy {
6161 pub jitter_ms : u64 ,
6262}
6363
64- /// A runtime stub for when experimental_async_runtime is not enabled.
65- /// This allows retry policy to be configured but no actual retries occur.
66- #[ cfg( not( any(
67- feature = "experimental-grpc-retry" ,
68- feature = "experimental-http-retry"
69- ) ) ) ]
70- #[ derive( Debug , Clone , Default ) ]
71- pub struct NoOpRuntime ;
72-
73- #[ cfg( not( any(
74- feature = "experimental-grpc-retry" ,
75- feature = "experimental-http-retry"
76- ) ) ) ]
77- impl NoOpRuntime {
78- /// Creates a new no-op runtime.
79- pub fn new ( ) -> Self {
80- Self
81- }
82- }
83-
8464// Generates a random jitter value up to max_jitter
8565#[ cfg( any(
8666 feature = "experimental-grpc-retry" ,
@@ -144,13 +124,13 @@ where
144124
145125 match error_type {
146126 RetryErrorType :: NonRetryable => {
147- otel_warn ! ( name: "OtlpRetry " , message = format!( "Operation {:?} failed with non-retryable error: {:?}" , operation_name , err) ) ;
127+ otel_warn ! ( name: "OtlpRetryNonRetryable " , operation = operation_name , error = format!( "{:?}" , err) ) ;
148128 return Err ( err) ;
149129 }
150130 RetryErrorType :: Retryable if attempt < policy. max_retries => {
151131 attempt += 1 ;
152132 // Use exponential backoff with jitter
153- otel_warn ! ( name: "OtlpRetry " , message = format!( "Retrying operation {:?} due to retryable error: {:?}" , operation_name , err) ) ;
133+ otel_info ! ( name: "OtlpRetryRetrying " , operation = operation_name , error = format!( "{:?}" , err) ) ;
154134 let jitter = generate_jitter ( policy. jitter_ms ) ;
155135 let delay_with_jitter = std:: cmp:: min ( delay + jitter, policy. max_delay_ms ) ;
156136 runtime
@@ -161,13 +141,13 @@ where
161141 RetryErrorType :: Throttled ( server_delay) if attempt < policy. max_retries => {
162142 attempt += 1 ;
163143 // Use server-specified delay (overrides exponential backoff)
164- otel_warn ! ( name: "OtlpRetry " , message = format!( "Retrying operation {:?} after server-specified throttling delay: {:?}" , operation_name , server_delay) ) ;
144+ otel_info ! ( name: "OtlpRetryThrottled " , operation = operation_name , error = format!( "{:?}" , err ) , delay = format! ( " {:?}", server_delay) ) ;
165145 runtime. delay ( server_delay) . await ;
166146 // Don't update exponential backoff delay for next attempt since server provided specific timing
167147 }
168148 _ => {
169149 // Max retries reached
170- otel_warn ! ( name: "OtlpRetry " , message = format!( "Operation {:?} failed after {} attempts: {:?} " , operation_name , attempt , err ) ) ;
150+ otel_warn ! ( name: "OtlpRetryExhausted " , operation = operation_name , error = format!( "{:?}" , err ) , attempts = attempt ) ;
171151 return Err ( err) ;
172152 }
173153 }
0 commit comments