From 74205aa7cf34d3d937450986c140a2b99cca9727 Mon Sep 17 00:00:00 2001 From: "zhongyang.wu" Date: Mon, 3 May 2021 22:22:33 -0400 Subject: [PATCH 1/4] feat: ignore links with invalid contexts. --- opentelemetry/src/trace/tracer.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/opentelemetry/src/trace/tracer.rs b/opentelemetry/src/trace/tracer.rs index 1350f14467..e729be031f 100644 --- a/opentelemetry/src/trace/tracer.rs +++ b/opentelemetry/src/trace/tracer.rs @@ -460,7 +460,12 @@ impl SpanBuilder { /// Assign links pub fn with_links(self, links: Vec) -> Self { SpanBuilder { - links: Some(links), + links: Some( + links + .into_iter() + .filter(|l| l.span_context().is_valid()) + .collect(), + ), ..self } } From e8f9be524c261fea5077d8158eaece7f6d8a99a7 Mon Sep 17 00:00:00 2001 From: "zhongyang.wu" Date: Mon, 3 May 2021 22:24:14 -0400 Subject: [PATCH 2/4] fix: shut_down_provider function is invalid. --- opentelemetry-datadog/README.md | 2 +- opentelemetry-jaeger/README.md | 6 +++--- opentelemetry-zipkin/README.md | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/opentelemetry-datadog/README.md b/opentelemetry-datadog/README.md index d1da8a92fb..a0323b55d7 100644 --- a/opentelemetry-datadog/README.md +++ b/opentelemetry-datadog/README.md @@ -82,7 +82,7 @@ to [`Datadog`]. // Traced app logic here... }); - opentelemetry::global::shut_down_provider(); + opentelemetry::global::shutdown_tracer_provider(); Ok(()) } diff --git a/opentelemetry-jaeger/README.md b/opentelemetry-jaeger/README.md index 5ad05f50f6..18c896f83e 100644 --- a/opentelemetry-jaeger/README.md +++ b/opentelemetry-jaeger/README.md @@ -53,7 +53,7 @@ fn main() -> Result<(), Box> { // Traced app logic here... }); - global::shut_down_provider(); // sending remaining spans + global::shutdown_tracer_provider(); // sending remaining spans Ok(()) } @@ -131,7 +131,7 @@ fn main() -> Result<(), Box> { // Traced app logic here... }); - opentelemetry::global::shut_down_provider(); // sending remaining spans + opentelemetry::global::shutdown_tracer_provider(); // sending remaining spans Ok(()) } @@ -175,7 +175,7 @@ fn main() -> Result<(), Box> { // Traced app logic here... }); - global::shut_down_provider(); // sending remaining spans + global::shutdown_tracer_provider(); // sending remaining spans Ok(()) } diff --git a/opentelemetry-zipkin/README.md b/opentelemetry-zipkin/README.md index c9af64e33c..bdc9028a32 100644 --- a/opentelemetry-zipkin/README.md +++ b/opentelemetry-zipkin/README.md @@ -53,7 +53,7 @@ fn main() -> Result<(), Box> { // Traced app logic here... }); - global::shut_down_provider(); + global::shutdown_tracer_provider(); Ok(()) } @@ -153,7 +153,7 @@ fn main() -> Result<(), Box> { // Traced app logic here... }); - global::shut_down_provider(); + global::shutdown_tracer_provider(); Ok(()) } From 0b328c1b109bba5c8de5724d219a0b0b1825bf51 Mon Sep 17 00:00:00 2001 From: "zhongyang.wu" Date: Mon, 3 May 2021 22:41:00 -0400 Subject: [PATCH 3/4] fix: tests. --- opentelemetry/src/sdk/trace/span.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/opentelemetry/src/sdk/trace/span.rs b/opentelemetry/src/sdk/trace/span.rs index 1fe65d636a..0830af6a93 100644 --- a/opentelemetry/src/sdk/trace/span.rs +++ b/opentelemetry/src/sdk/trace/span.rs @@ -523,8 +523,8 @@ mod tests { let mut link = Link::new( SpanContext::new( - TraceId::from_u128(0), - SpanId::from_u64(0), + TraceId::from_u128(12), + SpanId::from_u64(12), 0, false, Default::default(), From 638463a11883fc422be57f136597cd6af3b55fc4 Mon Sep 17 00:00:00 2001 From: "zhongyang.wu" Date: Mon, 3 May 2021 23:03:11 -0400 Subject: [PATCH 4/4] fix: use Vec::retain to avoid allocation. --- opentelemetry/src/trace/tracer.rs | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/opentelemetry/src/trace/tracer.rs b/opentelemetry/src/trace/tracer.rs index e729be031f..259d54716b 100644 --- a/opentelemetry/src/trace/tracer.rs +++ b/opentelemetry/src/trace/tracer.rs @@ -458,14 +458,10 @@ impl SpanBuilder { } /// Assign links - pub fn with_links(self, links: Vec) -> Self { + pub fn with_links(self, mut links: Vec) -> Self { + links.retain(|l| l.span_context().is_valid()); SpanBuilder { - links: Some( - links - .into_iter() - .filter(|l| l.span_context().is_valid()) - .collect(), - ), + links: Some(links), ..self } }