Skip to content

Commit af933a2

Browse files
committed
chore: wrap headers in arc to save cloning per batch
1 parent 1a1ac61 commit af933a2

File tree

4 files changed

+9
-9
lines changed

4 files changed

+9
-9
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ impl LogExporter for OtlpHttpClient {
7777
message: format!("Failed to build HTTP request: {e}"),
7878
})?;
7979

80-
for (k, v) in &retry_data.headers {
80+
for (k, v) in retry_data.headers.iter() {
8181
request.headers_mut().insert(k.clone(), v.clone());
8282
}
8383

@@ -147,7 +147,7 @@ impl LogExporter for OtlpHttpClient {
147147
.body(body.into())
148148
.map_err(|e| OTelSdkError::InternalFailure(e.to_string()))?;
149149

150-
for (k, v) in &self.headers {
150+
for (k, v) in self.headers.iter() {
151151
request.headers_mut().insert(k.clone(), v.clone());
152152
}
153153

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ impl MetricsClient for OtlpHttpClient {
7878
message: format!("Failed to build HTTP request: {e}"),
7979
})?;
8080

81-
for (k, v) in &retry_data.headers {
81+
for (k, v) in retry_data.headers.iter() {
8282
request.headers_mut().insert(k.clone(), v.clone());
8383
}
8484

@@ -151,7 +151,7 @@ impl MetricsClient for OtlpHttpClient {
151151
.body(body.into())
152152
.map_err(|e| OTelSdkError::InternalFailure(format!("{e:?}")))?;
153153

154-
for (k, v) in &self.headers {
154+
for (k, v) in self.headers.iter() {
155155
request.headers_mut().insert(k.clone(), v.clone());
156156
}
157157

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ pub(crate) fn classify_http_export_error(error: &HttpExportError) -> RetryErrorT
4949
#[derive(Debug)]
5050
pub(crate) struct HttpRetryData {
5151
pub body: Vec<u8>,
52-
pub headers: HashMap<HeaderName, HeaderValue>,
52+
pub headers: Arc<HashMap<HeaderName, HeaderValue>>,
5353
pub endpoint: String,
5454
}
5555

@@ -329,7 +329,7 @@ impl HttpExporterBuilder {
329329
pub(crate) struct OtlpHttpClient {
330330
client: Mutex<Option<Arc<dyn HttpClient>>>,
331331
collector_endpoint: Uri,
332-
headers: HashMap<HeaderName, HeaderValue>,
332+
headers: Arc<HashMap<HeaderName, HeaderValue>>,
333333
protocol: Protocol,
334334
_timeout: Duration,
335335
compression: Option<crate::Compression>,
@@ -383,7 +383,7 @@ impl OtlpHttpClient {
383383
OtlpHttpClient {
384384
client: Mutex::new(Some(client)),
385385
collector_endpoint,
386-
headers,
386+
headers: Arc::new(headers),
387387
protocol,
388388
_timeout: timeout,
389389
compression,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ impl SpanExporter for OtlpHttpClient {
7878
message: format!("Failed to build HTTP request: {e}"),
7979
})?;
8080

81-
for (k, v) in &retry_data.headers {
81+
for (k, v) in retry_data.headers.iter() {
8282
request.headers_mut().insert(k.clone(), v.clone());
8383
}
8484

@@ -155,7 +155,7 @@ impl SpanExporter for OtlpHttpClient {
155155
Err(e) => return Err(OTelSdkError::InternalFailure(e.to_string())),
156156
};
157157

158-
for (k, v) in &self.headers {
158+
for (k, v) in self.headers.iter() {
159159
request.headers_mut().insert(k.clone(), v.clone());
160160
}
161161

0 commit comments

Comments
 (0)