Skip to content

Commit 74adecc

Browse files
chore(otlp source): initialize map size and reduce intermediate clone (#1202)
1 parent 503f4bf commit 74adecc

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

lib/saluki-components/src/common/otlp/traces/transform.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ const DD_NAMESPACED_TO_APM_CONVENTIONS: &[(&str, &str)] = &[
9898
pub fn otel_span_to_dd_span(
9999
otel_span: &OtlpSpan, otel_resource: &Resource, instrumentation_scope: Option<&OtlpInstrumentationScope>,
100100
ignore_missing_fields: bool, compute_top_level_by_span_kind: bool, interner: &GenericMapInterner,
101-
string_builder: &mut StringBuilder<GenericMapInterner>, trace_id_hex: Option<MetaString>,
101+
string_builder: &mut StringBuilder<GenericMapInterner>, trace_id_hex: Option<&MetaString>,
102102
) -> DdSpan {
103103
let span_attributes = &otel_span.attributes;
104104
let resource_attributes = &otel_resource.attributes;
@@ -131,7 +131,7 @@ pub fn otel_span_to_dd_span(
131131

132132
if let Some(trace_id_hex) = trace_id_hex {
133133
if !trace_id_hex.is_empty() {
134-
meta.insert(MetaString::from_static(OTEL_TRACE_ID_META_KEY), trace_id_hex);
134+
meta.insert(MetaString::from_static(OTEL_TRACE_ID_META_KEY), trace_id_hex.clone());
135135
}
136136
} else if !otel_span.trace_id.is_empty() {
137137
meta.insert(

lib/saluki-components/src/common/otlp/traces/translator.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,6 +83,8 @@ impl OtlpTracesTranslator {
8383
let string_builder = &mut self.string_builder;
8484
let resource_tags = resource_attributes_to_tagset(&resource.attributes, string_builder).into_shared();
8585
let mut traces_by_id: FastHashMap<u64, TraceEntry> = FastHashMap::default();
86+
let trace_count_hint = resource_spans.scope_spans.len();
87+
traces_by_id.reserve(trace_count_hint);
8688

8789
for scope_spans in resource_spans.scope_spans {
8890
let scope = scope_spans.scope;
@@ -100,7 +102,6 @@ impl OtlpTracesTranslator {
100102
entry.trace_id_hex = trace_id_hex_meta(&span.trace_id);
101103
}
102104

103-
let trace_id_hex = entry.trace_id_hex.clone();
104105
let dd_span = otel_span_to_dd_span(
105106
&span,
106107
&resource,
@@ -109,7 +110,7 @@ impl OtlpTracesTranslator {
109110
compute_top_level,
110111
interner,
111112
string_builder,
112-
trace_id_hex,
113+
entry.trace_id_hex.as_ref(),
113114
);
114115

115116
// Track last-seen priority for this trace (overwrites previous values)

0 commit comments

Comments
 (0)