From e2e87b8ba0fd671e3b1af0d47ad4169ceeced307 Mon Sep 17 00:00:00 2001 From: Jonatan Ivanov Date: Mon, 13 May 2024 16:29:43 -0700 Subject: [PATCH 01/58] Add 1.3.x and remove 1.1.x from dependabot config Closes gh-707 --- .github/dependabot.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 82901ae6..beda0bc7 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -10,8 +10,8 @@ updates: directory: "/" schedule: interval: daily - target-branch: "1.1.x" - milestone: 14 + target-branch: "1.2.x" + milestone: 47 ignore: # only upgrade patch versions - dependency-name: "*" @@ -23,8 +23,8 @@ updates: directory: "/" schedule: interval: daily - target-branch: "1.2.x" - milestone: 47 + target-branch: "1.3.x" + milestone: 62 ignore: # only upgrade patch versions - dependency-name: "*" From 7cd693f65ec642d29d47724fa6df20648ebf3a9e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 11:31:29 +0200 Subject: [PATCH 02/58] Bump org.aspectj:aspectjweaver from 1.9.22 to 1.9.22.1 (#703) Bumps [org.aspectj:aspectjweaver](https://github.com/eclipse/org.aspectj) from 1.9.22 to 1.9.22.1. - [Release notes](https://github.com/eclipse/org.aspectj/releases) - [Commits](https://github.com/eclipse/org.aspectj/commits) --- updated-dependencies: - dependency-name: org.aspectj:aspectjweaver dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 41479184..775be381 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -27,7 +27,7 @@ reactorBom = "2022.0.18" asmForPlugins = "7.3.1" javaFormatForPlugins = "0.0.41" jsr305 = "3.0.2" -aspectjweaver = "1.9.22" +aspectjweaver = "1.9.22.1" spring = "5.3.34" [libraries] From d872c3d459955a57ac89dc335b723d4ab1a77af5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 11:39:40 +0200 Subject: [PATCH 03/58] Bump spring from 5.3.34 to 5.3.35 (#714) Bumps `spring` from 5.3.34 to 5.3.35. Updates `org.springframework:spring-core` from 5.3.34 to 5.3.35 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.34...v5.3.35) Updates `org.springframework:spring-context` from 5.3.34 to 5.3.35 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.34...v5.3.35) --- updated-dependencies: - dependency-name: org.springframework:spring-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework:spring-context dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 775be381..56b54ba6 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -28,7 +28,7 @@ asmForPlugins = "7.3.1" javaFormatForPlugins = "0.0.41" jsr305 = "3.0.2" aspectjweaver = "1.9.22.1" -spring = "5.3.34" +spring = "5.3.35" [libraries] aopAlliance = { module = "aopalliance:aopalliance", version.ref = "aopalliance" } From 6fd9850d5bf0bcfa435eeeda13311c7a75f6f8a7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 11:51:05 +0200 Subject: [PATCH 04/58] Bump io.projectreactor:reactor-bom from 2022.0.18 to 2022.0.19 (#709) Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2022.0.18 to 2022.0.19. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2022.0.18...2022.0.19) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 56b54ba6..04994a35 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ testcontainers = "1.19.8" braveBom = "6.0.3" bravePropagationW3c = "0.2.0" zipkinReporterBom = "3.4.0" -reactorBom = "2022.0.18" +reactorBom = "2022.0.19" asmForPlugins = "7.3.1" javaFormatForPlugins = "0.0.41" jsr305 = "3.0.2" From ba27961f605cd679759c4c33e975e67db430ea87 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 17:14:17 +0200 Subject: [PATCH 05/58] Bump com.gradle.develocity from 3.17.3 to 3.17.4 (#719) Bumps com.gradle.develocity from 3.17.3 to 3.17.4. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 286b6d66..5afbe6ca 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,7 +5,7 @@ pluginManagement { } plugins { - id 'com.gradle.develocity' version '3.17.3' + id 'com.gradle.develocity' version '3.17.4' id 'io.spring.ge.conventions' version '0.0.17' id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' } From 4b2a93e74e5b37aaebd7b3e10f92b291498095fd Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Mon, 20 May 2024 17:50:47 +0200 Subject: [PATCH 06/58] Added an option to have baggage through Observation API (#688) whenever a key-value matches a preconfigured baggage config and an Observation started a scope then automatically baggages will also be started fixes gh-455 --- docs/modules/ROOT/pages/api.adoc | 15 +++++ .../brave/bridge/BraveBaggageManager.java | 38 +++++++++-- .../tracing/brave/bridge/BraveTracer.java | 6 ++ .../tracing/brave/bridge/BaggageTests.java | 43 +++++++++++- .../otel/bridge/OtelBaggageManager.java | 29 ++++---- .../tracing/otel/bridge/OtelTracer.java | 8 ++- .../tracing/otel/bridge/BaggageTests.java | 66 +++++++++++++++++-- .../test/simple/SimpleBaggageManager.java | 30 +++++++-- .../tracing/test/simple/SimpleTracer.java | 8 ++- .../io/micrometer/tracing/BaggageManager.java | 12 +++- .../tracing/handler/RevertingScope.java | 61 ++++++++++++++++- .../handler/TracingObservationHandler.java | 21 +++++- 12 files changed, 298 insertions(+), 39 deletions(-) diff --git a/docs/modules/ROOT/pages/api.adoc b/docs/modules/ROOT/pages/api.adoc index bfcc48ad..6759a289 100644 --- a/docs/modules/ROOT/pages/api.adoc +++ b/docs/modules/ROOT/pages/api.adoc @@ -65,6 +65,21 @@ IMPORTANT: For Brave, remember to set up the `PropagationFactory` so that it con include::{include-java}/tracing/TracingApiTests.java[tags=baggage_brave_setup,indent=0] ----- +=== Baggage with Micrometer Observation API + +If you're using Micrometer Observation API, there's no notion of baggage. If you set up a `BaggageManager` to have the baggage fields configured, we will assume that when the Observation gets put in scope, whatever low and high cardinality keys are set on the Observation will be put in scope as baggage (assuming that their names match with the configuration on the `BaggageManager`). Below you can find example of such setup with OpenTelemetry `BaggageManager`. + +[source,java,subs=+attributes] +----- +include::{include-bridges-java}/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/BaggageTests.java[tags=baggageManager,indent=0] + +include::{include-bridges-java}/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/BaggageTests.java[tags=observationRegistrySetup,indent=0] + +include::{include-bridges-java}/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/BaggageTests.java[tags=observation,indent=0] + +include::{include-bridges-java}/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/BaggageTests.java[tags=observationScope,indent=0] +----- + == Aspect Oriented Programming Micrometer Tracing contains `@NewSpan`, `@ContinueSpan`, and `@SpanTag` annotations that frameworks can use to create or customize spans for either specific types of methods such as those serving web request endpoints or, more generally, to all methods. diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageManager.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageManager.java index c939a845..995eaead 100755 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageManager.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageManager.java @@ -1,5 +1,5 @@ /** - * Copyright 2022 the original author or authors. + * Copyright 2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,9 +22,7 @@ import io.micrometer.tracing.*; import java.io.Closeable; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; /** * Brave implementation of a {@link BaggageManager}. @@ -36,15 +34,28 @@ public class BraveBaggageManager implements Closeable, BaggageManager { private final List tagFields; + private final List remoteFields; + + private final List baggageFields; + @Nullable private Tracer tracer; /** * Create an instance of {@link BraveBaggageManager}. * @param tagFields fields of baggage keys that should become tags on a span + * @param remoteFields fields of baggage keys that should be propagated over the wire */ - public BraveBaggageManager(List tagFields) { + public BraveBaggageManager(List tagFields, List remoteFields) { this.tagFields = tagFields; + this.remoteFields = remoteFields; + this.baggageFields = baggageFields(tagFields, remoteFields); + } + + private static List baggageFields(List tagFields, List remoteFields) { + Set combined = new HashSet<>(tagFields); + combined.addAll(remoteFields); + return new ArrayList<>(combined); } /** @@ -53,6 +64,18 @@ public BraveBaggageManager(List tagFields) { */ public BraveBaggageManager() { this.tagFields = Collections.emptyList(); + this.remoteFields = Collections.emptyList(); + this.baggageFields = Collections.emptyList(); + } + + /** + * Create an instance of {@link BraveBaggageManager}. + * @param tagFields fields of baggage keys that should become tags on a span + */ + public BraveBaggageManager(List tagFields) { + this.tagFields = tagFields; + this.remoteFields = Collections.emptyList(); + this.baggageFields = new ArrayList<>(tagFields); } @Override @@ -136,4 +159,9 @@ void setTracer(Tracer tracer) { this.tracer = tracer; } + @Override + public List getBaggageFields() { + return this.baggageFields; + } + } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTracer.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTracer.java index 9d2bb9a5..793d46c3 100755 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTracer.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTracer.java @@ -18,6 +18,7 @@ import brave.propagation.TraceContextOrSamplingFlags; import io.micrometer.tracing.*; +import java.util.List; import java.util.Map; /** @@ -156,6 +157,11 @@ public CurrentTraceContext currentTraceContext() { return this.currentTraceContext; } + @Override + public List getBaggageFields() { + return this.braveBaggageManager.getBaggageFields(); + } + } class BraveSpanInScope implements Tracer.SpanInScope { diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BaggageTests.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BaggageTests.java index fb15cfea..c697ef99 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BaggageTests.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BaggageTests.java @@ -1,5 +1,5 @@ /** - * Copyright 2022 the original author or authors. + * Copyright 2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -27,13 +27,17 @@ import io.micrometer.common.util.internal.logging.InternalLogger; import io.micrometer.common.util.internal.logging.InternalLoggerFactory; import io.micrometer.context.ContextRegistry; +import io.micrometer.observation.Observation; +import io.micrometer.observation.Observation.Scope; import io.micrometer.observation.ObservationRegistry; import io.micrometer.observation.contextpropagation.ObservationThreadLocalAccessor; import io.micrometer.tracing.*; import io.micrometer.tracing.contextpropagation.ObservationAwareSpanThreadLocalAccessor; +import io.micrometer.tracing.handler.DefaultTracingObservationHandler; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import reactor.core.observability.micrometer.Micrometer; import reactor.core.publisher.Hooks; @@ -42,6 +46,7 @@ import reactor.core.scheduler.Schedulers; import java.time.Duration; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -61,6 +66,10 @@ class BaggageTests { public static final String TAG_VALUE = "tagValue"; + public static final String OBSERVATION_BAGGAGE_KEY = "observationKey"; + + public static final String OBSERVATION_BAGGAGE_VALUE = "observationValue"; + TestSpanHandler spanHandler = new TestSpanHandler(); StrictCurrentTraceContext braveCurrentTraceContext = StrictCurrentTraceContext.create(); @@ -73,6 +82,7 @@ class BaggageTests { .traceId128Bit(true) .propagationFactory(BaggagePropagation.newFactoryBuilder(B3Propagation.FACTORY) .add(BaggagePropagationConfig.SingleBaggageField.remote(BaggageField.create(KEY_1))) + .add(BaggagePropagationConfig.SingleBaggageField.remote(BaggageField.create(OBSERVATION_BAGGAGE_KEY))) .add(BaggagePropagationConfig.SingleBaggageField.local(BaggageField.create(TAG_KEY))) .build()) .sampler(Sampler.ALWAYS_SAMPLE) @@ -84,10 +94,15 @@ class BaggageTests { BravePropagator propagator = new BravePropagator(tracing); Tracer tracer = new BraveTracer(this.braveTracer, this.bridgeContext, - new BraveBaggageManager(Collections.singletonList(TAG_KEY))); + new BraveBaggageManager(Collections.singletonList(TAG_KEY), Arrays.asList(KEY_1, OBSERVATION_BAGGAGE_KEY))); ObservationRegistry observationRegistry = ObservationThreadLocalAccessor.getInstance().getObservationRegistry(); + @BeforeEach + void setupHandler() { + observationRegistry.observationConfig().observationHandler(new DefaultTracingObservationHandler(tracer)); + } + @AfterEach void cleanup() { tracing.close(); @@ -258,6 +273,30 @@ void baggageTagKey() { then(mutableSpan.tags().get(TAG_KEY)).isEqualTo(TAG_VALUE); } + @Test + void baggageWithObservationApiWithRemoteFields() { + Observation observation = Observation.start("foo", observationRegistry) + .lowCardinalityKeyValue(KEY_1, TAG_VALUE) + .highCardinalityKeyValue(OBSERVATION_BAGGAGE_KEY, OBSERVATION_BAGGAGE_VALUE); + then(tracer.getBaggage(KEY_1).get()).isNull(); + then(tracer.getBaggage(OBSERVATION_BAGGAGE_KEY).get()).isNull(); + + try (Scope scope = observation.openScope()) { + then(tracer.getBaggage(KEY_1).get()).isEqualTo(TAG_VALUE); + then(tracer.getBaggage(OBSERVATION_BAGGAGE_KEY).get()).isEqualTo(OBSERVATION_BAGGAGE_VALUE); + } + + then(tracer.currentSpan()).isNull(); + then(tracer.getBaggage(KEY_1).get()).isNull(); + then(tracer.getBaggage(OBSERVATION_BAGGAGE_KEY).get()).isNull(); + observation.stop(); + + then(spanHandler.spans()).hasSize(1); + MutableSpan mutableSpan = spanHandler.spans().get(0); + then(mutableSpan.tags().get(KEY_1)).isEqualTo(TAG_VALUE); + then(mutableSpan.tags().get(OBSERVATION_BAGGAGE_KEY)).isEqualTo(OBSERVATION_BAGGAGE_VALUE); + } + @Test void baggageTagKeyWithLegacyApi() { ScopedSpan span = this.tracer.startScopedSpan("call1"); diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageManager.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageManager.java index aabceb9d..7ff0e637 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageManager.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageManager.java @@ -15,18 +15,6 @@ */ package io.micrometer.tracing.otel.bridge; -import java.util.ArrayDeque; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Deque; -import java.util.HashMap; -import java.util.Iterator; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; -import java.util.Objects; -import java.util.function.BiConsumer; - import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.BaggageInScope; import io.micrometer.tracing.BaggageManager; @@ -38,6 +26,9 @@ import io.opentelemetry.api.baggage.BaggageEntryMetadata; import io.opentelemetry.context.Context; +import java.util.*; +import java.util.function.BiConsumer; + import static java.util.Collections.unmodifiableCollection; import static java.util.Collections.unmodifiableMap; import static java.util.function.Function.identity; @@ -60,6 +51,8 @@ public class OtelBaggageManager implements BaggageManager { private final List remoteFields; + private final List baggageFields; + private final List tagFields; /** @@ -73,6 +66,13 @@ public OtelBaggageManager(CurrentTraceContext currentTraceContext, List this.currentTraceContext = currentTraceContext; this.remoteFields = remoteFields; this.tagFields = tagFields; + this.baggageFields = baggageFields(tagFields, remoteFields); + } + + private static List baggageFields(List tagFields, List remoteFields) { + Set combined = new HashSet<>(tagFields); + combined.addAll(remoteFields); + return new ArrayList<>(combined); } @Override @@ -213,6 +213,11 @@ private String propagationString(boolean remoteField) { return propagation; } + @Override + public List getBaggageFields() { + return this.remoteFields; + } + } class CompositeBaggage implements io.opentelemetry.api.baggage.Baggage { diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTracer.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTracer.java index 4d457ff5..a57357f5 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTracer.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTracer.java @@ -1,5 +1,5 @@ /** - * Copyright 2022 the original author or authors. + * Copyright 2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -19,6 +19,7 @@ import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; +import java.util.List; import java.util.Map; /** @@ -196,6 +197,11 @@ public BaggageInScope createBaggageInScope(TraceContext traceContext, String nam return this.otelBaggageManager.createBaggageInScope(traceContext, name, value); } + @Override + public List getBaggageFields() { + return this.otelBaggageManager.getBaggageFields(); + } + /** * Publisher of events. */ diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/BaggageTests.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/BaggageTests.java index 4f45500b..f4d033c4 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/BaggageTests.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/BaggageTests.java @@ -1,12 +1,12 @@ /** - * Copyright 2022 the original author or authors. - *

+ * Copyright 2024 the original author or authors. + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at - *

+ * * https://www.apache.org/licenses/LICENSE-2.0 - *

+ * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. @@ -18,6 +18,8 @@ import io.micrometer.common.util.internal.logging.InternalLogger; import io.micrometer.common.util.internal.logging.InternalLoggerFactory; import io.micrometer.context.ContextRegistry; +import io.micrometer.observation.Observation; +import io.micrometer.observation.Observation.Scope; import io.micrometer.observation.ObservationRegistry; import io.micrometer.observation.contextpropagation.ObservationThreadLocalAccessor; import io.micrometer.tracing.BaggageInScope; @@ -25,6 +27,7 @@ import io.micrometer.tracing.Span; import io.micrometer.tracing.Tracer; import io.micrometer.tracing.contextpropagation.ObservationAwareSpanThreadLocalAccessor; +import io.micrometer.tracing.handler.DefaultTracingObservationHandler; import io.micrometer.tracing.otel.propagation.BaggageTextMapPropagator; import io.opentelemetry.api.baggage.propagation.W3CBaggagePropagator; import io.opentelemetry.api.common.AttributeKey; @@ -38,6 +41,7 @@ import io.opentelemetry.sdk.trace.export.SimpleSpanProcessor; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.AfterAll; +import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import reactor.core.observability.micrometer.Micrometer; import reactor.core.publisher.Hooks; @@ -46,6 +50,7 @@ import reactor.core.scheduler.Schedulers; import java.time.Duration; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -69,6 +74,10 @@ class BaggageTests { public static final String TAG_VALUE = "tagValue"; + public static final String OBSERVATION_BAGGAGE_KEY = "observationKey"; + + public static final String OBSERVATION_BAGGAGE_VALUE = "observationValue"; + ArrayListSpanProcessor spanExporter = new ArrayListSpanProcessor(); SdkTracerProvider sdkTracerProvider = SdkTracerProvider.builder() @@ -85,12 +94,16 @@ class BaggageTests { OtelCurrentTraceContext otelCurrentTraceContext = new OtelCurrentTraceContext(); + // tag::baggageManager[] + // There will be 3 baggage keys in total, 2 for remote fields and 1 as tag field OtelBaggageManager otelBaggageManager = new OtelBaggageManager(otelCurrentTraceContext, - Collections.singletonList(KEY_1), Collections.singletonList(TAG_KEY)); + Arrays.asList(KEY_1, OBSERVATION_BAGGAGE_KEY), Collections.singletonList(TAG_KEY)); + + // end::baggageManager[] ContextPropagators contextPropagators = ContextPropagators .create(TextMapPropagator.composite(W3CBaggagePropagator.getInstance(), W3CTraceContextPropagator.getInstance(), - new BaggageTextMapPropagator(Collections.singletonList(KEY_1), otelBaggageManager))); + new BaggageTextMapPropagator(Arrays.asList(KEY_1, OBSERVATION_BAGGAGE_KEY), otelBaggageManager))); OtelPropagator propagator = new OtelPropagator(contextPropagators, otelTracer); @@ -99,6 +112,14 @@ class BaggageTests { ObservationRegistry observationRegistry = ObservationThreadLocalAccessor.getInstance().getObservationRegistry(); + @BeforeEach + void setupHandler() { + // tag::observationRegistrySetup[] + // For automated baggage scope creation the tracing handler is required + observationRegistry.observationConfig().observationHandler(new DefaultTracingObservationHandler(tracer)); + // end::observationRegistrySetup[] + } + @Test void canSetAndGetBaggage() { // GIVEN @@ -238,6 +259,39 @@ void baggageTagKey() { then(spanData.getAttributes().get(AttributeKey.stringKey(TAG_KEY))).isEqualTo(TAG_VALUE); } + @Test + void baggageWithObservationApiWithRemoteFields() { + // tag::observation[] + // An observation with low and high cardinality keys + // with key names equal to baggage key entries set on the baggage manager + Observation observation = Observation.start("foo", observationRegistry) + .lowCardinalityKeyValue(KEY_1, TAG_VALUE) + .highCardinalityKeyValue(OBSERVATION_BAGGAGE_KEY, OBSERVATION_BAGGAGE_VALUE); + // end::observation[] + then(tracer.getBaggage(KEY_1).get()).isNull(); + then(tracer.getBaggage(OBSERVATION_BAGGAGE_KEY).get()).isNull(); + + // tag::observationScope[] + // There is no baggage here + try (Scope scope = observation.openScope()) { + // Baggage here will be automatically put in scope + then(tracer.getBaggage(KEY_1).get()).isEqualTo(TAG_VALUE); + then(tracer.getBaggage(OBSERVATION_BAGGAGE_KEY).get()).isEqualTo(OBSERVATION_BAGGAGE_VALUE); + } + // There is no baggage here + // end::observationScope[] + then(tracer.currentSpan()).isNull(); + then(tracer.getBaggage(KEY_1).get()).isNull(); + then(tracer.getBaggage(OBSERVATION_BAGGAGE_KEY).get()).isNull(); + observation.stop(); + + then(spanExporter.spans()).hasSize(1); + SpanData spanData = spanExporter.spans().poll(); + then(spanData.getAttributes().get(AttributeKey.stringKey(KEY_1))).isEqualTo(TAG_VALUE); + then(spanData.getAttributes().get(AttributeKey.stringKey(OBSERVATION_BAGGAGE_KEY))) + .isEqualTo(OBSERVATION_BAGGAGE_VALUE); + } + @Test void baggageTagKeyWithLegacyApi() { ScopedSpan span = this.tracer.startScopedSpan("call1"); diff --git a/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleBaggageManager.java b/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleBaggageManager.java index eb0a689e..0956a696 100644 --- a/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleBaggageManager.java +++ b/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleBaggageManager.java @@ -1,5 +1,5 @@ /** - * Copyright 2023 the original author or authors. + * Copyright 2024 the original author or authors. *

* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -19,10 +19,7 @@ import io.micrometer.tracing.BaggageManager; import io.micrometer.tracing.TraceContext; -import java.util.Collections; -import java.util.HashSet; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @@ -39,12 +36,25 @@ public class SimpleBaggageManager implements BaggageManager { private final SimpleTracer simpleTracer; + private final List remoteFields; + /** * Creates a new instance of {@link SimpleBaggageManager}. * @param simpleTracer simple tracer */ public SimpleBaggageManager(SimpleTracer simpleTracer) { this.simpleTracer = simpleTracer; + this.remoteFields = Collections.emptyList(); + } + + /** + * Creates a new instance of {@link SimpleBaggageManager}. + * @param simpleTracer simple tracer + * @param remoteFields fields of baggage keys that should be propagated over the wire + */ + public SimpleBaggageManager(SimpleTracer simpleTracer, List remoteFields) { + this.simpleTracer = simpleTracer; + this.remoteFields = remoteFields; } @Override @@ -136,4 +146,14 @@ public BaggageInScope createBaggageInScope(TraceContext traceContext, String nam return createSimpleBaggage(name).makeCurrent(traceContext, value); } + @Override + public Map getAllBaggage(TraceContext traceContext) { + return getAllBaggageForCtx(traceContext); + } + + @Override + public List getBaggageFields() { + return this.remoteFields; + } + } diff --git a/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleTracer.java b/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleTracer.java index 9d1544eb..d9b1a58a 100644 --- a/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleTracer.java +++ b/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleTracer.java @@ -1,5 +1,5 @@ /** - * Copyright 2023 the original author or authors. + * Copyright 2024 the original author or authors. *

* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at @@ -17,6 +17,7 @@ import java.util.Collections; import java.util.Deque; +import java.util.List; import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.LinkedBlockingDeque; @@ -183,6 +184,11 @@ public BaggageInScope createBaggageInScope(TraceContext traceContext, String nam return this.simpleBaggageManager.createBaggageInScope(traceContext, name, value); } + @Override + public List getBaggageFields() { + return this.simpleBaggageManager.getBaggageFields(); + } + /** * Created spans. * @return all created spans diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/BaggageManager.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/BaggageManager.java index a6c7b399..cb1988e7 100644 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/BaggageManager.java +++ b/micrometer-tracing/src/main/java/io/micrometer/tracing/BaggageManager.java @@ -1,5 +1,5 @@ /** - * Copyright 2022 the original author or authors. + * Copyright 2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -18,6 +18,7 @@ import io.micrometer.common.lang.Nullable; import java.util.Collections; +import java.util.List; import java.util.Map; /** @@ -145,4 +146,13 @@ default BaggageInScope createBaggageInScope(TraceContext traceContext, String na return createBaggage(name).makeCurrent(traceContext, value); } + /** + * Returns all names of baggage fields. + * @return baggage fields + * @since 1.3.0 + */ + default List getBaggageFields() { + return Collections.emptyList(); + } + } diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/handler/RevertingScope.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/handler/RevertingScope.java index 44f8a79a..63decd2a 100644 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/handler/RevertingScope.java +++ b/micrometer-tracing/src/main/java/io/micrometer/tracing/handler/RevertingScope.java @@ -1,5 +1,5 @@ /** - * Copyright 2023 the original author or authors. + * Copyright 2024 the original author or authors. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -15,11 +15,17 @@ */ package io.micrometer.tracing.handler; +import io.micrometer.common.KeyValue; +import io.micrometer.common.lang.Nullable; +import io.micrometer.observation.Observation.ContextView; +import io.micrometer.tracing.BaggageInScope; import io.micrometer.tracing.CurrentTraceContext; import io.micrometer.tracing.CurrentTraceContext.Scope; +import io.micrometer.tracing.TraceContext; +import io.micrometer.tracing.Tracer; import io.micrometer.tracing.handler.TracingObservationHandler.TracingContext; -import java.util.Objects; +import java.util.*; class RevertingScope implements CurrentTraceContext.Scope { @@ -29,7 +35,7 @@ class RevertingScope implements CurrentTraceContext.Scope { private final CurrentTraceContext.Scope previousScope; - RevertingScope(TracingContext tracingContext, Scope currentScope, Scope previousScope) { + RevertingScope(TracingContext tracingContext, Scope currentScope, @Nullable Scope previousScope) { this.tracingContext = tracingContext; this.currentScope = currentScope; this.previousScope = previousScope; @@ -64,4 +70,53 @@ public int hashCode() { return Objects.hash(tracingContext, currentScope, previousScope); } + static RevertingScope maybeWithBaggage(Tracer tracer, TracingContext tracingContext, + @Nullable TraceContext newContext, RevertingScope revertingScopeForSpan, + Scope previousScopeOnThisObservation) { + RevertingScope revertingScope = revertingScopeForSpan; + ContextView context = tracingContext.getContext(); + if (context == null) { + return revertingScope; + } + Collection baggageKeyValues = matchingBaggageKeyValues(tracer, context); + if (baggageKeyValues.isEmpty()) { + return revertingScope; + } + ArrayDeque scopes = startBaggageScopes(tracer, newContext, baggageKeyValues); + return new RevertingScope(tracingContext, () -> { + for (BaggageInScope scope : scopes) { + scope.close(); + } + revertingScope.close(); + }, previousScopeOnThisObservation); + } + + private static ArrayDeque startBaggageScopes(Tracer tracer, TraceContext newContext, + Collection baggageKeyValues) { + ArrayDeque scopes = new ArrayDeque<>(); + for (KeyValue keyValue : baggageKeyValues) { + if (newContext != null) { + scopes.addFirst(tracer.createBaggageInScope(newContext, keyValue.getKey(), keyValue.getValue())); + } + else { + scopes.addFirst(tracer.createBaggageInScope(keyValue.getKey(), keyValue.getValue())); + } + } + return scopes; + } + + private static Collection matchingBaggageKeyValues(Tracer tracer, ContextView context) { + Set lowerCaseRemoteFields = new HashSet<>(); + for (String remoteField : tracer.getBaggageFields()) { + lowerCaseRemoteFields.add(remoteField.toLowerCase()); + } + Collection baggageKeyValues = new ArrayList<>(); + for (KeyValue keyValue : context.getAllKeyValues()) { + if (lowerCaseRemoteFields.contains(keyValue.getKey().toLowerCase())) { + baggageKeyValues.add(keyValue); + } + } + return baggageKeyValues; + } + } diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/handler/TracingObservationHandler.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/handler/TracingObservationHandler.java index ba55c64e..00e3a9e2 100755 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/handler/TracingObservationHandler.java +++ b/micrometer-tracing/src/main/java/io/micrometer/tracing/handler/TracingObservationHandler.java @@ -96,8 +96,10 @@ default void setMaybeScopeOnTracingContext(TracingContext tracingContext, @Nulla TraceContext newContext = newSpan != null ? newSpan.context() : null; CurrentTraceContext.Scope scope = getTracer().currentTraceContext().maybeScope(newContext); CurrentTraceContext.Scope previousScopeOnThisObservation = tracingContext.getScope(); - tracingContext.setSpanAndScope(spanFromThisObservation, - new RevertingScope(tracingContext, scope, previousScopeOnThisObservation)); + RevertingScope revertingScope = new RevertingScope(tracingContext, scope, previousScopeOnThisObservation); + revertingScope = RevertingScope.maybeWithBaggage(getTracer(), tracingContext, newContext, revertingScope, + previousScopeOnThisObservation); + tracingContext.setSpanAndScope(spanFromThisObservation, revertingScope); } @Override @@ -182,7 +184,9 @@ else if (currentSpan != null && !currentSpan.equals(spanFromParentObservation)) * @return tracing context */ default TracingContext getTracingContext(T context) { - return context.computeIfAbsent(TracingContext.class, clazz -> new TracingContext()); + TracingContext tracingContext = context.computeIfAbsent(TracingContext.class, clazz -> new TracingContext()); + tracingContext.setContext(context); + return tracingContext; } @Override @@ -232,6 +236,8 @@ class TracingContext implements AutoCloseable { private Map scopes = new ConcurrentHashMap<>(); + private Observation.ContextView context; + /** * Returns the span. * @return span @@ -315,6 +321,15 @@ private String traceContextFromSpan() { return "null"; } + void setContext(Observation.ContextView context) { + this.context = context; + } + + @Nullable + Observation.ContextView getContext() { + return this.context; + } + } } From 6add2d64793bb25ae9aebfa86feafbc02bbd35d1 Mon Sep 17 00:00:00 2001 From: Jonatan Ivanov Date: Mon, 20 May 2024 09:43:21 -0700 Subject: [PATCH 07/58] Apply github-actions updates on main GitHub uses the default (main) branch anyways --- .github/dependabot.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index beda0bc7..7b44940d 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -2,7 +2,7 @@ version: 2 updates: - package-ecosystem: "github-actions" directory: "/" - target-branch: "1.1.x" # oldest OSS supported branch + target-branch: "main" schedule: interval: "weekly" # Non-build dependencies; target every supported branch From 835453f43865c71600418c7176b6b71442bea5c4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 20 May 2024 09:47:35 -0700 Subject: [PATCH 08/58] Bump actions/checkout from 4.1.5 to 4.1.6 (#717) Bumps [actions/checkout](https://github.com/actions/checkout) from 4.1.5 to 4.1.6. - [Release notes](https://github.com/actions/checkout/releases) - [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md) - [Commits](https://github.com/actions/checkout/compare/v4.1.5...v4.1.6) --- updated-dependencies: - dependency-name: actions/checkout dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/gradle-wrapper-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index cc9a18a8..aee9006f 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -6,5 +6,5 @@ jobs: name: "Validation" runs-on: ubuntu-latest steps: - - uses: actions/checkout@v4.1.5 + - uses: actions/checkout@v4.1.6 - uses: gradle/actions/wrapper-validation@v3 From 37216d651a08d3106e4e04993add505ade63fe92 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 21 May 2024 16:46:47 +0200 Subject: [PATCH 09/58] --- (#723) updated-dependencies: - dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 04994a35..9598a9bc 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ junit = "5.10.2" javaxServlet="4.0.1" jmh="1.37" jakartaWeb="9.1.0" -otelInstrumentation="1.33.2-alpha" +otelInstrumentation="1.33.3-alpha" aopalliance="1.0" zipkinAws="1.2.4" otelBom="1.38.0" From f66247758f811fd5626550350ae1ba373786eace Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 24 May 2024 08:42:51 +0200 Subject: [PATCH 10/58] Bump spring from 5.3.35 to 5.3.36 (#726) Bumps `spring` from 5.3.35 to 5.3.36. Updates `org.springframework:spring-core` from 5.3.35 to 5.3.36 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.35...v5.3.36) Updates `org.springframework:spring-context` from 5.3.35 to 5.3.36 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.35...v5.3.36) --- updated-dependencies: - dependency-name: org.springframework:spring-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework:spring-context dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9598a9bc..2292d201 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -28,7 +28,7 @@ asmForPlugins = "7.3.1" javaFormatForPlugins = "0.0.41" jsr305 = "3.0.2" aspectjweaver = "1.9.22.1" -spring = "5.3.35" +spring = "5.3.36" [libraries] aopAlliance = { module = "aopalliance:aopalliance", version.ref = "aopalliance" } From b730a6771b2b3e9444b77ba986502c6d2d0e31e6 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Mon, 27 May 2024 12:26:05 +0200 Subject: [PATCH 11/58] Removes deprecated HTTP abstraction fixes gh-372 --- .../brave/bridge/BraveHttpClientHandler.java | 79 ------- .../brave/bridge/BraveHttpClientRequest.java | 118 ---------- .../brave/bridge/BraveHttpClientResponse.java | 120 ---------- .../brave/bridge/BraveHttpRequest.java | 84 ------- .../brave/bridge/BraveHttpRequestParser.java | 66 ------ .../brave/bridge/BraveHttpResponse.java | 94 -------- .../brave/bridge/BraveHttpResponseParser.java | 65 ------ .../brave/bridge/BraveHttpServerHandler.java | 57 ----- .../brave/bridge/BraveHttpServerRequest.java | 162 ------------- .../brave/bridge/BraveHttpServerResponse.java | 131 ----------- .../brave/bridge/BraveSamplerFunction.java | 63 ----- .../brave/bridge/DeprecatedClassLogger.java | 34 --- .../DefaultHttpClientAttributesGetter.java | 187 --------------- .../DefaultHttpServerAttributesExtractor.java | 219 ------------------ .../otel/bridge/DeprecatedClassLogger.java | 34 --- ...tpRequestNetClientAttributesExtractor.java | 51 ---- ...tpRequestNetServerAttributesExtractor.java | 77 ------ .../otel/bridge/OtelHttpClientHandler.java | 171 -------------- .../otel/bridge/OtelHttpServerHandler.java | 145 ------------ .../otel/bridge/PathAttributeExtractor.java | 56 ----- .../otel/bridge/SkipPatternSampler.java | 55 ----- .../tracing/test/reporter/BuildingBlocks.java | 18 -- .../reporter/inmemory/InMemoryBraveSetup.java | 73 +----- .../reporter/inmemory/InMemoryOtelSetup.java | 72 +----- .../wavefront/WavefrontBraveSetup.java | 70 +----- .../wavefront/WavefrontOtelSetup.java | 70 +----- .../reporter/zipkin/ZipkinBraveSetup.java | 74 +----- .../test/reporter/zipkin/ZipkinOtelSetup.java | 73 +----- .../test/simple/SimpleHttpClientHandler.java | 69 ------ .../test/simple/SimpleHttpServerHandler.java | 63 ----- .../micrometer/tracing/SamplerFunction.java | 127 ---------- .../tracing/http/HttpClientHandler.java | 64 ----- .../tracing/http/HttpClientRequest.java | 45 ---- .../tracing/http/HttpClientResponse.java | 50 ---- .../micrometer/tracing/http/HttpRequest.java | 89 ------- .../tracing/http/HttpRequestParser.java | 43 ---- .../micrometer/tracing/http/HttpResponse.java | 77 ------ .../tracing/http/HttpResponseParser.java | 43 ---- .../tracing/http/HttpServerHandler.java | 51 ---- .../tracing/http/HttpServerRequest.java | 56 ----- .../tracing/http/HttpServerResponse.java | 50 ---- .../io/micrometer/tracing/http/Request.java | 53 ----- .../io/micrometer/tracing/http/Response.java | 68 ------ .../micrometer/tracing/http/package-info.java | 22 -- 44 files changed, 11 insertions(+), 3477 deletions(-) delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientHandler.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientRequest.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientResponse.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpRequest.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpRequestParser.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpResponse.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpResponseParser.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerHandler.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerRequest.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerResponse.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveSamplerFunction.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/DeprecatedClassLogger.java delete mode 100644 micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DefaultHttpClientAttributesGetter.java delete mode 100644 micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DefaultHttpServerAttributesExtractor.java delete mode 100755 micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DeprecatedClassLogger.java delete mode 100644 micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/HttpRequestNetClientAttributesExtractor.java delete mode 100644 micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/HttpRequestNetServerAttributesExtractor.java delete mode 100644 micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelHttpClientHandler.java delete mode 100644 micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelHttpServerHandler.java delete mode 100644 micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/PathAttributeExtractor.java delete mode 100644 micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/SkipPatternSampler.java delete mode 100644 micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleHttpClientHandler.java delete mode 100644 micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleHttpServerHandler.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/SamplerFunction.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientHandler.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientRequest.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientResponse.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpRequest.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpRequestParser.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpResponse.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpResponseParser.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerHandler.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerRequest.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerResponse.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/Request.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/Response.java delete mode 100644 micrometer-tracing/src/main/java/io/micrometer/tracing/http/package-info.java diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientHandler.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientHandler.java deleted file mode 100755 index c7cc18ba..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientHandler.java +++ /dev/null @@ -1,79 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.common.util.internal.logging.InternalLogger; -import io.micrometer.common.util.internal.logging.InternalLoggerFactory; -import io.micrometer.tracing.http.HttpClientRequest; -import io.micrometer.tracing.http.HttpClientResponse; -import io.micrometer.tracing.Span; -import io.micrometer.tracing.TraceContext; -import io.micrometer.tracing.http.HttpClientHandler; - -/** - * Brave implementation of a {@link HttpClientHandler}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class BraveHttpClientHandler implements HttpClientHandler { - - private static final InternalLogger log = InternalLoggerFactory.getInstance(BraveHttpClientHandler.class); - - final brave.http.HttpClientHandler delegate; - - /** - * Creates a new instance of {@link BraveHttpClientHandler}. - * @param delegate Brave version of a {@link HttpClientHandler} - */ - public BraveHttpClientHandler( - brave.http.HttpClientHandler delegate) { - this.delegate = delegate; - DeprecatedClassLogger.logWarning(getClass()); - } - - @Override - public Span handleSend(HttpClientRequest request) { - DeprecatedClassLogger.logWarning(getClass()); - return BraveSpan.fromBrave(this.delegate.handleSend(BraveHttpClientRequest.toBrave(request))); - } - - @Override - public Span handleSend(HttpClientRequest request, TraceContext parent) { - DeprecatedClassLogger.logWarning(getClass()); - brave.Span span = this.delegate.handleSendWithParent(BraveHttpClientRequest.toBrave(request), - BraveTraceContext.toBrave(parent)); - if (!span.isNoop()) { - span.remoteIpAndPort(request.remoteIp(), request.remotePort()); - } - return BraveSpan.fromBrave(span); - } - - @Override - public void handleReceive(HttpClientResponse response, Span span) { - DeprecatedClassLogger.logWarning(getClass()); - if (response == null) { - if (log.isDebugEnabled()) { - log.debug("Response is null, will not handle receiving of span [" + span + "]"); - } - return; - } - this.delegate.handleReceive(BraveHttpClientResponse.toBrave(response), BraveSpan.toBrave(span)); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientRequest.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientRequest.java deleted file mode 100755 index b7fadbf1..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientRequest.java +++ /dev/null @@ -1,118 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.tracing.http.HttpClientRequest; - -import java.util.Collection; -import java.util.Collections; - -/** - * Brave implementation of a {@link HttpClientRequest}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -class BraveHttpClientRequest implements HttpClientRequest { - - final brave.http.HttpClientRequest delegate; - - BraveHttpClientRequest(brave.http.HttpClientRequest delegate) { - this.delegate = delegate; - } - - static brave.http.HttpClientRequest toBrave(HttpClientRequest httpClientRequest) { - if (httpClientRequest instanceof BraveHttpClientRequest) { - return ((BraveHttpClientRequest) httpClientRequest).delegate; - } - return new brave.http.HttpClientRequest() { - - @Override - public Object unwrap() { - return httpClientRequest.unwrap(); - } - - @Override - public String method() { - return httpClientRequest.method(); - } - - @Override - public String path() { - return httpClientRequest.path(); - } - - @Override - public String url() { - return httpClientRequest.url(); - } - - @Override - public String header(String name) { - return httpClientRequest.header(name); - } - - @Override - public void header(String name, String value) { - httpClientRequest.header(name, value); - } - }; - } - - @Override - public String method() { - return this.delegate.method(); - } - - @Override - public String route() { - return this.delegate.route(); - } - - @Override - public Object unwrap() { - return this.delegate.unwrap(); - } - - @Override - public Collection headerNames() { - // this is unused by Brave - return Collections.emptyList(); - } - - @Override - public void header(String name, String value) { - this.delegate.header(name, value); - } - - @Override - public String path() { - return this.delegate.path(); - } - - @Override - public String url() { - return this.delegate.url(); - } - - @Override - public String header(String name) { - return this.delegate.header(name); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientResponse.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientResponse.java deleted file mode 100755 index df513ee5..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpClientResponse.java +++ /dev/null @@ -1,120 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.tracing.http.HttpClientRequest; -import io.micrometer.tracing.http.HttpClientResponse; - -import java.util.Collection; -import java.util.Collections; - -/** - * Brave implementation of a {@link HttpClientResponse}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -class BraveHttpClientResponse implements HttpClientResponse { - - final brave.http.HttpClientResponse delegate; - - BraveHttpClientResponse(brave.http.HttpClientResponse delegate) { - this.delegate = delegate; - } - - static brave.http.HttpClientResponse toBrave(HttpClientResponse httpClientResponse) { - if (httpClientResponse == null) { - return null; - } - else if (httpClientResponse instanceof BraveHttpClientResponse) { - return ((BraveHttpClientResponse) httpClientResponse).delegate; - } - return new brave.http.HttpClientResponse() { - @Override - public int statusCode() { - return httpClientResponse.statusCode(); - } - - @Override - public Object unwrap() { - return httpClientResponse.unwrap(); - } - - @Override - public brave.http.HttpClientRequest request() { - return BraveHttpClientRequest.toBrave(httpClientResponse.request()); - } - - @Override - public Throwable error() { - return httpClientResponse.error(); - } - - @Override - public String method() { - return httpClientResponse.method(); - } - - @Override - public String route() { - return httpClientResponse.route(); - } - }; - } - - @Override - public String method() { - return this.delegate.method(); - } - - @Override - public String route() { - return this.delegate.route(); - } - - @Override - public int statusCode() { - return this.delegate.statusCode(); - } - - @Override - public Object unwrap() { - return this.delegate.unwrap(); - } - - @Override - public Collection headerNames() { - // this is unused by Brave - return Collections.emptyList(); - } - - @Override - public HttpClientRequest request() { - brave.http.HttpClientRequest request = this.delegate.request(); - if (request == null) { - return null; - } - return new BraveHttpClientRequest(request); - } - - @Override - public Throwable error() { - return this.delegate.error(); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpRequest.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpRequest.java deleted file mode 100755 index b8b41134..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpRequest.java +++ /dev/null @@ -1,84 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.observation.transport.Kind; -import io.micrometer.tracing.http.HttpRequest; - -import java.util.Collection; -import java.util.Collections; - -/** - * Brave implementation of a {@link HttpRequest}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -class BraveHttpRequest implements HttpRequest { - - final brave.http.HttpRequest delegate; - - BraveHttpRequest(brave.http.HttpRequest delegate) { - this.delegate = delegate; - } - - static brave.http.HttpRequest toBrave(HttpRequest httpRequest) { - return ((BraveHttpRequest) httpRequest).delegate; - } - - static HttpRequest fromBrave(brave.http.HttpRequest httpRequest) { - return new BraveHttpRequest(httpRequest); - } - - @Override - public String method() { - return this.delegate.method(); - } - - @Override - public String path() { - return this.delegate.path(); - } - - @Override - public String url() { - return this.delegate.url(); - } - - @Override - public String header(String name) { - return this.delegate.header(name); - } - - @Override - public Collection headerNames() { - // this is unused by Brave - return Collections.emptyList(); - } - - @Override - public Kind kind() { - return Kind.valueOf(this.delegate.spanKind().name()); - } - - @Override - public Object unwrap() { - return this.delegate.unwrap(); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpRequestParser.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpRequestParser.java deleted file mode 100755 index b345a849..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpRequestParser.java +++ /dev/null @@ -1,66 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.tracing.SpanCustomizer; -import io.micrometer.tracing.TraceContext; -import io.micrometer.tracing.http.HttpRequest; -import io.micrometer.tracing.http.HttpRequestParser; - -/** - * Brave implementation of a {@link HttpRequestParser}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class BraveHttpRequestParser implements HttpRequestParser { - - final brave.http.HttpRequestParser delegate; - - /** - * Creates a new version of a {@link BraveHttpRequestParser}. - * @param delegate Brave version of {@link HttpRequestParser} - */ - @Deprecated - public BraveHttpRequestParser(brave.http.HttpRequestParser delegate) { - this.delegate = delegate; - DeprecatedClassLogger.logWarning(getClass()); - } - - /** - * Converts from Tracing to Brave. - * @param parser API parser - * @return Brave version of the parser - */ - public static brave.http.HttpRequestParser toBrave(HttpRequestParser parser) { - DeprecatedClassLogger.logWarning(BraveHttpRequestParser.class); - if (parser instanceof BraveHttpRequestParser) { - return ((BraveHttpRequestParser) parser).delegate; - } - return (request, context, span) -> parser.parse(BraveHttpRequest.fromBrave(request), - BraveTraceContext.fromBrave(context), BraveSpanCustomizer.fromBrave(span)); - } - - @Override - public void parse(HttpRequest request, TraceContext context, SpanCustomizer span) { - DeprecatedClassLogger.logWarning(getClass()); - this.delegate.parse(BraveHttpRequest.toBrave(request), BraveTraceContext.toBrave(context), - BraveSpanCustomizer.toBrave(span)); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpResponse.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpResponse.java deleted file mode 100755 index eb71fbdf..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpResponse.java +++ /dev/null @@ -1,94 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.observation.transport.Kind; -import io.micrometer.tracing.http.HttpRequest; -import io.micrometer.tracing.http.HttpResponse; - -import java.util.Collection; -import java.util.Collections; - -/** - * Brave implementation of a {@link HttpResponse}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -class BraveHttpResponse implements HttpResponse { - - final brave.http.HttpResponse delegate; - - BraveHttpResponse(brave.http.HttpResponse delegate) { - this.delegate = delegate; - } - - static brave.http.HttpResponse toBrave(HttpResponse httpResponse) { - return ((BraveHttpResponse) httpResponse).delegate; - } - - static HttpResponse fromBrave(brave.http.HttpResponse httpResponse) { - return new BraveHttpResponse(httpResponse); - } - - @Override - public String method() { - return this.delegate.method(); - } - - @Override - public String route() { - return this.delegate.route(); - } - - @Override - public int statusCode() { - return this.delegate.statusCode(); - } - - @Override - public Object unwrap() { - return this.delegate.unwrap(); - } - - @Override - public Collection headerNames() { - // this is unused by Brave - return Collections.emptyList(); - } - - @Override - public Kind kind() { - return Kind.valueOf(this.delegate.spanKind().name()); - } - - @Override - public HttpRequest request() { - brave.http.HttpRequest request = this.delegate.request(); - if (request == null) { - return null; - } - return new BraveHttpRequest(request); - } - - @Override - public Throwable error() { - return this.delegate.error(); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpResponseParser.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpResponseParser.java deleted file mode 100755 index ac23e6f3..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpResponseParser.java +++ /dev/null @@ -1,65 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.tracing.http.HttpResponse; -import io.micrometer.tracing.SpanCustomizer; -import io.micrometer.tracing.TraceContext; -import io.micrometer.tracing.http.HttpResponseParser; - -/** - * Brave implementation of a {@link HttpResponseParser}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class BraveHttpResponseParser implements HttpResponseParser { - - final brave.http.HttpResponseParser delegate; - - /** - * Creates a new instance of {@link BraveHttpResponseParser}. - * @param delegate Brave version of {@link HttpResponseParser} - */ - public BraveHttpResponseParser(brave.http.HttpResponseParser delegate) { - this.delegate = delegate; - DeprecatedClassLogger.logWarning(getClass()); - } - - /** - * Converts from Tracing to Brave. - * @param parser API parser - * @return Brave parser - */ - public static brave.http.HttpResponseParser toBrave(HttpResponseParser parser) { - DeprecatedClassLogger.logWarning(BraveHttpRequestParser.class); - if (parser instanceof BraveHttpResponseParser) { - return ((BraveHttpResponseParser) parser).delegate; - } - return (response, context, span) -> parser.parse(BraveHttpResponse.fromBrave(response), - BraveTraceContext.fromBrave(context), BraveSpanCustomizer.fromBrave(span)); - } - - @Override - public void parse(HttpResponse response, TraceContext context, SpanCustomizer span) { - DeprecatedClassLogger.logWarning(getClass()); - this.delegate.parse(BraveHttpResponse.toBrave(response), BraveTraceContext.toBrave(context), - BraveSpanCustomizer.toBrave(span)); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerHandler.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerHandler.java deleted file mode 100755 index bb682f73..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerHandler.java +++ /dev/null @@ -1,57 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.tracing.http.HttpServerRequest; -import io.micrometer.tracing.http.HttpServerResponse; -import io.micrometer.tracing.Span; -import io.micrometer.tracing.http.HttpServerHandler; - -/** - * Brave implementation of a {@link HttpServerHandler}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class BraveHttpServerHandler implements HttpServerHandler { - - final brave.http.HttpServerHandler delegate; - - /** - * Creates a new instance of {@link HttpServerHandler}. - * @param delegate Brave version of {@link HttpServerHandler} - */ - public BraveHttpServerHandler( - brave.http.HttpServerHandler delegate) { - this.delegate = delegate; - DeprecatedClassLogger.logWarning(getClass()); - } - - @Override - public Span handleReceive(HttpServerRequest request) { - DeprecatedClassLogger.logWarning(getClass()); - return BraveSpan.fromBrave(this.delegate.handleReceive(BraveHttpServerRequest.toBrave(request))); - } - - @Override - public void handleSend(HttpServerResponse response, Span span) { - DeprecatedClassLogger.logWarning(getClass()); - this.delegate.handleSend(BraveHttpServerResponse.toBrave(response), BraveSpan.toBrave(span)); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerRequest.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerRequest.java deleted file mode 100755 index 27762862..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerRequest.java +++ /dev/null @@ -1,162 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.observation.transport.Kind; -import io.micrometer.tracing.http.HttpServerRequest; - -import java.util.Collection; -import java.util.Collections; - -/** - * Brave implementation of a {@link HttpServerRequest}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -class BraveHttpServerRequest implements HttpServerRequest { - - private static final boolean JAVAX_SERVLET_ON_THE_CLASSPATH = isClassPresent("javax.servlet.ServletRequest"); - - private static final boolean JAKARTA_SERVLET_ON_THE_CLASSPATH = isClassPresent("jakarta.servlet.ServletRequest"); - - final brave.http.HttpServerRequest delegate; - - BraveHttpServerRequest(brave.http.HttpServerRequest delegate) { - this.delegate = delegate; - } - - private static boolean isClassPresent(String clazz) { - try { - Class.forName(clazz); - return true; - } - catch (ClassNotFoundException e) { - return false; - } - } - - static brave.http.HttpServerRequest toBrave(HttpServerRequest request) { - if (request == null) { - return null; - } - if (request instanceof BraveHttpServerRequest) { - return ((BraveHttpServerRequest) request).delegate; - } - return new brave.http.HttpServerRequest() { - - @Override - public Object unwrap() { - return request.unwrap(); - } - - @Override - public String method() { - return request.method(); - } - - @Override - public String path() { - return request.path(); - } - - @Override - public String url() { - return request.url(); - } - - @Override - public String header(String name) { - return request.header(name); - } - - @Override - public boolean parseClientIpAndPort(brave.Span span) { - boolean clientIpAndPortParsed = super.parseClientIpAndPort(span); - if (clientIpAndPortParsed) { - return true; - } - return resolveFromInetAddress(span); - } - - private boolean resolveFromInetAddress(brave.Span span) { - Object delegate = request.unwrap(); - if (JAVAX_SERVLET_ON_THE_CLASSPATH && delegate instanceof javax.servlet.ServletRequest) { - javax.servlet.ServletRequest servletRequest = (javax.servlet.ServletRequest) delegate; - String addr = servletRequest.getRemoteAddr(); - if (addr == null) { - return false; - } - return span.remoteIpAndPort(addr, servletRequest.getRemotePort()); - } - else if (JAKARTA_SERVLET_ON_THE_CLASSPATH && delegate instanceof jakarta.servlet.ServletRequest) { - jakarta.servlet.ServletRequest servletRequest = (jakarta.servlet.ServletRequest) delegate; - String addr = servletRequest.getRemoteAddr(); - if (addr == null) { - return false; - } - return span.remoteIpAndPort(addr, servletRequest.getRemotePort()); - } - return false; - } - - }; - } - - @Override - public String method() { - return this.delegate.method(); - } - - @Override - public String route() { - return this.delegate.route(); - } - - @Override - public Object unwrap() { - return this.delegate.unwrap(); - } - - @Override - public Collection headerNames() { - // this is unused by Brave - return Collections.emptyList(); - } - - @Override - public Kind kind() { - return Kind.valueOf(this.delegate.spanKind().name()); - } - - @Override - public String path() { - return this.delegate.path(); - } - - @Override - public String url() { - return this.delegate.url(); - } - - @Override - public String header(String name) { - return this.delegate.header(name); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerResponse.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerResponse.java deleted file mode 100755 index 68eac138..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveHttpServerResponse.java +++ /dev/null @@ -1,131 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.observation.transport.Kind; -import io.micrometer.tracing.http.HttpServerRequest; -import io.micrometer.tracing.http.HttpServerResponse; - -import java.util.Collection; -import java.util.Collections; - -/** - * Brave implementation of a {@link HttpServerResponse}. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -class BraveHttpServerResponse implements HttpServerResponse { - - final brave.http.HttpServerResponse delegate; - - BraveHttpServerResponse(brave.http.HttpServerResponse delegate) { - this.delegate = delegate; - } - - static brave.http.HttpServerResponse toBrave(HttpServerResponse response) { - if (response == null) { - return null; - } - else if (response instanceof BraveHttpServerResponse) { - return ((BraveHttpServerResponse) response).delegate; - } - return new brave.http.HttpServerResponse() { - @Override - public brave.http.HttpServerRequest request() { - return BraveHttpServerRequest.toBrave(response.request()); - } - - @Override - public Throwable error() { - return response.error(); - } - - @Override - public String method() { - return response.method(); - } - - @Override - public String route() { - return response.route(); - } - - @Override - public String toString() { - return response.toString(); - } - - @Override - public int statusCode() { - return response.statusCode(); - } - - @Override - public Object unwrap() { - return response.unwrap(); - } - }; - } - - @Override - public String method() { - return this.delegate.method(); - } - - @Override - public String route() { - return this.delegate.route(); - } - - @Override - public int statusCode() { - return this.delegate.statusCode(); - } - - @Override - public Object unwrap() { - return this.delegate.unwrap(); - } - - @Override - public Collection headerNames() { - // this is unused by Brave - return Collections.emptyList(); - } - - @Override - public Kind kind() { - return Kind.valueOf(this.delegate.spanKind().name()); - } - - @Override - public HttpServerRequest request() { - brave.http.HttpServerRequest request = this.delegate.request(); - if (request == null) { - return null; - } - return new BraveHttpServerRequest(request); - } - - @Override - public Throwable error() { - return this.delegate.error(); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveSamplerFunction.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveSamplerFunction.java deleted file mode 100755 index 38d27815..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveSamplerFunction.java +++ /dev/null @@ -1,63 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.tracing.SamplerFunction; -import io.micrometer.tracing.http.HttpRequest; - -/** - * Brave implementation of a {@link SamplerFunction}. - * - * @param type of the input, for example a request or method - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -@SuppressWarnings("unchecked") -public final class BraveSamplerFunction implements SamplerFunction { - - final brave.sampler.SamplerFunction samplerFunction; - - /** - * Creates a new instance of {@link BraveSamplerFunction}. - * @param samplerFunction Brave {@link SamplerFunction} - */ - public BraveSamplerFunction(brave.sampler.SamplerFunction samplerFunction) { - DeprecatedClassLogger.logWarning(getClass()); - this.samplerFunction = samplerFunction; - } - - /** - * Converts from Tracing to Brave. - * @param samplerFunction Tracing version - * @return Brave version - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public static brave.sampler.SamplerFunction toHttpBrave( - SamplerFunction samplerFunction) { - DeprecatedClassLogger.logWarning(BraveSamplerFunction.class); - return arg -> samplerFunction.trySample(BraveHttpRequest.fromBrave(arg)); - } - - @Override - public Boolean trySample(T arg) { - DeprecatedClassLogger.logWarning(getClass()); - return this.samplerFunction.trySample(arg); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/DeprecatedClassLogger.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/DeprecatedClassLogger.java deleted file mode 100755 index 0f4ef9a8..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/DeprecatedClassLogger.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright 2023 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.brave.bridge; - -import io.micrometer.common.util.internal.logging.InternalLogger; -import io.micrometer.common.util.internal.logging.InternalLoggerFactory; - -/** - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -final class DeprecatedClassLogger { - - private static final InternalLogger log = InternalLoggerFactory.getInstance(DeprecatedClassLogger.class); - - static void logWarning(Class clazz) { - log.warn("The class <{}> is scheduled for removal in the next minor. Please migrate away from using it.", - clazz); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DefaultHttpClientAttributesGetter.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DefaultHttpClientAttributesGetter.java deleted file mode 100644 index 47ccf2ca..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DefaultHttpClientAttributesGetter.java +++ /dev/null @@ -1,187 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.otel.bridge; - -import io.micrometer.common.lang.Nullable; -import io.micrometer.tracing.http.HttpClientRequest; -import io.micrometer.tracing.http.HttpClientResponse; -import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesGetter; - -import java.net.URI; -import java.util.Collections; -import java.util.List; - -/** - * Extracts OpenTelemetry http semantic attributes value for client http spans. - * - * @author Nikita Salnikov-Tarnovski - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class DefaultHttpClientAttributesGetter - implements HttpClientAttributesGetter { - - public DefaultHttpClientAttributesGetter() { - DeprecatedClassLogger.logWarning(getClass()); - } - - @Nullable - @Override - public String getUrlFull(HttpClientRequest httpClientRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return httpClientRequest.url(); - } - - @Nullable - @Override - public String getServerAddress(HttpClientRequest httpClientRequest) { - DeprecatedClassLogger.logWarning(getClass()); - try { - URI uri = URI.create(httpClientRequest.url()); - return uri.getHost(); - } - catch (Exception ex) { - return null; - } - } - - @Nullable - @Override - public Integer getServerPort(HttpClientRequest httpClientRequest) { - DeprecatedClassLogger.logWarning(getClass()); - try { - URI uri = URI.create(httpClientRequest.url()); - return uri.getPort(); - } - catch (Exception ex) { - return null; - } - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getUrlFull(HttpClientRequest)} instead. - */ - @Nullable - @Deprecated - public String getUrl(HttpClientRequest httpClientRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getUrlFull(httpClientRequest); - } - - /** - * @deprecated This method was removed from OpenTelemetry. It should not be used since - * always returned null in Micrometer Tracing. - */ - @Nullable - @Deprecated - public String getFlavor(HttpClientRequest httpClientRequest, @Nullable HttpClientResponse httpClientResponse) { - DeprecatedClassLogger.logWarning(getClass()); - return null; - } - - @Nullable - @Override - public String getHttpRequestMethod(HttpClientRequest httpClientRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return httpClientRequest.method(); - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getHttpRequestMethod(HttpClientRequest)} instead. - */ - @Nullable - @Deprecated - public String getMethod(HttpClientRequest httpClientRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getHttpRequestMethod(httpClientRequest); - } - - @Override - public List getHttpRequestHeader(HttpClientRequest httpClientRequest, String name) { - DeprecatedClassLogger.logWarning(getClass()); - if (httpClientRequest == null) { - return Collections.emptyList(); - } - String value = httpClientRequest.header(name); - return value == null ? Collections.emptyList() : Collections.singletonList(value); - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getHttpRequestHeader(HttpClientRequest, String)} instead. - */ - @Deprecated - public List getRequestHeader(HttpClientRequest httpClientRequest, String name) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getHttpRequestHeader(httpClientRequest, name); - } - - @Nullable - @Override - public Integer getHttpResponseStatusCode(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse, - @Nullable Throwable error) { - DeprecatedClassLogger.logWarning(getClass()); - if (httpClientResponse == null) { - return null; - } - return httpClientResponse.statusCode(); - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getHttpResponseStatusCode(HttpClientRequest, HttpClientResponse, Throwable)} - * instead. - */ - @Nullable - @Deprecated - public Integer getStatusCode(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse, - Throwable error) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getHttpResponseStatusCode(httpClientRequest, httpClientResponse, error); - } - - @Override - public List getHttpResponseHeader(HttpClientRequest httpClientRequest, - HttpClientResponse httpClientResponse, String name) { - DeprecatedClassLogger.logWarning(getClass()); - if (httpClientResponse == null) { - return Collections.emptyList(); - } - try { - String value = httpClientResponse.header(name); - return value == null ? Collections.emptyList() : Collections.singletonList(value); - } - catch (Exception e) { - return Collections.emptyList(); - } - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getHttpResponseHeader(HttpClientRequest, HttpClientResponse, String)} - * instead. - */ - @Deprecated - public List getResponseHeader(HttpClientRequest httpClientRequest, HttpClientResponse httpClientResponse, - String name) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getHttpResponseHeader(httpClientRequest, httpClientResponse, name); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DefaultHttpServerAttributesExtractor.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DefaultHttpServerAttributesExtractor.java deleted file mode 100644 index 53aa45c5..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DefaultHttpServerAttributesExtractor.java +++ /dev/null @@ -1,219 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.otel.bridge; - -import io.micrometer.common.lang.Nullable; -import io.micrometer.tracing.http.HttpServerRequest; -import io.micrometer.tracing.http.HttpServerResponse; -import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesGetter; - -import java.net.URI; -import java.util.Collections; -import java.util.List; - -/** - * Extracts OpenTelemetry http semantic attributes value for server http spans. - * - * @author Nikita Salnikov-Tarnovski - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class DefaultHttpServerAttributesExtractor - implements HttpServerAttributesGetter { - - public DefaultHttpServerAttributesExtractor() { - DeprecatedClassLogger.logWarning(getClass()); - } - - /** - * @deprecated This method was removed from OpenTelemetry. It should not be used since - * always returned null in Micrometer Tracing. - */ - @Nullable - @Deprecated - public String getFlavor(HttpServerRequest httpServerRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return null; - } - - @Nullable - @Override - public String getUrlPath(HttpServerRequest httpServerRequest) { - DeprecatedClassLogger.logWarning(getClass()); - URI uri = toUri(httpServerRequest); - if (uri == null) { - return null; - } - return uri.getPath(); - } - - @Nullable - @Override - public String getUrlQuery(HttpServerRequest httpServerRequest) { - DeprecatedClassLogger.logWarning(getClass()); - URI uri = toUri(httpServerRequest); - if (uri == null) { - return null; - } - return queryPart(uri); - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getUrlPath(HttpServerRequest)} and {@link #getUrlQuery(HttpServerRequest)} - * instead. - */ - @Nullable - @Deprecated - public String getTarget(HttpServerRequest httpServerRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getUrlPath(httpServerRequest) + this.getUrlQuery(httpServerRequest); - } - - private URI toUri(HttpServerRequest request) { - String url = request.url(); - return url == null ? null : URI.create(url); - } - - private String queryPart(URI uri) { - String query = uri.getQuery(); - return query != null ? "?" + query : ""; - } - - @Nullable - @Override - public String getHttpRoute(HttpServerRequest httpServerRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return httpServerRequest.route(); - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getHttpRoute(HttpServerRequest)} instead. - */ - @Nullable - @Deprecated - public String getRoute(HttpServerRequest httpServerRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getHttpRoute(httpServerRequest); - } - - @Nullable - @Override - public String getUrlScheme(HttpServerRequest httpServerRequest) { - DeprecatedClassLogger.logWarning(getClass()); - String url = httpServerRequest.url(); - if (url == null) { - return null; - } - if (url.startsWith("https:")) { - return "https"; - } - if (url.startsWith("http:")) { - return "http"; - } - return null; - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getUrlScheme(HttpServerRequest)} instead. - */ - @Nullable - @Deprecated - public String getScheme(HttpServerRequest httpServerRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getUrlScheme(httpServerRequest); - } - - @Nullable - @Override - public String getHttpRequestMethod(HttpServerRequest httpServerRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return httpServerRequest.method(); - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getHttpRequestMethod(HttpServerRequest)} instead. - */ - @Nullable - @Deprecated - public String getMethod(HttpServerRequest httpServerRequest) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getHttpRequestMethod(httpServerRequest); - } - - @Override - public List getHttpRequestHeader(HttpServerRequest httpServerRequest, String name) { - DeprecatedClassLogger.logWarning(getClass()); - String value = httpServerRequest.header(name); - return value == null ? Collections.emptyList() : Collections.singletonList(value); - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getHttpRequestHeader(HttpServerRequest, String)} instead. - */ - @Deprecated - public List getRequestHeader(HttpServerRequest httpServerRequest, String name) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getHttpRequestHeader(httpServerRequest, name); - } - - @Nullable - @Override - public Integer getHttpResponseStatusCode(HttpServerRequest httpServerRequest, HttpServerResponse httpServerResponse, - @Nullable Throwable error) { - DeprecatedClassLogger.logWarning(getClass()); - return httpServerResponse.statusCode(); - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getHttpResponseStatusCode(HttpServerRequest, HttpServerResponse, Throwable)} - * instead. - */ - @Nullable - @Deprecated - public Integer getStatusCode(HttpServerRequest httpServerRequest, HttpServerResponse httpServerResponse, - Throwable error) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getHttpResponseStatusCode(httpServerRequest, httpServerResponse, error); - } - - @Override - public List getHttpResponseHeader(HttpServerRequest httpServerRequest, - HttpServerResponse httpServerResponse, String name) { - DeprecatedClassLogger.logWarning(getClass()); - String value = httpServerResponse.header(name); - return value == null ? Collections.emptyList() : Collections.singletonList(value); - } - - /** - * @deprecated This method was removed from OpenTelemetry. Please use - * {@link #getHttpResponseHeader(HttpServerRequest, HttpServerResponse, String)} - * instead. - */ - @Deprecated - public List getResponseHeader(HttpServerRequest httpServerRequest, HttpServerResponse httpServerResponse, - String name) { - DeprecatedClassLogger.logWarning(getClass()); - return this.getHttpResponseHeader(httpServerRequest, httpServerResponse, name); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DeprecatedClassLogger.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DeprecatedClassLogger.java deleted file mode 100755 index 0a4f9c99..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/DeprecatedClassLogger.java +++ /dev/null @@ -1,34 +0,0 @@ -/** - * Copyright 2023 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.otel.bridge; - -import io.micrometer.common.util.internal.logging.InternalLogger; -import io.micrometer.common.util.internal.logging.InternalLoggerFactory; - -/** - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -final class DeprecatedClassLogger { - - private static final InternalLogger log = InternalLoggerFactory.getInstance(DeprecatedClassLogger.class); - - static void logWarning(Class clazz) { - log.warn("The class <{}> is scheduled for removal in the next minor. Please migrate away from using it.", - clazz); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/HttpRequestNetClientAttributesExtractor.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/HttpRequestNetClientAttributesExtractor.java deleted file mode 100644 index 6dcb32dd..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/HttpRequestNetClientAttributesExtractor.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.otel.bridge; - -import io.micrometer.common.lang.Nullable; -import io.micrometer.tracing.http.HttpClientRequest; -import io.micrometer.tracing.http.HttpClientResponse; -import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; - -/** - * Extracts OpenTelemetry network semantic attributes value for client http spans. - * - * @author Nikita Salnikov-Tarnovski - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -class HttpRequestNetClientAttributesExtractor - implements NetClientAttributesGetter { - - @Nullable - @Override - public String getTransport(HttpClientRequest httpClientRequest, @Nullable HttpClientResponse httpClientResponse) { - return null; - } - - @Nullable - @Override - public String getServerAddress(HttpClientRequest httpClientRequest) { - return null; - } - - @Nullable - @Override - public Integer getServerPort(HttpClientRequest httpClientRequest) { - return httpClientRequest == null ? null : httpClientRequest.remotePort(); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/HttpRequestNetServerAttributesExtractor.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/HttpRequestNetServerAttributesExtractor.java deleted file mode 100644 index afc6cd7f..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/HttpRequestNetServerAttributesExtractor.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.otel.bridge; - -import io.micrometer.common.lang.Nullable; -import io.micrometer.tracing.http.HttpServerRequest; -import io.micrometer.tracing.http.HttpServerResponse; -import io.opentelemetry.instrumentation.api.instrumenter.net.NetServerAttributesGetter; - -import java.net.URI; - -/** - * Extracts OpenTelemetry network semantic attributes value for server http spans. - * - * @author Nikita Salnikov-Tarnovski - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -class HttpRequestNetServerAttributesExtractor - implements NetServerAttributesGetter { - - @Nullable - @Override - public String getTransport(HttpServerRequest httpRequest) { - String url = httpRequest.url(); - if (url == null) { - return null; - } - URI uri = URI.create(url); - return uri.getScheme(); - } - - @Nullable - @Override - public String getServerAddress(HttpServerRequest httpServerRequest) { - String url = httpServerRequest.url(); - if (url == null) { - return null; - } - URI uri = URI.create(url); - return uri.getHost(); - } - - @Nullable - @Override - public Integer getServerPort(HttpServerRequest httpServerRequest) { - return httpServerRequest.remotePort(); - } - - @Nullable - @Override - public String getClientSocketAddress(HttpServerRequest httpServerRequest, - @Nullable HttpServerResponse httpServerResponse) { - return httpServerRequest.remoteIp(); - } - - @Nullable - @Override - public Integer getClientSocketPort(HttpServerRequest httpServerRequest, - @Nullable HttpServerResponse httpServerResponse) { - return httpServerRequest.remotePort(); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelHttpClientHandler.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelHttpClientHandler.java deleted file mode 100644 index c47a4c02..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelHttpClientHandler.java +++ /dev/null @@ -1,171 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.otel.bridge; - -import io.micrometer.common.lang.Nullable; -import io.micrometer.common.util.internal.logging.InternalLogger; -import io.micrometer.common.util.internal.logging.InternalLoggerFactory; -import io.micrometer.tracing.http.HttpClientRequest; -import io.micrometer.tracing.http.HttpClientResponse; -import io.micrometer.tracing.http.HttpRequest; -import io.micrometer.tracing.SamplerFunction; -import io.micrometer.tracing.Span; -import io.micrometer.tracing.TraceContext; -import io.micrometer.tracing.http.HttpClientHandler; -import io.micrometer.tracing.http.HttpRequestParser; -import io.micrometer.tracing.http.HttpResponseParser; -import io.opentelemetry.api.OpenTelemetry; -import io.opentelemetry.context.Context; -import io.opentelemetry.context.ContextKey; -import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; -import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesExtractor; -import io.opentelemetry.instrumentation.api.instrumenter.http.HttpClientAttributesGetter; -import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor; -import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor; -import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesExtractor; -import io.opentelemetry.instrumentation.api.instrumenter.net.NetClientAttributesGetter; - -/** - * OpenTelemetry implementation of a {@link HttpClientHandler}. - * - * @author Marcin Grzejszczak - * @author Nikita Salnikov-Tarnovski - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class OtelHttpClientHandler implements HttpClientHandler { - - private static final InternalLogger log = InternalLoggerFactory.getInstance(OtelHttpClientHandler.class); - - private static final ContextKey REQUEST_CONTEXT_KEY = ContextKey - .named(OtelHttpClientHandler.class.getName() + ".request"); - - private final HttpRequestParser httpClientRequestParser; - - private final HttpResponseParser httpClientResponseParser; - - private final SamplerFunction samplerFunction; - - private final Instrumenter instrumenter; - - /** - * Creates a new instance of {@link OtelHttpClientHandler}. - * @param openTelemetry open telemetry - * @param httpClientRequestParser http client request parser - * @param httpClientResponseParser http client response parser - * @param samplerFunction sampler function - * @param httpAttributesExtractor http attributes extractor - * @deprecated use - * {@link OtelHttpClientHandler#OtelHttpClientHandler(OpenTelemetry, HttpRequestParser, HttpResponseParser, SamplerFunction, HttpClientAttributesGetter, NetClientAttributesGetter)} - */ - @Deprecated - public OtelHttpClientHandler(OpenTelemetry openTelemetry, @Nullable HttpRequestParser httpClientRequestParser, - @Nullable HttpResponseParser httpClientResponseParser, SamplerFunction samplerFunction, - HttpClientAttributesGetter httpAttributesExtractor) { - this(openTelemetry, httpClientRequestParser, httpClientResponseParser, samplerFunction, httpAttributesExtractor, - new HttpRequestNetClientAttributesExtractor()); - } - - /** - * Creates a new instance of {@link OtelHttpClientHandler}. - * @param openTelemetry open telemetry - * @param httpClientRequestParser http client request parser - * @param httpClientResponseParser http client response parser - * @param samplerFunction sampler function - * @param httpAttributesExtractor http attributes extractor - */ - public OtelHttpClientHandler(OpenTelemetry openTelemetry, @Nullable HttpRequestParser httpClientRequestParser, - @Nullable HttpResponseParser httpClientResponseParser, SamplerFunction samplerFunction, - HttpClientAttributesGetter httpAttributesExtractor, - NetClientAttributesGetter netAttributesGetter) { - DeprecatedClassLogger.logWarning(getClass()); - this.httpClientRequestParser = httpClientRequestParser; - this.httpClientResponseParser = httpClientResponseParser; - this.samplerFunction = samplerFunction; - this.instrumenter = Instrumenter - .builder(openTelemetry, "io.micrometer.tracing", - HttpSpanNameExtractor.create(httpAttributesExtractor)) - .setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesExtractor)) - .addAttributesExtractor(NetClientAttributesExtractor.create(new HttpRequestNetClientAttributesExtractor())) - .addAttributesExtractor(HttpClientAttributesExtractor.create(httpAttributesExtractor, netAttributesGetter)) - .addAttributesExtractor(new PathAttributeExtractor()) - .buildClientInstrumenter(HttpClientRequest::header); - } - - @Override - public Span handleSend(HttpClientRequest request) { - DeprecatedClassLogger.logWarning(getClass()); - Context parentContext = Context.current(); - return startSpan(request, parentContext); - } - - @Override - public Span handleSend(HttpClientRequest request, TraceContext parent) { - DeprecatedClassLogger.logWarning(getClass()); - Context parentContext = OtelTraceContext.toOtelContext(parent); - return startSpan(request, parentContext); - } - - private Span startSpan(HttpClientRequest request, Context parentContext) { - if (Boolean.FALSE.equals(this.samplerFunction.trySample(request))) { - if (log.isDebugEnabled()) { - log.debug("Returning an invalid span since url [" + request.path() + "] is on a list of urls to skip"); - } - return OtelSpan.fromOtel(io.opentelemetry.api.trace.Span.getInvalid()); - } - if (instrumenter.shouldStart(parentContext, request)) { - Context context = instrumenter.start(parentContext, request); - return span(context, request); - } - else { - return OtelSpan.fromOtel(io.opentelemetry.api.trace.Span.getInvalid()); - } - } - - private Span span(Context context, HttpClientRequest request) { - io.opentelemetry.api.trace.Span span = io.opentelemetry.api.trace.Span.fromContext(context); - Span result = OtelSpan.fromOtel(span, context.with(REQUEST_CONTEXT_KEY, request)); - if (this.httpClientRequestParser != null) { - this.httpClientRequestParser.parse(request, result.context(), result); - } - if (request.remotePort() != 0) { - result.remoteIpAndPort(request.remoteIp(), request.remotePort()); - } - return result; - } - - @Override - public void handleReceive(HttpClientResponse response, Span span) { - DeprecatedClassLogger.logWarning(getClass()); - OtelSpan otelSpanWrapper = (OtelSpan) span; - if (!otelSpanWrapper.delegate.getSpanContext().isValid()) { - if (log.isDebugEnabled()) { - log.debug("Not doing anything because the span is invalid"); - } - return; - } - - if (this.httpClientResponseParser != null) { - this.httpClientResponseParser.parse(response, span.context(), span); - } - OtelTraceContext traceContext = otelSpanWrapper.context(); - Context otelContext = traceContext.context(); - Context contextToEnd = Context.current().with(otelSpanWrapper.delegate); - instrumenter.end(contextToEnd, otelContext.get(REQUEST_CONTEXT_KEY), response, response.error()); - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelHttpServerHandler.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelHttpServerHandler.java deleted file mode 100644 index c0d5dc7e..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelHttpServerHandler.java +++ /dev/null @@ -1,145 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.otel.bridge; - -import io.micrometer.common.lang.Nullable; -import io.micrometer.common.util.StringUtils; -import io.micrometer.common.util.internal.logging.InternalLogger; -import io.micrometer.common.util.internal.logging.InternalLoggerFactory; -import io.micrometer.tracing.Span; -import io.micrometer.tracing.http.*; -import io.opentelemetry.api.OpenTelemetry; -import io.opentelemetry.context.Context; -import io.opentelemetry.context.ContextKey; -import io.opentelemetry.context.propagation.TextMapGetter; -import io.opentelemetry.instrumentation.api.instrumenter.Instrumenter; -import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesExtractor; -import io.opentelemetry.instrumentation.api.instrumenter.http.HttpServerAttributesGetter; -import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanNameExtractor; -import io.opentelemetry.instrumentation.api.instrumenter.http.HttpSpanStatusExtractor; - -import java.util.regex.Pattern; - -/** - * OpenTelemetry implementation of a {@link HttpServerHandler}. - * - * @author Marcin Grzejszczak - * @author Nikita Salnikov-Tarnovski - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class OtelHttpServerHandler implements HttpServerHandler { - - private static final InternalLogger log = InternalLoggerFactory.getInstance(OtelHttpClientHandler.class); - - private static final ContextKey REQUEST_CONTEXT_KEY = ContextKey - .named(OtelHttpServerHandler.class.getName() + ".request"); - - private final HttpRequestParser httpServerRequestParser; - - private final HttpResponseParser httpServerResponseParser; - - private final Pattern pattern; - - private final Instrumenter instrumenter; - - /** - * Creates a new instance of {@link OtelHttpServerHandler}. - * @param openTelemetry open telemetry - * @param httpServerRequestParser http client request parser - * @param httpServerResponseParser http client response parser - * @param skipPattern skip pattern - * @param httpAttributesExtractor http attributes extractor - */ - public OtelHttpServerHandler(OpenTelemetry openTelemetry, @Nullable HttpRequestParser httpServerRequestParser, - @Nullable HttpResponseParser httpServerResponseParser, Pattern skipPattern, - HttpServerAttributesGetter httpAttributesExtractor) { - DeprecatedClassLogger.logWarning(getClass()); - this.httpServerRequestParser = httpServerRequestParser; - this.httpServerResponseParser = httpServerResponseParser; - this.pattern = skipPattern; - this.instrumenter = Instrumenter - .builder(openTelemetry, "io.micrometer.tracing", - HttpSpanNameExtractor.create(httpAttributesExtractor)) - .setSpanStatusExtractor(HttpSpanStatusExtractor.create(httpAttributesExtractor)) - .addAttributesExtractor(HttpServerAttributesExtractor.create(httpAttributesExtractor, - new HttpRequestNetServerAttributesExtractor())) - .addAttributesExtractor(new PathAttributeExtractor()) - .buildServerInstrumenter(getGetter()); - } - - @Override - public Span handleReceive(HttpServerRequest request) { - DeprecatedClassLogger.logWarning(getClass()); - String url = request.path(); - boolean shouldSkip = !StringUtils.isEmpty(url) && this.pattern.matcher(url).matches(); - if (shouldSkip) { - return OtelSpan.fromOtel(io.opentelemetry.api.trace.Span.getInvalid()); - } - Context parentContext = Context.current(); - if (instrumenter.shouldStart(parentContext, request)) { - Context context = instrumenter.start(parentContext, request); - return span(context, request); - } - else { - return OtelSpan.fromOtel(io.opentelemetry.api.trace.Span.getInvalid()); - } - } - - private Span span(Context context, HttpServerRequest request) { - io.opentelemetry.api.trace.Span span = io.opentelemetry.api.trace.Span.fromContext(context); - Span result = OtelSpan.fromOtel(span, context.with(REQUEST_CONTEXT_KEY, request)); - if (this.httpServerRequestParser != null) { - this.httpServerRequestParser.parse(request, result.context(), result); - } - return result; - } - - @Override - public void handleSend(HttpServerResponse response, Span span) { - DeprecatedClassLogger.logWarning(getClass()); - OtelSpan otelSpanWrapper = (OtelSpan) span; - if (!otelSpanWrapper.delegate.getSpanContext().isValid()) { - if (log.isDebugEnabled()) { - log.debug("Not doing anything because the span is invalid"); - } - return; - } - - if (this.httpServerResponseParser != null) { - this.httpServerResponseParser.parse(response, span.context(), span); - } - OtelTraceContext traceContext = otelSpanWrapper.context(); - Context otelContext = traceContext.context(); - instrumenter.end(otelContext, otelContext.get(REQUEST_CONTEXT_KEY), response, response.error()); - } - - private TextMapGetter getGetter() { - return new TextMapGetter() { - @Override - public Iterable keys(HttpServerRequest carrier) { - return carrier.headerNames(); - } - - @Override - public String get(HttpServerRequest carrier, String key) { - return carrier.header(key); - } - }; - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/PathAttributeExtractor.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/PathAttributeExtractor.java deleted file mode 100644 index d91d4e10..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/PathAttributeExtractor.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright 2023 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.otel.bridge; - -import io.micrometer.common.util.StringUtils; -import io.micrometer.tracing.http.HttpRequest; -import io.micrometer.tracing.http.HttpResponse; -import io.opentelemetry.api.common.AttributeKey; -import io.opentelemetry.api.common.AttributesBuilder; -import io.opentelemetry.context.Context; -import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor; -import io.opentelemetry.semconv.SemanticAttributes; - -/** - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -class PathAttributeExtractor implements AttributesExtractor { - - private static final AttributeKey HTTP_PATH = AttributeKey.stringKey("http.path"); - - @Override - public void onStart(AttributesBuilder attributes, Context parentContext, HttpRequest httpRequest) { - String path = httpRequest.path(); - if (StringUtils.isNotEmpty(path)) { - setAttribute(attributes, SemanticAttributes.HTTP_ROUTE, path); - setAttribute(attributes, HTTP_PATH, path); - } - } - - private void setAttribute(AttributesBuilder attributes, AttributeKey key, T value) { - if (value != null) { - attributes.put(key, value); - } - } - - @Override - public void onEnd(AttributesBuilder attributes, Context context, HttpRequest httpRequest, HttpResponse httpResponse, - Throwable error) { - - } - -} diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/SkipPatternSampler.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/SkipPatternSampler.java deleted file mode 100644 index 9b697ed8..00000000 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/SkipPatternSampler.java +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.otel.bridge; - -import io.micrometer.tracing.SamplerFunction; -import io.micrometer.tracing.http.HttpRequest; - -import java.util.regex.Pattern; - -/** - * Decides if sampling should take place for the given request. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class SkipPatternSampler implements SamplerFunction { - - private final Pattern pattern; - - /** - * Creates a new instance of {@link SkipPatternSampler}. - * @param pattern skip pattern - */ - public SkipPatternSampler(Pattern pattern) { - DeprecatedClassLogger.logWarning(getClass()); - this.pattern = pattern; - } - - @Override - public final Boolean trySample(HttpRequest request) { - DeprecatedClassLogger.logWarning(getClass()); - String url = request.path(); - boolean shouldSkip = this.pattern.matcher(url).matches(); - if (shouldSkip) { - return false; - } - return null; - } - -} diff --git a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/BuildingBlocks.java b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/BuildingBlocks.java index 28c473a0..619b4661 100644 --- a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/BuildingBlocks.java +++ b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/BuildingBlocks.java @@ -19,8 +19,6 @@ import io.micrometer.observation.ObservationHandler; import io.micrometer.tracing.Tracer; import io.micrometer.tracing.exporter.FinishedSpan; -import io.micrometer.tracing.http.HttpClientHandler; -import io.micrometer.tracing.http.HttpServerHandler; import io.micrometer.tracing.propagation.Propagator; import java.util.Deque; @@ -48,22 +46,6 @@ public interface BuildingBlocks { */ Propagator getPropagator(); - /** - * Returns an {@link HttpServerHandler}. - * @return http server handler - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - HttpServerHandler getHttpServerHandler(); - - /** - * Returns an {@link HttpClientHandler}. - * @return http client handler - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - HttpClientHandler getHttpClientHandler(); - /** * Returns a collection of default {@link ObservationHandler} customizers. * @return customizers diff --git a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/inmemory/InMemoryBraveSetup.java b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/inmemory/InMemoryBraveSetup.java index bfcd4280..5f3d9e1a 100644 --- a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/inmemory/InMemoryBraveSetup.java +++ b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/inmemory/InMemoryBraveSetup.java @@ -29,8 +29,6 @@ import io.micrometer.tracing.handler.DefaultTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingSenderTracingObservationHandler; -import io.micrometer.tracing.http.HttpClientHandler; -import io.micrometer.tracing.http.HttpServerHandler; import io.micrometer.tracing.propagation.Propagator; import io.micrometer.tracing.test.reporter.BuildingBlocks; @@ -92,12 +90,6 @@ public static class Builder { private Function httpTracing; - @Deprecated - private Function httpServerHandler; - - @Deprecated - private Function httpClientHandler; - private Function> handlers; private BiConsumer>> customizers; @@ -117,12 +109,6 @@ public static class BraveBuildingBlocks implements BuildingBlocks { private final HttpTracing httpTracing; - @Deprecated - private final HttpServerHandler httpServerHandler; - - @Deprecated - private final HttpClientHandler httpClientHandler; - private final BiConsumer>> customizers; private final TestSpanHandler testSpanHandler; @@ -133,21 +119,17 @@ public static class BraveBuildingBlocks implements BuildingBlocks { * @param tracer tracer * @param propagator propagator * @param httpTracing http tracing - * @param httpServerHandler http server handler - * @param httpClientHandler http client handler * @param customizers observation customizers * @param testSpanHandler test span handler */ public BraveBuildingBlocks(Tracing tracing, Tracer tracer, BravePropagator propagator, - HttpTracing httpTracing, HttpServerHandler httpServerHandler, HttpClientHandler httpClientHandler, + HttpTracing httpTracing, BiConsumer>> customizers, TestSpanHandler testSpanHandler) { this.tracing = tracing; this.tracer = tracer; this.propagator = propagator; this.httpTracing = httpTracing; - this.httpServerHandler = httpServerHandler; - this.httpClientHandler = httpClientHandler; this.customizers = customizers; this.testSpanHandler = testSpanHandler; } @@ -162,28 +144,6 @@ public Propagator getPropagator() { return this.propagator; } - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http server handler - */ - @Deprecated - @Override - public HttpServerHandler getHttpServerHandler() { - return this.httpServerHandler; - } - - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http client handler - */ - @Deprecated - @Override - public HttpClientHandler getHttpClientHandler() { - return this.httpClientHandler; - } - @Override public BiConsumer>> getCustomizers() { return this.customizers; @@ -250,30 +210,6 @@ public Builder observationHandlerCustomizer( return this; } - /** - * Overrides Http Server Handler. - * @param httpServerHandler http server handler provider - * @return this for chaining - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public Builder httpServerHandler(Function httpServerHandler) { - this.httpServerHandler = httpServerHandler; - return this; - } - - /** - * Overrides Http Client Handler. - * @param httpClientHandler http client handler provider - * @return this for chaining - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public Builder httpClientHandler(Function httpClientHandler) { - this.httpClientHandler = httpClientHandler; - return this; - } - /** * Overrides Observation Handlers * @param handlers handlers provider @@ -307,16 +243,11 @@ public InMemoryBraveSetup register(ObservationRegistry registry) { : tracing(testSpanHandler, this.applicationName); Tracer tracer = this.tracer != null ? this.tracer.apply(tracing) : tracer(tracing); HttpTracing httpTracing = this.httpTracing != null ? this.httpTracing.apply(tracing) : httpTracing(tracing); - HttpServerHandler httpServerHandler = this.httpServerHandler != null - ? this.httpServerHandler.apply(httpTracing) : null; - HttpClientHandler httpClientHandler = this.httpClientHandler != null - ? this.httpClientHandler.apply(httpTracing) : null; BiConsumer>> customizers = this.customizers != null ? this.customizers : (t, h) -> { }; BraveBuildingBlocks braveBuildingBlocks = new BraveBuildingBlocks(tracing, tracer, - new BravePropagator(tracing), httpTracing, httpServerHandler, httpClientHandler, customizers, - testSpanHandler); + new BravePropagator(tracing), httpTracing, customizers, testSpanHandler); ObservationHandler tracingHandlers = this.handlers != null ? this.handlers.apply(braveBuildingBlocks) : tracingHandlers(braveBuildingBlocks); registry.observationConfig().observationHandler(tracingHandlers); diff --git a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/inmemory/InMemoryOtelSetup.java b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/inmemory/InMemoryOtelSetup.java index 86bee37f..cebeb67e 100644 --- a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/inmemory/InMemoryOtelSetup.java +++ b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/inmemory/InMemoryOtelSetup.java @@ -22,8 +22,6 @@ import io.micrometer.tracing.handler.DefaultTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingSenderTracingObservationHandler; -import io.micrometer.tracing.http.HttpClientHandler; -import io.micrometer.tracing.http.HttpServerHandler; import io.micrometer.tracing.otel.bridge.*; import io.micrometer.tracing.test.reporter.BuildingBlocks; import io.opentelemetry.api.common.Attributes; @@ -99,12 +97,6 @@ public static class Builder { private BiConsumer>> customizers; - @Deprecated - private Function httpServerHandler; - - @Deprecated - private Function httpClientHandler; - private Function> handlers; private Consumer closingFunction; @@ -120,12 +112,6 @@ public static class OtelBuildingBlocks implements BuildingBlocks { private final OtelPropagator propagator; - @Deprecated - private final HttpServerHandler httpServerHandler; - - @Deprecated - private final HttpClientHandler httpClientHandler; - private final BiConsumer>> customizers; private final ArrayListSpanProcessor arrayListSpanProcessor; @@ -135,20 +121,16 @@ public static class OtelBuildingBlocks implements BuildingBlocks { * @param sdkTracerProvider sdk tracer provider * @param otelTracer otel tracer * @param propagator propagator - * @param httpServerHandler http server handler - * @param httpClientHandler http client handler * @param customizers observation customizers * @param arrayListSpanProcessor array list span processor */ public OtelBuildingBlocks(SdkTracerProvider sdkTracerProvider, OtelTracer otelTracer, - OtelPropagator propagator, HttpServerHandler httpServerHandler, HttpClientHandler httpClientHandler, + OtelPropagator propagator, BiConsumer>> customizers, ArrayListSpanProcessor arrayListSpanProcessor) { this.sdkTracerProvider = sdkTracerProvider; this.otelTracer = otelTracer; this.propagator = propagator; - this.httpServerHandler = httpServerHandler; - this.httpClientHandler = httpClientHandler; this.customizers = customizers; this.arrayListSpanProcessor = arrayListSpanProcessor; } @@ -158,28 +140,6 @@ public io.micrometer.tracing.Tracer getTracer() { return this.otelTracer; } - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http server handler - */ - @Deprecated - @Override - public HttpServerHandler getHttpServerHandler() { - return this.httpServerHandler; - } - - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http client handler - */ - @Deprecated - @Override - public HttpClientHandler getHttpClientHandler() { - return this.httpClientHandler; - } - @Override public BiConsumer>> getCustomizers() { return this.customizers; @@ -261,30 +221,6 @@ public Builder observationHandlerCustomizer( return this; } - /** - * Overrides Http Server Handler. - * @param httpServerHandler http server handler provider - * @return this for chaining - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public Builder httpServerHandler(Function httpServerHandler) { - this.httpServerHandler = httpServerHandler; - return this; - } - - /** - * Overrides Http Client Handler. - * @param httpClientHandler http client handler provider - * @return this for chaining - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public Builder httpClientHandler(Function httpClientHandler) { - this.httpClientHandler = httpClientHandler; - return this; - } - /** * Overrides Observation Handlers * @param handlers handlers provider @@ -321,17 +257,13 @@ public InMemoryOtelSetup register(ObservationRegistry registry) { ? this.openTelemetrySdk.apply(sdkTracerProvider) : openTelemetrySdk(sdkTracerProvider); Tracer tracer = this.tracer != null ? this.tracer.apply(openTelemetrySdk) : tracer(openTelemetrySdk); OtelTracer otelTracer = this.otelTracer != null ? this.otelTracer.apply(tracer) : otelTracer(tracer); - HttpServerHandler httpServerHandler = this.httpServerHandler != null - ? this.httpServerHandler.apply(openTelemetrySdk) : null; - HttpClientHandler httpClientHandler = this.httpClientHandler != null - ? this.httpClientHandler.apply(openTelemetrySdk) : null; BiConsumer>> customizers = this.customizers != null ? this.customizers : (t, h) -> { }; OtelBuildingBlocks otelBuildingBlocks = new OtelBuildingBlocks(sdkTracerProvider, otelTracer, new OtelPropagator(propagators(Collections.singletonList(B3Propagator.injectingMultiHeaders())), tracer), - httpServerHandler, httpClientHandler, customizers, arrayListSpanProcessor); + customizers, arrayListSpanProcessor); ObservationHandler tracingHandlers = this.handlers != null ? this.handlers.apply(otelBuildingBlocks) : tracingHandlers(otelBuildingBlocks); registry.observationConfig().observationHandler(tracingHandlers); diff --git a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/wavefront/WavefrontBraveSetup.java b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/wavefront/WavefrontBraveSetup.java index 23306fbf..97f6aa79 100644 --- a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/wavefront/WavefrontBraveSetup.java +++ b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/wavefront/WavefrontBraveSetup.java @@ -33,8 +33,6 @@ import io.micrometer.tracing.handler.DefaultTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingSenderTracingObservationHandler; -import io.micrometer.tracing.http.HttpClientHandler; -import io.micrometer.tracing.http.HttpServerHandler; import io.micrometer.tracing.reporter.wavefront.WavefrontBraveSpanHandler; import io.micrometer.tracing.reporter.wavefront.WavefrontSpanHandler; import io.micrometer.tracing.test.reporter.BuildingBlocks; @@ -113,12 +111,6 @@ public static class Builder { private Function httpTracing; - @Deprecated - private Function httpServerHandler; - - @Deprecated - private Function httpClientHandler; - private Function> handlers; private BiConsumer>> customizers; @@ -151,12 +143,6 @@ public static class BraveBuildingBlocks implements BuildingBlocks { private final HttpTracing httpTracing; - @Deprecated - private final HttpServerHandler httpServerHandler; - - @Deprecated - private final HttpClientHandler httpClientHandler; - private final BiConsumer>> customizers; private final TestSpanHandler testSpanHandler; @@ -168,14 +154,11 @@ public static class BraveBuildingBlocks implements BuildingBlocks { * @param tracer tracer * @param propagator propagator * @param httpTracing http tracing - * @param httpServerHandler http server handler - * @param httpClientHandler http client handler * @param customizers observation customizers * @param testSpanHandler test span handler */ public BraveBuildingBlocks(WavefrontSpanHandler wavefrontSpanHandler, Tracing tracing, Tracer tracer, - BravePropagator propagator, HttpTracing httpTracing, HttpServerHandler httpServerHandler, - HttpClientHandler httpClientHandler, + BravePropagator propagator, HttpTracing httpTracing, BiConsumer>> customizers, TestSpanHandler testSpanHandler) { this.wavefrontSpanHandler = wavefrontSpanHandler; @@ -183,8 +166,6 @@ public BraveBuildingBlocks(WavefrontSpanHandler wavefrontSpanHandler, Tracing tr this.tracer = tracer; this.propagator = propagator; this.httpTracing = httpTracing; - this.httpServerHandler = httpServerHandler; - this.httpClientHandler = httpClientHandler; this.customizers = customizers; this.testSpanHandler = testSpanHandler; } @@ -199,28 +180,6 @@ public BravePropagator getPropagator() { return this.propagator; } - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http server handler - */ - @Deprecated - @Override - public HttpServerHandler getHttpServerHandler() { - return this.httpServerHandler; - } - - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http client handler - */ - @Deprecated - @Override - public HttpClientHandler getHttpClientHandler() { - return this.httpClientHandler; - } - @Override public BiConsumer>> getCustomizers() { return this.customizers; @@ -317,26 +276,6 @@ public Builder observationHandlerCustomizer( return this; } - /** - * Overrides Http Server Handler. - * @param httpServerHandler http server handler provider - * @return this for chaining - */ - public Builder httpServerHandler(Function httpServerHandler) { - this.httpServerHandler = httpServerHandler; - return this; - } - - /** - * Overrides Http Client Handler. - * @param httpClientHandler http client handler provider - * @return this for chaining - */ - public Builder httpClientHandler(Function httpClientHandler) { - this.httpClientHandler = httpClientHandler; - return this; - } - /** * Overrides Observation Handlers * @param handlers handlers provider @@ -373,16 +312,11 @@ public WavefrontBraveSetup register(MeterRegistry meterRegistry, ObservationRegi : tracing(wavefrontBraveSpanHandler, testSpanHandler); Tracer tracer = this.tracer != null ? this.tracer.apply(tracing) : tracer(tracing); HttpTracing httpTracing = this.httpTracing != null ? this.httpTracing.apply(tracing) : httpTracing(tracing); - HttpServerHandler httpServerHandler = this.httpServerHandler != null - ? this.httpServerHandler.apply(httpTracing) : null; - HttpClientHandler httpClientHandler = this.httpClientHandler != null - ? this.httpClientHandler.apply(httpTracing) : null; BiConsumer>> customizers = this.customizers != null ? this.customizers : (t, h) -> { }; BraveBuildingBlocks braveBuildingBlocks = new BraveBuildingBlocks(wavefrontSpanHandler, tracing, tracer, - new BravePropagator(tracing), httpTracing, httpServerHandler, httpClientHandler, customizers, - testSpanHandler); + new BravePropagator(tracing), httpTracing, customizers, testSpanHandler); ObservationHandler tracingHandlers = this.handlers != null ? this.handlers.apply(braveBuildingBlocks) : tracingHandlers(braveBuildingBlocks); registry.observationConfig().observationHandler(tracingHandlers); diff --git a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/wavefront/WavefrontOtelSetup.java b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/wavefront/WavefrontOtelSetup.java index 22949ac5..da51603c 100644 --- a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/wavefront/WavefrontOtelSetup.java +++ b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/wavefront/WavefrontOtelSetup.java @@ -25,8 +25,6 @@ import io.micrometer.tracing.handler.DefaultTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingSenderTracingObservationHandler; -import io.micrometer.tracing.http.HttpClientHandler; -import io.micrometer.tracing.http.HttpServerHandler; import io.micrometer.tracing.otel.bridge.*; import io.micrometer.tracing.propagation.Propagator; import io.micrometer.tracing.reporter.wavefront.WavefrontOtelSpanExporter; @@ -115,12 +113,6 @@ public static class Builder { private BiConsumer>> customizers; - @Deprecated - private Function httpServerHandler; - - @Deprecated - private Function httpClientHandler; - private Function> handlers; private Consumer closingFunction; @@ -147,10 +139,6 @@ public static class OtelBuildingBlocks implements BuildingBlocks { private final OtelPropagator propagator; - private final HttpServerHandler httpServerHandler; - - private final HttpClientHandler httpClientHandler; - private final BiConsumer>> customizers; private final ArrayListSpanProcessor arrayListSpanProcessor; @@ -160,20 +148,16 @@ public static class OtelBuildingBlocks implements BuildingBlocks { * @param wavefrontOTelSpanExporter span handler * @param otelTracer otel tracer * @param propagator otel propagator - * @param httpServerHandler otel http server handler - * @param httpClientHandler otel http client handler * @param customizers observation customizers * @param arrayListSpanProcessor array list span processor */ public OtelBuildingBlocks(WavefrontOtelSpanExporter wavefrontOTelSpanExporter, OtelTracer otelTracer, - OtelPropagator propagator, HttpServerHandler httpServerHandler, HttpClientHandler httpClientHandler, + OtelPropagator propagator, BiConsumer>> customizers, ArrayListSpanProcessor arrayListSpanProcessor) { this.wavefrontOTelSpanExporter = wavefrontOTelSpanExporter; this.otelTracer = otelTracer; this.propagator = propagator; - this.httpServerHandler = httpServerHandler; - this.httpClientHandler = httpClientHandler; this.customizers = customizers; this.arrayListSpanProcessor = arrayListSpanProcessor; } @@ -188,28 +172,6 @@ public Propagator getPropagator() { return this.propagator; } - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http server handler - */ - @Deprecated - @Override - public HttpServerHandler getHttpServerHandler() { - return this.httpServerHandler; - } - - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http client handler - */ - @Deprecated - @Override - public HttpClientHandler getHttpClientHandler() { - return this.httpClientHandler; - } - @Override public BiConsumer>> getCustomizers() { return this.customizers; @@ -316,30 +278,6 @@ public Builder observationHandlerCustomizer( return this; } - /** - * Overrides Http Server Handler. - * @param httpServerHandler http server handler provider - * @return this for chaining - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public Builder httpServerHandler(Function httpServerHandler) { - this.httpServerHandler = httpServerHandler; - return this; - } - - /** - * Overrides Http Client Handler. - * @param httpClientHandler http client handler provider - * @return this for chaining - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public Builder httpClientHandler(Function httpClientHandler) { - this.httpClientHandler = httpClientHandler; - return this; - } - /** * Overrides Observation Handlers * @param handlers handlers provider @@ -382,14 +320,10 @@ public WavefrontOtelSetup register(ObservationRegistry observationRegistry, Mete BiConsumer>> customizers = this.customizers != null ? this.customizers : (b, t) -> { }; - HttpServerHandler httpServerHandler = this.httpServerHandler != null - ? this.httpServerHandler.apply(openTelemetrySdk) : null; - HttpClientHandler httpClientHandler = this.httpClientHandler != null - ? this.httpClientHandler.apply(openTelemetrySdk) : null; OtelBuildingBlocks otelBuildingBlocks = new OtelBuildingBlocks(wavefrontOTelSpanExporter, otelTracer, new OtelPropagator(propagators(Collections.singletonList(B3Propagator.injectingMultiHeaders())), tracer), - httpServerHandler, httpClientHandler, customizers, arrayListSpanProcessor); + customizers, arrayListSpanProcessor); ObservationHandler tracingHandlers = this.handlers != null ? this.handlers.apply(otelBuildingBlocks) : tracingHandlers(otelBuildingBlocks); observationRegistry.observationConfig().observationHandler(tracingHandlers); diff --git a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/zipkin/ZipkinBraveSetup.java b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/zipkin/ZipkinBraveSetup.java index 28e4a258..af818af3 100644 --- a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/zipkin/ZipkinBraveSetup.java +++ b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/zipkin/ZipkinBraveSetup.java @@ -29,8 +29,6 @@ import io.micrometer.tracing.handler.DefaultTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingSenderTracingObservationHandler; -import io.micrometer.tracing.http.HttpClientHandler; -import io.micrometer.tracing.http.HttpServerHandler; import io.micrometer.tracing.propagation.Propagator; import io.micrometer.tracing.test.reporter.BuildingBlocks; import zipkin2.reporter.BytesMessageSender; @@ -102,12 +100,6 @@ public static class Builder { private Function httpTracing; - @Deprecated - private Function httpServerHandler; - - @Deprecated - private Function httpClientHandler; - private Function> handlers; private BiConsumer>> customizers; @@ -131,12 +123,6 @@ public static class BraveBuildingBlocks implements BuildingBlocks { private final HttpTracing httpTracing; - @Deprecated - private final HttpServerHandler httpServerHandler; - - @Deprecated - private final HttpClientHandler httpClientHandler; - private final BiConsumer>> customizers; private final TestSpanHandler testSpanHandler; @@ -149,14 +135,11 @@ public static class BraveBuildingBlocks implements BuildingBlocks { * @param tracer tracer * @param propagator propagator * @param httpTracing http tracing - * @param httpServerHandler http server handler - * @param httpClientHandler http client handler * @param customizers observation handler customizers * @param testSpanHandler test span handler */ public BraveBuildingBlocks(BytesMessageSender sender, AsyncZipkinSpanHandler spanHandler, Tracing tracing, Tracer tracer, BravePropagator propagator, HttpTracing httpTracing, - HttpServerHandler httpServerHandler, HttpClientHandler httpClientHandler, BiConsumer>> customizers, TestSpanHandler testSpanHandler) { this.sender = sender; @@ -165,8 +148,6 @@ public BraveBuildingBlocks(BytesMessageSender sender, AsyncZipkinSpanHandler spa this.tracer = tracer; this.propagator = propagator; this.httpTracing = httpTracing; - this.httpServerHandler = httpServerHandler; - this.httpClientHandler = httpClientHandler; this.customizers = customizers; this.testSpanHandler = testSpanHandler; } @@ -189,28 +170,6 @@ public Propagator getPropagator() { return this.propagator; } - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http server handler - */ - @Deprecated - @Override - public HttpServerHandler getHttpServerHandler() { - return this.httpServerHandler; - } - - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http client handler - */ - @Deprecated - @Override - public HttpClientHandler getHttpClientHandler() { - return this.httpClientHandler; - } - @Override public BiConsumer>> getCustomizers() { return this.customizers; @@ -307,30 +266,6 @@ public Builder observationHandlerCustomizer( return this; } - /** - * Overrides Http Server Handler. - * @param httpServerHandler http server handler provider - * @return this for chaining - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public Builder httpServerHandler(Function httpServerHandler) { - this.httpServerHandler = httpServerHandler; - return this; - } - - /** - * Overrides Http Client Handler. - * @param httpClientHandler http client handler provider - * @return this for chaining - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public Builder httpClientHandler(Function httpClientHandler) { - this.httpClientHandler = httpClientHandler; - return this; - } - /** * Overrides Observation Handlers * @param handlers handlers provider @@ -367,18 +302,11 @@ public ZipkinBraveSetup register(ObservationRegistry registry) { : tracing(spanHandler, testSpanHandler, this.applicationName); Tracer tracer = this.tracer != null ? this.tracer.apply(tracing) : tracer(tracing); HttpTracing httpTracing = this.httpTracing != null ? this.httpTracing.apply(tracing) : httpTracing(tracing); - @Deprecated - HttpServerHandler httpServerHandler = this.httpServerHandler != null - ? this.httpServerHandler.apply(httpTracing) : null; - @Deprecated - HttpClientHandler httpClientHandler = this.httpClientHandler != null - ? this.httpClientHandler.apply(httpTracing) : null; BiConsumer>> customizers = this.customizers != null ? this.customizers : (t, h) -> { }; BraveBuildingBlocks braveBuildingBlocks = new BraveBuildingBlocks(sender, spanHandler, tracing, tracer, - new BravePropagator(tracing), httpTracing, httpServerHandler, httpClientHandler, customizers, - testSpanHandler); + new BravePropagator(tracing), httpTracing, customizers, testSpanHandler); ObservationHandler tracingHandlers = this.handlers != null ? this.handlers.apply(braveBuildingBlocks) : tracingHandlers(braveBuildingBlocks); registry.observationConfig().observationHandler(tracingHandlers); diff --git a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/zipkin/ZipkinOtelSetup.java b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/zipkin/ZipkinOtelSetup.java index 6ec2f056..cf91ab79 100644 --- a/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/zipkin/ZipkinOtelSetup.java +++ b/micrometer-tracing-tests/micrometer-tracing-integration-test/src/main/java/io/micrometer/tracing/test/reporter/zipkin/ZipkinOtelSetup.java @@ -22,8 +22,6 @@ import io.micrometer.tracing.handler.DefaultTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingReceiverTracingObservationHandler; import io.micrometer.tracing.handler.PropagatingSenderTracingObservationHandler; -import io.micrometer.tracing.http.HttpClientHandler; -import io.micrometer.tracing.http.HttpServerHandler; import io.micrometer.tracing.otel.bridge.*; import io.micrometer.tracing.test.reporter.BuildingBlocks; import io.micrometer.tracing.test.reporter.zipkin.ZipkinOtelSetup.Builder.OtelBuildingBlocks; @@ -111,12 +109,6 @@ public static class Builder { private BiConsumer>> customizers; - @Deprecated - private Function httpServerHandler; - - @Deprecated - private Function httpClientHandler; - private Function> handlers; private Consumer closingFunction; @@ -140,12 +132,6 @@ public static class OtelBuildingBlocks implements BuildingBlocks { private final OtelPropagator propagator; - @Deprecated - private final HttpServerHandler httpServerHandler; - - @Deprecated - private final HttpClientHandler httpClientHandler; - private final BiConsumer>> customizers; private final ArrayListSpanProcessor arrayListSpanProcessor; @@ -159,15 +145,12 @@ public static class OtelBuildingBlocks implements BuildingBlocks { * @param tracer tracer * @param otelTracer otel tracer * @param propagator propagator - * @param httpServerHandler http server handler - * @param httpClientHandler http client handler * @param customizers observation customizers * @param arrayListSpanProcessor array list span processor */ public OtelBuildingBlocks(BytesMessageSender sender, ZipkinSpanExporter zipkinSpanExporter, SdkTracerProvider sdkTracerProvider, OpenTelemetrySdk openTelemetrySdk, Tracer tracer, - OtelTracer otelTracer, OtelPropagator propagator, HttpServerHandler httpServerHandler, - HttpClientHandler httpClientHandler, + OtelTracer otelTracer, OtelPropagator propagator, BiConsumer>> customizers, ArrayListSpanProcessor arrayListSpanProcessor) { this.sender = sender; @@ -177,8 +160,6 @@ public OtelBuildingBlocks(BytesMessageSender sender, ZipkinSpanExporter zipkinSp this.tracer = tracer; this.otelTracer = otelTracer; this.propagator = propagator; - this.httpServerHandler = httpServerHandler; - this.httpClientHandler = httpClientHandler; this.customizers = customizers; this.arrayListSpanProcessor = arrayListSpanProcessor; } @@ -196,28 +177,6 @@ public io.micrometer.tracing.Tracer getTracer() { return this.otelTracer; } - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http server handler - */ - @Deprecated - @Override - public HttpServerHandler getHttpServerHandler() { - return this.httpServerHandler; - } - - /** - * @deprecated scheduled for removal in 1.4.0, returns {@code null} starting - * from 1.3.0 unless explicitly set by the builder - * @return http client handler - */ - @Deprecated - @Override - public HttpClientHandler getHttpClientHandler() { - return this.httpClientHandler; - } - @Override public BiConsumer>> getCustomizers() { return this.customizers; @@ -329,30 +288,6 @@ public Builder observationHandlerCustomizer( return this; } - /** - * Overrides Http Server Handler. - * @param httpServerHandler http server handler provider - * @return this for chaining - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public Builder httpServerHandler(Function httpServerHandler) { - this.httpServerHandler = httpServerHandler; - return this; - } - - /** - * Overrides Http Client Handler. - * @param httpClientHandler http client handler provider - * @return this for chaining - * @deprecated scheduled for removal in 1.4.0 - */ - @Deprecated - public Builder httpClientHandler(Function httpClientHandler) { - this.httpClientHandler = httpClientHandler; - return this; - } - /** * Overrides Observation Handlers * @param handlers handlers provider @@ -393,10 +328,6 @@ public ZipkinOtelSetup register(ObservationRegistry registry) { io.opentelemetry.api.trace.Tracer tracer = this.tracer != null ? this.tracer.apply(openTelemetrySdk) : tracer(openTelemetrySdk); OtelTracer otelTracer = this.otelTracer != null ? this.otelTracer.apply(tracer) : otelTracer(tracer); - HttpServerHandler httpServerHandler = this.httpServerHandler != null - ? this.httpServerHandler.apply(openTelemetrySdk) : null; - HttpClientHandler httpClientHandler = this.httpClientHandler != null - ? this.httpClientHandler.apply(openTelemetrySdk) : null; BiConsumer>> customizers = this.customizers != null ? this.customizers : (t, h) -> { }; @@ -404,7 +335,7 @@ public ZipkinOtelSetup register(ObservationRegistry registry) { sdkTracerProvider, openTelemetrySdk, tracer, otelTracer, new OtelPropagator(propagators(Collections.singletonList(B3Propagator.injectingMultiHeaders())), tracer), - httpServerHandler, httpClientHandler, customizers, arrayListSpanProcessor); + customizers, arrayListSpanProcessor); ObservationHandler tracingHandlers = this.handlers != null ? this.handlers.apply(otelBuildingBlocks) : tracingHandlers(otelBuildingBlocks); registry.observationConfig().observationHandler(tracingHandlers); diff --git a/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleHttpClientHandler.java b/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleHttpClientHandler.java deleted file mode 100644 index 54d6e3e5..00000000 --- a/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleHttpClientHandler.java +++ /dev/null @@ -1,69 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.test.simple; - -import io.micrometer.tracing.http.HttpClientRequest; -import io.micrometer.tracing.http.HttpClientResponse; -import io.micrometer.tracing.Span; -import io.micrometer.tracing.TraceContext; -import io.micrometer.tracing.http.HttpClientHandler; - -/** - * A test implementation of a http client handler. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class SimpleHttpClientHandler implements HttpClientHandler { - - private final SimpleTracer simpleTracer; - - private volatile boolean receiveHandled; - - /** - * Creates a new instance of {@link SimpleHttpClientHandler}. - * @param simpleTracer simple tracer - */ - public SimpleHttpClientHandler(SimpleTracer simpleTracer) { - this.simpleTracer = simpleTracer; - } - - @Override - public Span handleSend(HttpClientRequest request) { - return this.simpleTracer.nextSpan().start(); - } - - @Override - public Span handleSend(HttpClientRequest request, TraceContext parent) { - return this.simpleTracer.nextSpan().start(); - } - - @Override - public void handleReceive(HttpClientResponse response, Span span) { - span.end(); - this.receiveHandled = true; - } - - /** - * @return Was the handle receive method called? - */ - public boolean isReceiveHandled() { - return this.receiveHandled; - } - -} diff --git a/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleHttpServerHandler.java b/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleHttpServerHandler.java deleted file mode 100644 index 79678006..00000000 --- a/micrometer-tracing-tests/micrometer-tracing-test/src/main/java/io/micrometer/tracing/test/simple/SimpleHttpServerHandler.java +++ /dev/null @@ -1,63 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.test.simple; - -import io.micrometer.tracing.http.HttpServerRequest; -import io.micrometer.tracing.http.HttpServerResponse; -import io.micrometer.tracing.Span; -import io.micrometer.tracing.http.HttpServerHandler; - -/** - * A test implementation of a http server handler. - * - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public class SimpleHttpServerHandler implements HttpServerHandler { - - private final SimpleTracer simpleTracer; - - private volatile boolean receiveHandled; - - /** - * Creates a new instance of {@link SimpleHttpServerHandler}. - * @param simpleTracer simple tracer - */ - public SimpleHttpServerHandler(SimpleTracer simpleTracer) { - this.simpleTracer = simpleTracer; - } - - @Override - public Span handleReceive(HttpServerRequest request) { - return this.simpleTracer.nextSpan().start(); - } - - @Override - public void handleSend(HttpServerResponse response, Span span) { - span.end(); - this.receiveHandled = true; - } - - /** - * @return was the handle receive method called? - */ - public boolean isReceiveHandled() { - return this.receiveHandled; - } - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/SamplerFunction.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/SamplerFunction.java deleted file mode 100644 index e619ebc1..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/SamplerFunction.java +++ /dev/null @@ -1,127 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing; - -import io.micrometer.common.lang.Nullable; - -/** - * This API was heavily influenced by Brave. Parts of its documentation were taken - * directly from Brave. - *

- * Decides whether to start a new trace based on request properties such as an HTTP path. - * - * @param type of the input, for example a request or method - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface SamplerFunction { - - /** - * Always deferring {@link SamplerFunction}. - * @param type of the input, for example a request or method - * @return decision deferring sampler function - */ - @SuppressWarnings("unchecked") - static SamplerFunction deferDecision() { - return (SamplerFunction) Constants.DEFER_DECISION; - } - - /** - * Never sampling {@link SamplerFunction}. - * @param type of the input, for example a request or method - * @return never sampling sampler function - */ - @SuppressWarnings("unchecked") - static SamplerFunction neverSample() { - return (SamplerFunction) Constants.NEVER_SAMPLE; - } - - /** - * Always sampling {@link SamplerFunction}. - * @param type of the input, for example a request or method - * @return always sampling sampler function - */ - @SuppressWarnings("unchecked") - static SamplerFunction alwaysSample() { - return (SamplerFunction) Constants.ALWAYS_SAMPLE; - } - - /** - * Returns an overriding sampling decision for a new trace. - * @param arg parameter to evaluate for a sampling decision. {@code null} input - * results in a {@code null} result - * @return {@code true} to sample a new trace or {@code false} to deny. {@code null} - * defers the decision. - */ - @Nullable - Boolean trySample(@Nullable T arg); - - /** - * Constant {@link SamplerFunction}s. - */ - enum Constants implements SamplerFunction { - - /** - * Always defers sampling decision. - */ - DEFER_DECISION { - @Override - public Boolean trySample(Object request) { - return null; - } - - @Override - public String toString() { - return "DeferDecision"; - } - }, - - /** - * Will never sample this trace. - */ - NEVER_SAMPLE { - @Override - public Boolean trySample(Object request) { - return false; - } - - @Override - public String toString() { - return "NeverSample"; - } - }, - - /** - * Will always sample this trace. - */ - ALWAYS_SAMPLE { - @Override - public Boolean trySample(Object request) { - return true; - } - - @Override - public String toString() { - return "AlwaysSample"; - } - } - - } - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientHandler.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientHandler.java deleted file mode 100644 index 7497e065..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientHandler.java +++ /dev/null @@ -1,64 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.common.lang.Nullable; -import io.micrometer.tracing.Span; -import io.micrometer.tracing.TraceContext; - -/** - * This API is taken from OpenZipkin Brave. - *

- * This standardizes a way to instrument http clients, particularly in a way that - * encourages use of portable customizations via {@link HttpRequestParser} and - * {@link HttpResponseParser}. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface HttpClientHandler { - - /** - * Starts the client span after assigning it a name and tags. This injects the trace - * context onto the request before returning. - *

- * Call this before sending the request on the wire. - * @param request to inject the tracing context with - * @return client side span - */ - Span handleSend(HttpClientRequest request); - - /** - * Same as {@link #handleSend(HttpClientRequest)} but with an explicit parent - * {@link TraceContext}. - * @param request to inject the tracing context with - * @param parent {@link TraceContext} that is to be the client side span's parent - * @return client side span - */ - Span handleSend(HttpClientRequest request, @Nullable TraceContext parent); - - /** - * Finishes the client span after assigning it tags according to the response or - * error. - * @param response the HTTP response - * @param span span to be ended - */ - void handleReceive(HttpClientResponse response, Span span); - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientRequest.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientRequest.java deleted file mode 100644 index 37f97aba..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientRequest.java +++ /dev/null @@ -1,45 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.observation.transport.Kind; - -/** - * This API is taken from OpenZipkin Brave. - *

- * Abstract request type used for parsing and sampling. Represents an HTTP Client request. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.10.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface HttpClientRequest extends HttpRequest { - - /** - * Adds a new header. - * @param name header name - * @param value header value - */ - void header(String name, String value); - - @Override - default Kind kind() { - return Kind.CLIENT; - } - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientResponse.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientResponse.java deleted file mode 100644 index 453bf93d..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpClientResponse.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.common.lang.Nullable; -import io.micrometer.observation.transport.Kind; - -/** - * This API is taken from OpenZipkin Brave. - *

- * Abstract response type used for parsing and sampling. Represents an HTTP Client - * response. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.10.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface HttpClientResponse extends HttpResponse { - - @Nullable - default HttpClientRequest request() { - return null; - } - - @Override - default Throwable error() { - return null; - } - - @Override - default Kind kind() { - return Kind.CLIENT; - } - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpRequest.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpRequest.java deleted file mode 100644 index 72e8c4f1..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpRequest.java +++ /dev/null @@ -1,89 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.common.lang.Nullable; - -/** - * This API is taken from OpenZipkin Brave. - *

- * Abstract response type used for parsing and sampling. Represents an HTTP request. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.10.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface HttpRequest extends Request { - - /** - * Returns an HTTP method. - * @return an HTTP method. - */ - String method(); - - /** - * Returns an HTTP path. - * @return an HTTP path or {@code null} if not set. - */ - @Nullable - String path(); - - /** - * Returns an expression such as "/items/:itemId" representing an application - * endpoint, conventionally associated with the tag key "http.route". If no route - * matched, "" (empty string) is returned. {@code null} indicates this instrumentation - * doesn't understand http routes. - * @return an HTTP route or {@code null} if not set - */ - @Nullable - default String route() { - return null; - } - - /** - * Returns an HTTP URL. - * @return an HTTP URL or {@code null} if not set. - */ - @Nullable - String url(); - - /** - * Returns a header. - * @param name header name - * @return an HTTP header or {@code null} if not set. - */ - @Nullable - String header(String name); - - /** - * Returns a remote IP. - * @return remote IP for the given connection. - */ - default String remoteIp() { - return null; - } - - /** - * Returns a remote port. - * @return remote port for the given connection. - */ - default int remotePort() { - return 0; - } - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpRequestParser.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpRequestParser.java deleted file mode 100644 index 947ce9b6..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpRequestParser.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.tracing.SpanCustomizer; -import io.micrometer.tracing.TraceContext; - -/** - * This API is taken from OpenZipkin Brave. - *

- * Use this to control the request data recorded. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface HttpRequestParser { - - /** - * Implement to choose what data from the http request are parsed into the span - * representing it. - * @param request current request - * @param context corresponding trace context - * @param span customizer for the current span - */ - void parse(HttpRequest request, TraceContext context, SpanCustomizer span); - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpResponse.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpResponse.java deleted file mode 100644 index 4a84eb34..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpResponse.java +++ /dev/null @@ -1,77 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.common.lang.Nullable; - -/** - * This API is taken from OpenZipkin Brave. - *

- * Abstract response type used for parsing and sampling. Represents an HTTP response. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.10.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface HttpResponse extends Response { - - @Nullable - @Override - default HttpRequest request() { - return null; - } - - /** - * Returns an HTTP method. - * @return an HTTP method - */ - @Nullable - default String method() { - HttpRequest request = request(); - return request != null ? request.method() : null; - } - - /** - * Returns an expression such as "/items/:itemId" representing an application - * endpoint, conventionally associated with the tag key "http.route". If no route - * matched, "" (empty string) is returned. {@code null} indicates this instrumentation - * doesn't understand http routes. - * @return an HTTP route or {@code null} if not set - */ - @Nullable - default String route() { - HttpRequest request = request(); - return request != null ? request.route() : null; - } - - /** - * Returns the HTTP status code. - * @return an HTTP status code or zero if unreadable - */ - int statusCode(); - - /** - * Returns the header value. - * @param header header name - * @return an HTTP header or {@code null} if not set. - */ - default String header(String header) { - return null; - } - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpResponseParser.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpResponseParser.java deleted file mode 100644 index 6397fc17..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpResponseParser.java +++ /dev/null @@ -1,43 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.tracing.SpanCustomizer; -import io.micrometer.tracing.TraceContext; - -/** - * This API is taken from OpenZipkin Brave. - *

- * Use this to control the response data recorded. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface HttpResponseParser { - - /** - * Implement to choose what data from the http response are parsed into the span - * representing it. - * @param response current response - * @param context corresponding trace context - * @param span customizer for the current span - */ - void parse(HttpResponse response, TraceContext context, SpanCustomizer span); - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerHandler.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerHandler.java deleted file mode 100644 index 124e5a9b..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerHandler.java +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.tracing.Span; - -/** - * This API is taken from OpenZipkin Brave. - *

- * This standardizes a way to instrument http servers, particularly in a way that - * encourages use of portable customizations via {@link HttpRequestParser} and - * {@link HttpResponseParser}. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.0.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface HttpServerHandler { - - /** - * Conditionally joins a span, or starts a new trace, depending on if a trace context - * was extracted from the request. Tags are added before the span is started. - * @param request HTTP request - * @return server side span (either joined or a new trace) - */ - Span handleReceive(HttpServerRequest request); - - /** - * Finishes the server span after assigning it tags according to the response or - * error. - * @param response HTTP response - * @param span server side span to end - */ - void handleSend(HttpServerResponse response, Span span); - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerRequest.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerRequest.java deleted file mode 100644 index ea1219e1..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerRequest.java +++ /dev/null @@ -1,56 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.observation.transport.Kind; - -/** - * This API is taken from OpenZipkin Brave. - *

- * Abstract request type used for parsing and sampling. Represents an HTTP Server request. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.10.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface HttpServerRequest extends HttpRequest { - - /** - * Returns an HTTP attribute. - * @param key attribute key - * @return attribute with the given key or {@code null} if not set - */ - default Object getAttribute(String key) { - return null; - } - - /** - * Sets an HTTP attribute. - * @param key attribute key - * @param value attribute value - */ - default void setAttribute(String key, Object value) { - - } - - @Override - default Kind kind() { - return Kind.SERVER; - } - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerResponse.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerResponse.java deleted file mode 100644 index 0a461c5f..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/HttpServerResponse.java +++ /dev/null @@ -1,50 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.common.lang.Nullable; -import io.micrometer.observation.transport.Kind; - -/** - * This API is taken from OpenZipkin Brave. - *

- * Abstract response type used for parsing and sampling. Represents an HTTP Server - * response. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.10.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface HttpServerResponse extends HttpResponse { - - @Nullable - default HttpServerRequest request() { - return null; - } - - @Override - default Throwable error() { - return null; - } - - @Override - default Kind kind() { - return Kind.SERVER; - } - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/Request.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/Request.java deleted file mode 100644 index 4de6c647..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/Request.java +++ /dev/null @@ -1,53 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.observation.transport.Kind; - -import java.util.Collection; - -/** - * This API is taken from OpenZipkin Brave. - *

- * Abstract request type used for parsing and sampling. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.10.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface Request { - - /** - * Returns the header names. - * @return collection of header names - */ - Collection headerNames(); - - /** - * Returns the transport kind. - * @return the remote kind describing the direction and type of the request - */ - Kind kind(); - - /** - * Returns the underlying request object. - * @return the underlying request object or {@code null} if there is none - */ - Object unwrap(); - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/Response.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/Response.java deleted file mode 100644 index c25cc0c8..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/Response.java +++ /dev/null @@ -1,68 +0,0 @@ -/** - * Copyright 2022 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package io.micrometer.tracing.http; - -import io.micrometer.common.lang.Nullable; -import io.micrometer.observation.transport.Kind; - -import java.util.Collection; - -/** - * This API is taken from OpenZipkin Brave. - *

- * Abstract response type used for parsing and sampling. - * - * @author OpenZipkin Brave Authors - * @author Marcin Grzejszczak - * @since 1.10.0 - * @deprecated scheduled for removal in 1.4.0 - */ -@Deprecated -public interface Response { - - /** - * Returns the header names. - * @return collection of header names - */ - Collection headerNames(); - - /** - * Returns the HTTP request. - * @return corresponding request - */ - @Nullable - Request request(); - - /** - * Returns the exception. - * @return exception that occurred or {@code null} if there was none. - */ - @Nullable - Throwable error(); - - /** - * Returns the underlying response object. - * @return the underlying response object or {@code null} if there is none. - */ - Object unwrap(); - - /** - * Returns the transport kind. - * @return the remote kind describing the direction and type of the response - */ - Kind kind(); - -} diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/package-info.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/http/package-info.java deleted file mode 100644 index 4894a911..00000000 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/http/package-info.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * Copyright 2024 the original author or authors. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * https://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -@NonNullApi -@NonNullFields -package io.micrometer.tracing.http; - -import io.micrometer.common.lang.NonNullApi; -import io.micrometer.common.lang.NonNullFields; From dd47bf564a3efb1fd5856cc9e9bc4c71731c0caf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 16:17:50 +0200 Subject: [PATCH 12/58] Bump io.zipkin.aws:brave-propagation-aws from 1.2.4 to 1.2.5 (#728) Bumps io.zipkin.aws:brave-propagation-aws from 1.2.4 to 1.2.5. --- updated-dependencies: - dependency-name: io.zipkin.aws:brave-propagation-aws dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2292d201..78643bb5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ jmh="1.37" jakartaWeb="9.1.0" otelInstrumentation="1.33.3-alpha" aopalliance="1.0" -zipkinAws="1.2.4" +zipkinAws="1.2.5" otelBom="1.38.0" logback = "1.5.6" wavefrontSdk="3.4.3" From 1b94f0cbbb77b26a9d84ac704cd8f825074185ab Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 27 May 2024 16:18:01 +0200 Subject: [PATCH 13/58] Bump org.assertj:assertj-core from 3.25.3 to 3.26.0 (#729) Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.25.3 to 3.26.0. - [Release notes](https://github.com/assertj/assertj/releases) - [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.25.3...assertj-build-3.26.0) --- updated-dependencies: - dependency-name: org.assertj:assertj-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 78643bb5..be067c4d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ otelBomAlpha="1.38.0-alpha" log4j = "2.23.1" wavefrontReporter="1.7.16" slf4j = "1.7.36" -assertj = "3.25.3" +assertj = "3.26.0" awaitility = "4.2.1" mockito = "5.12.0" wiremock = "3.0.1" From ebab859f47fd4e8b660238937dc21663fda2a7b7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 17:09:37 +0200 Subject: [PATCH 14/58] Bump io.opentelemetry:opentelemetry-bom-alpha (#734) Bumps [io.opentelemetry:opentelemetry-bom-alpha](https://github.com/open-telemetry/opentelemetry-java) from 1.38.0-alpha to 1.39.0-alpha. - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/commits) --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom-alpha dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index be067c4d..bb3b29e4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ zipkinAws="1.2.5" otelBom="1.38.0" logback = "1.5.6" wavefrontSdk="3.4.3" -otelBomAlpha="1.38.0-alpha" +otelBomAlpha="1.39.0-alpha" log4j = "2.23.1" wavefrontReporter="1.7.16" slf4j = "1.7.36" From e655290aed6b90ee0bc62de2eac4f4b523527f8d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 7 Jun 2024 17:09:54 +0200 Subject: [PATCH 15/58] Bump io.opentelemetry:opentelemetry-bom from 1.38.0 to 1.39.0 (#733) Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.38.0 to 1.39.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.38.0...v1.39.0) --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bb3b29e4..abe8782d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,7 +8,7 @@ jakartaWeb="9.1.0" otelInstrumentation="1.33.3-alpha" aopalliance="1.0" zipkinAws="1.2.5" -otelBom="1.38.0" +otelBom="1.39.0" logback = "1.5.6" wavefrontSdk="3.4.3" otelBomAlpha="1.39.0-alpha" From 9a34a7681f76222150f5f35b838928c6e4710dc2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 17:46:44 +0200 Subject: [PATCH 16/58] Bump io.spring.javaformat:spring-javaformat-gradle-plugin (#735) Bumps [io.spring.javaformat:spring-javaformat-gradle-plugin](https://github.com/spring-io/spring-javaformat) from 0.0.41 to 0.0.42. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.41...v0.0.42) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-gradle-plugin dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index abe8782d..5c49461c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -74,7 +74,7 @@ plugin-nebulaProject = { module = "com.netflix.nebula:nebula-project-plugin", ve plugin-nebulaInfo = { module = "com.netflix.nebula:gradle-info-plugin", version = "12.1.6" } plugin-noHttp = { module = "io.spring.nohttp:nohttp-gradle", version = "0.0.11" } plugin-nexusPublish = { module = "io.github.gradle-nexus:publish-plugin", version = "1.3.0" } -plugin-javaformat = { module = "io.spring.javaformat:spring-javaformat-gradle-plugin", version = "0.0.41" } +plugin-javaformat = { module = "io.spring.javaformat:spring-javaformat-gradle-plugin", version = "0.0.42" } plugin-jmh = { module = "me.champeau.jmh:jmh-gradle-plugin", version = "0.7.2" } plugin-spring-antora = { module = "io.spring.gradle.antora:spring-antora-plugin", version = "0.0.1" } plugin-antora = { module = "org.antora:gradle-antora-plugin", version = "1.0.0" } From 3633082f02b0eebbbe240f9ea19568c3b4b5624b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 17:47:07 +0200 Subject: [PATCH 17/58] Bump io.spring.javaformat:spring-javaformat-checkstyle (#737) Bumps [io.spring.javaformat:spring-javaformat-checkstyle](https://github.com/spring-io/spring-javaformat) from 0.0.41 to 0.0.42. - [Release notes](https://github.com/spring-io/spring-javaformat/releases) - [Commits](https://github.com/spring-io/spring-javaformat/compare/v0.0.41...v0.0.42) --- updated-dependencies: - dependency-name: io.spring.javaformat:spring-javaformat-checkstyle dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5c49461c..2c8c01ab 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -25,7 +25,7 @@ bravePropagationW3c = "0.2.0" zipkinReporterBom = "3.4.0" reactorBom = "2022.0.19" asmForPlugins = "7.3.1" -javaFormatForPlugins = "0.0.41" +javaFormatForPlugins = "0.0.42" jsr305 = "3.0.2" aspectjweaver = "1.9.22.1" spring = "5.3.36" From 593e2251ab62e6d290ccd069d8be60cb63333419 Mon Sep 17 00:00:00 2001 From: Jonatan Ivanov Date: Mon, 10 Jun 2024 14:27:32 -0700 Subject: [PATCH 18/58] Increase dependabot's open-pull-requests-limit --- .github/dependabot.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 7b44940d..f7757832 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -18,7 +18,7 @@ updates: update-types: - version-update:semver-major - version-update:semver-minor - open-pull-requests-limit: 10 + open-pull-requests-limit: 30 - package-ecosystem: gradle directory: "/" schedule: @@ -31,7 +31,7 @@ updates: update-types: - version-update:semver-major - version-update:semver-minor - open-pull-requests-limit: 10 + open-pull-requests-limit: 30 - package-ecosystem: gradle directory: "/" schedule: @@ -43,4 +43,4 @@ updates: - dependency-name: "*" update-types: - version-update:semver-major - open-pull-requests-limit: 10 + open-pull-requests-limit: 50 From 76de5b14c75f3f30eddeb4c51b0a320dd24601c6 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 10 Jun 2024 14:41:34 -0700 Subject: [PATCH 19/58] Bump io.micrometer:micrometer-bom from 1.13.0 to 1.13.1 (#741) Bumps io.micrometer:micrometer-bom from 1.13.0 to 1.13.1. --- updated-dependencies: - dependency-name: io.micrometer:micrometer-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 2c8c01ab..c6a00d7e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -micrometer = "1.13.0" +micrometer = "1.13.1" micrometerContextPropagation="1.1.1" junit = "5.10.2" javaxServlet="4.0.1" From bee7c5f8480225788959e4d270de43b25443c151 Mon Sep 17 00:00:00 2001 From: Masanori Matsumoto Date: Tue, 11 Jun 2024 20:50:18 +0900 Subject: [PATCH 20/58] Add `@Nullable` annotations (#744) * Added `@Nullable` annotations to method parameters and return values * Fixed that `OtelSpan.event()` does not return null --- .../tracing/brave/bridge/BraveBaggageInScope.java | 2 ++ .../tracing/brave/bridge/BraveBaggageManager.java | 4 +++- .../brave/bridge/BraveCurrentTraceContext.java | 6 ++++-- .../tracing/brave/bridge/BraveFinishedSpan.java | 3 +++ .../tracing/brave/bridge/BravePropagator.java | 3 ++- .../micrometer/tracing/brave/bridge/BraveSpan.java | 4 +++- .../tracing/brave/bridge/BraveTraceContext.java | 4 +++- .../tracing/brave/bridge/BraveTracer.java | 11 ++++++++--- .../micrometer/tracing/brave/bridge/LinkUtils.java | 3 +++ .../otel/bridge/EventPublishingContextWrapper.java | 6 ++++++ .../tracing/otel/bridge/OtelBaggageInScope.java | 5 ++++- .../tracing/otel/bridge/OtelBaggageManager.java | 14 ++++++++++---- .../otel/bridge/OtelCurrentTraceContext.java | 12 ++++++++---- .../tracing/otel/bridge/OtelFinishedSpan.java | 7 +++++++ .../tracing/otel/bridge/OtelPropagator.java | 8 +++++--- .../micrometer/tracing/otel/bridge/OtelSpan.java | 2 +- .../tracing/otel/bridge/OtelTraceContext.java | 8 +++++--- .../micrometer/tracing/otel/bridge/OtelTracer.java | 12 ++++++++---- .../tracing/otel/bridge/SpanFromSpanContext.java | 2 +- .../java/io/micrometer/tracing/BaggageManager.java | 1 + .../java/io/micrometer/tracing/TraceContext.java | 1 + .../main/java/io/micrometer/tracing/Tracer.java | 1 + 22 files changed, 89 insertions(+), 30 deletions(-) diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageInScope.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageInScope.java index 016640cf..b4b04bda 100755 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageInScope.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageInScope.java @@ -66,11 +66,13 @@ public String name() { } @Override + @Nullable public String get() { return this.traceContext != null ? this.delegate.getValue(traceContext) : this.delegate.getValue(); } @Override + @Nullable public String get(TraceContext traceContext) { return this.delegate.getValue(BraveTraceContext.toBrave(traceContext)); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageManager.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageManager.java index 995eaead..bcb9033b 100755 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageManager.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveBaggageManager.java @@ -84,7 +84,7 @@ public Map getAllBaggage() { } @Override - public Map getAllBaggage(TraceContext traceContext) { + public Map getAllBaggage(@Nullable TraceContext traceContext) { if (traceContext == null) { return getAllBaggage(); } @@ -97,6 +97,7 @@ public Baggage getBaggage(String name) { } @Override + @Nullable public Baggage getBaggage(TraceContext traceContext, String name) { BaggageField baggageField = BaggageField.getByName(BraveTraceContext.toBrave(traceContext), name); if (baggageField == null) { @@ -125,6 +126,7 @@ private BraveBaggageInScope baggage(String name) { } // Taken from BraveField + @Nullable private Span currentSpan() { if (tracer != null) { io.micrometer.tracing.Span span = tracer.currentSpan(); diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveCurrentTraceContext.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveCurrentTraceContext.java index b01e5d92..820ee379 100755 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveCurrentTraceContext.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveCurrentTraceContext.java @@ -15,6 +15,7 @@ */ package io.micrometer.tracing.brave.bridge; +import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.CurrentTraceContext; import io.micrometer.tracing.TraceContext; @@ -59,6 +60,7 @@ public static CurrentTraceContext fromBrave(brave.propagation.CurrentTraceContex } @Override + @Nullable public TraceContext context() { brave.propagation.TraceContext context = this.delegate.get(); if (context == null) { @@ -68,13 +70,13 @@ public TraceContext context() { } @Override - public Scope newScope(TraceContext context) { + public Scope newScope(@Nullable TraceContext context) { return new BraveScope( this.delegate.newScope(io.micrometer.tracing.brave.bridge.BraveTraceContext.toBrave(context))); } @Override - public Scope maybeScope(TraceContext context) { + public Scope maybeScope(@Nullable TraceContext context) { return new BraveScope( this.delegate.maybeScope(io.micrometer.tracing.brave.bridge.BraveTraceContext.toBrave(context))); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveFinishedSpan.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveFinishedSpan.java index 03e63930..b3ef07f4 100755 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveFinishedSpan.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveFinishedSpan.java @@ -16,6 +16,7 @@ package io.micrometer.tracing.brave.bridge; import brave.handler.MutableSpan; +import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.Link; import io.micrometer.tracing.Span; import io.micrometer.tracing.TraceContext; @@ -154,6 +155,7 @@ public String getTraceId() { } @Override + @Nullable public Throwable getError() { return this.mutableSpan.error(); } @@ -173,6 +175,7 @@ public Span.Kind getKind() { } @Override + @Nullable public String getRemoteServiceName() { return this.mutableSpan.remoteServiceName(); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BravePropagator.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BravePropagator.java index 18de7a21..04bdd19e 100755 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BravePropagator.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BravePropagator.java @@ -19,6 +19,7 @@ import brave.baggage.BaggageField; import brave.internal.baggage.BaggageFields; import brave.propagation.TraceContextOrSamplingFlags; +import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.Span; import io.micrometer.tracing.TraceContext; import io.micrometer.tracing.propagation.Propagator; @@ -49,7 +50,7 @@ public List fields() { } @Override - public void inject(TraceContext traceContext, C carrier, Setter setter) { + public void inject(TraceContext traceContext, @Nullable C carrier, Setter setter) { this.tracing.propagation().injector(setter::set).inject(BraveTraceContext.toBrave(traceContext), carrier); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveSpan.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveSpan.java index 671f0077..bb349ba2 100755 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveSpan.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveSpan.java @@ -18,6 +18,7 @@ import java.util.Objects; import java.util.concurrent.TimeUnit; +import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.Span; import io.micrometer.tracing.TraceContext; @@ -44,7 +45,8 @@ public BraveSpan(brave.Span delegate) { * @param span Tracing version * @return Brave's version */ - public static brave.Span toBrave(Span span) { + @Nullable + public static brave.Span toBrave(@Nullable Span span) { BraveSpan braveSpan = (BraveSpan) span; if (braveSpan == null) { return null; diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTraceContext.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTraceContext.java index cfd8923e..3fa7be92 100755 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTraceContext.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTraceContext.java @@ -43,7 +43,8 @@ public BraveTraceContext(brave.propagation.TraceContext traceContext) { * @param traceContext Tracing version * @return Brave version */ - public static brave.propagation.TraceContext toBrave(TraceContext traceContext) { + @Nullable + public static brave.propagation.TraceContext toBrave(@Nullable TraceContext traceContext) { if (traceContext == null) { return null; } @@ -76,6 +77,7 @@ public String spanId() { } @Override + @Nullable public Boolean sampled() { return this.traceContext.sampled(); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTracer.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTracer.java index 793d46c3..1bf636a6 100755 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTracer.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/BraveTracer.java @@ -16,6 +16,7 @@ package io.micrometer.tracing.brave.bridge; import brave.propagation.TraceContextOrSamplingFlags; +import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.*; import java.util.List; @@ -60,7 +61,8 @@ public BraveTracer(brave.Tracer tracer, CurrentTraceContext context) { } @Override - public Span nextSpan(Span parent) { + @Nullable + public Span nextSpan(@Nullable Span parent) { if (parent == null) { return nextSpan(); } @@ -72,7 +74,7 @@ public Span nextSpan(Span parent) { } @Override - public SpanInScope withSpan(Span span) { + public SpanInScope withSpan(@Nullable Span span) { return new BraveSpanInScope(tracer.withSpanInScope(span == null ? null : ((BraveSpan) span).delegate)); } @@ -82,6 +84,7 @@ public SpanCustomizer currentSpanCustomizer() { } @Override + @Nullable public Span currentSpan() { brave.Span currentSpan = this.tracer.currentSpan(); if (currentSpan == null) { @@ -111,7 +114,7 @@ public TraceContext.Builder traceContextBuilder() { } @Override - public Map getAllBaggage(TraceContext traceContext) { + public Map getAllBaggage(@Nullable TraceContext traceContext) { return this.braveBaggageManager.getAllBaggage(traceContext); } @@ -121,11 +124,13 @@ public Map getAllBaggage() { } @Override + @Nullable public Baggage getBaggage(String name) { return this.braveBaggageManager.getBaggage(name); } @Override + @Nullable public Baggage getBaggage(TraceContext traceContext, String name) { return this.braveBaggageManager.getBaggage(traceContext, name); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/LinkUtils.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/LinkUtils.java index 7b1a655c..d3c1a5db 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/LinkUtils.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/main/java/io/micrometer/tracing/brave/bridge/LinkUtils.java @@ -15,6 +15,7 @@ */ package io.micrometer.tracing.brave.bridge; +import io.micrometer.common.lang.Nullable; import io.micrometer.common.util.StringUtils; import io.micrometer.tracing.Link; import io.micrometer.tracing.TraceContext; @@ -74,6 +75,7 @@ static int nextIndex(Map tags) { .size(); } + @Nullable static Link toLink(List> groupedTags) { String traceId = ""; String spanId = ""; @@ -119,6 +121,7 @@ static long spanId(String spanId) { return fromString[fromString.length == 2 ? 1 : 0]; } + @Nullable static String tagKeyNameFromString(String tag) { Matcher matcher = TAG_KEY.matcher(tag); if (matcher.matches()) { diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/EventPublishingContextWrapper.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/EventPublishingContextWrapper.java index f8cccd84..4c9f9221 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/EventPublishingContextWrapper.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/EventPublishingContextWrapper.java @@ -76,6 +76,7 @@ public static class ScopeAttachedEvent { /** * Context corresponding to the attached scope. Might be {@code null}. */ + @Nullable final Context context; /** @@ -86,10 +87,12 @@ public ScopeAttachedEvent(@Nullable Context context) { this.context = context; } + @Nullable public Span getSpan() { return Span.fromContextOrNull(context); } + @Nullable public Baggage getBaggage() { return Baggage.fromContextOrNull(context); } @@ -117,6 +120,7 @@ public static class ScopeRestoredEvent { * {@link Context} corresponding to the scope being restored. Might be * {@code null}. */ + @Nullable final Context context; /** @@ -127,10 +131,12 @@ public ScopeRestoredEvent(@Nullable Context context) { this.context = context; } + @Nullable public Span getSpan() { return Span.fromContextOrNull(context); } + @Nullable public Baggage getBaggage() { return Baggage.fromContextOrNull(context); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageInScope.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageInScope.java index 988d943e..305a461f 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageInScope.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageInScope.java @@ -15,6 +15,7 @@ */ package io.micrometer.tracing.otel.bridge; +import io.micrometer.common.lang.Nullable; import io.micrometer.common.util.internal.logging.InternalLogger; import io.micrometer.common.util.internal.logging.InternalLoggerFactory; import io.micrometer.tracing.BaggageInScope; @@ -83,6 +84,7 @@ public String name() { } @Override + @Nullable public String get() { if (entry.get() != null) { return entry.get().value; @@ -91,6 +93,7 @@ public String get() { } @Override + @Nullable public String get(TraceContext traceContext) { Entry entry = this.otelBaggageManager.getEntry((OtelTraceContext) traceContext, entry().getKey()); if (entry == null) { @@ -105,7 +108,7 @@ public io.micrometer.tracing.Baggage set(String value) { return doSet(this.currentTraceContext.context(), value); } - private io.micrometer.tracing.Baggage doSet(TraceContext context, String value) { + private io.micrometer.tracing.Baggage doSet(@Nullable TraceContext context, String value) { if (context == null) { return this; } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageManager.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageManager.java index 7ff0e637..44ce3981 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageManager.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelBaggageManager.java @@ -87,7 +87,7 @@ private Map toMap(CompositeBaggage compositeBaggage) { } @Override - public Map getAllBaggage(TraceContext traceContext) { + public Map getAllBaggage(@Nullable TraceContext traceContext) { if (traceContext == null) { return getAllBaggage(); } @@ -98,7 +98,7 @@ CompositeBaggage currentBaggage() { return baggage((OtelTraceContext) currentTraceContext.context()); } - private CompositeBaggage baggage(OtelTraceContext traceContext) { + private CompositeBaggage baggage(@Nullable OtelTraceContext traceContext) { Context context = Context.current(); Deque stack = new ArrayDeque<>(); stack.addFirst(context); @@ -114,13 +114,14 @@ public io.micrometer.tracing.Baggage getBaggage(String name) { return createNewEntryIfMissing(name, entry); } - io.micrometer.tracing.Baggage createNewEntryIfMissing(String name, Entry entry) { + io.micrometer.tracing.Baggage createNewEntryIfMissing(String name, @Nullable Entry entry) { if (entry == null) { return createBaggage(name); } return otelBaggage(entry); } + @Nullable private Entry getBaggage(String name, io.opentelemetry.api.baggage.Baggage baggage) { return entryForName(name, baggage); } @@ -147,16 +148,19 @@ public io.micrometer.tracing.Baggage getBaggage(TraceContext traceContext, Strin return null; } + @Nullable Entry getEntry(OtelTraceContext traceContext, String name) { OtelTraceContext context = traceContext; Context ctx = context.context(); return getBaggage(name, Baggage.fromContext(ctx)); } + @Nullable Context removeFirst(Deque stack) { return stack.isEmpty() ? null : stack.removeFirst(); } + @Nullable private Entry entryForName(String name, io.opentelemetry.api.baggage.Baggage baggage) { return Entry.fromBaggage(baggage) .stream() @@ -265,6 +269,7 @@ public Map asMap() { } @Override + @Nullable public String getEntryValue(String entryKey) { return this.entries.stream() .filter(entry -> entryKey.equals(entry.getKey())) @@ -284,11 +289,12 @@ class Entry implements BaggageEntry { final String key; + @Nullable final String value; final BaggageEntryMetadata entryMetadata; - Entry(String key, String value, BaggageEntryMetadata entryMetadata) { + Entry(String key, @Nullable String value, BaggageEntryMetadata entryMetadata) { this.key = key; this.value = value; this.entryMetadata = entryMetadata; diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelCurrentTraceContext.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelCurrentTraceContext.java index 8a58ae20..6fdd7dfc 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelCurrentTraceContext.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelCurrentTraceContext.java @@ -19,6 +19,7 @@ import java.util.concurrent.Executor; import java.util.concurrent.ExecutorService; +import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.CurrentTraceContext; import io.micrometer.tracing.TraceContext; import io.opentelemetry.api.baggage.Baggage; @@ -42,6 +43,7 @@ public class OtelCurrentTraceContext implements CurrentTraceContext { private static final ContextKey OTEL_CONTEXT_KEY = ContextKey.named(TRACING_OTEL_CONTEXT_KEY); @Override + @Nullable public TraceContext context() { OtelTraceContext otelTraceContext = Context.current().get(OTEL_CONTEXT_KEY); if (otelTraceContext != null) { @@ -65,7 +67,7 @@ public TraceContext context() { * @return scope that always must be closed */ @Override - public Scope newScope(TraceContext context) { + public Scope newScope(@Nullable TraceContext context) { OtelTraceContext otelTraceContext = (OtelTraceContext) context; if (otelTraceContext == null) { return new WrappedScope(io.opentelemetry.context.Scope.noop()); @@ -106,7 +108,7 @@ private boolean sameBaggage(Baggage currentBaggage, Baggage oldBaggage) { } @Override - public Scope maybeScope(TraceContext context) { + public Scope maybeScope(@Nullable TraceContext context) { if (context == null) { io.opentelemetry.context.Scope scope = Context.root().makeCurrent(); return new WrappedScope(scope); @@ -138,16 +140,18 @@ static class WrappedScope implements Scope { final io.opentelemetry.context.Scope scope; + @Nullable final OtelTraceContext currentOtelTraceContext; + @Nullable final Context oldContext; WrappedScope(io.opentelemetry.context.Scope scope) { this(scope, null, null); } - WrappedScope(io.opentelemetry.context.Scope scope, OtelTraceContext currentOtelTraceContext, - Context oldContext) { + WrappedScope(io.opentelemetry.context.Scope scope, @Nullable OtelTraceContext currentOtelTraceContext, + @Nullable Context oldContext) { this.scope = scope; this.currentOtelTraceContext = currentOtelTraceContext; this.oldContext = oldContext; diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpan.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpan.java index 34fd7698..13899cbb 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpan.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpan.java @@ -15,6 +15,7 @@ */ package io.micrometer.tracing.otel.bridge; +import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.Link; import io.micrometer.tracing.Span; import io.micrometer.tracing.TraceContext; @@ -45,6 +46,7 @@ public class OtelFinishedSpan implements FinishedSpan { private final MutableSpanData spanData; + @Nullable private volatile String linkLocalIp; OtelFinishedSpan(SpanData spanData) { @@ -160,11 +162,13 @@ public String getSpanId() { } @Override + @Nullable public String getParentId() { return this.spanData.getParentSpanId(); } @Override + @Nullable public String getRemoteIp() { return getTags().get(SemanticAttributes.NET_SOCK_PEER_ADDR.getKey()); } @@ -191,6 +195,7 @@ public FinishedSpan setLocalIp(String ip) { return this; } + @Nullable private String produceLinkLocalIp() { try { Enumeration nics = NetworkInterface.getNetworkInterfaces(); @@ -231,6 +236,7 @@ public String getTraceId() { } @Override + @Nullable public Throwable getError() { Attributes attributes = this.spanData.getEvents() .stream() @@ -261,6 +267,7 @@ public Span.Kind getKind() { } @Override + @Nullable public String getRemoteServiceName() { return this.spanData.getAttributes().get(AttributeKey.stringKey("peer.service")); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelPropagator.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelPropagator.java index 1f78f6ca..117c080b 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelPropagator.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelPropagator.java @@ -15,6 +15,7 @@ */ package io.micrometer.tracing.otel.bridge; +import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.Span; import io.micrometer.tracing.TraceContext; import io.micrometer.tracing.propagation.Propagator; @@ -55,7 +56,7 @@ public List fields() { } @Override - public void inject(TraceContext traceContext, C carrier, Setter setter) { + public void inject(TraceContext traceContext, @Nullable C carrier, Setter setter) { Context context = OtelTraceContext.toOtelContext(traceContext); this.propagator.inject(context, carrier, setter::set); } @@ -69,7 +70,7 @@ public Iterable keys(C carrier) { } @Override - public String get(C carrier, String key) { + public String get(@Nullable C carrier, String key) { return getter.get(carrier, key); } }); @@ -78,7 +79,8 @@ public String get(C carrier, String key) { return OtelSpanBuilder.fromOtel(this.tracer).setParent(otelTraceContext); } - private static OtelTraceContext getOtelTraceContext(Context extracted, io.opentelemetry.api.trace.Span span) { + private static OtelTraceContext getOtelTraceContext(Context extracted, + @Nullable io.opentelemetry.api.trace.Span span) { if (span == null || span.equals(io.opentelemetry.api.trace.Span.getInvalid())) { io.opentelemetry.api.trace.Span invalid = io.opentelemetry.api.trace.Span.getInvalid(); return new OtelTraceContext(extracted, invalid.getSpanContext(), invalid); diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java index 98da4614..3b43b44d 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java @@ -96,7 +96,7 @@ public Span event(String value) { @Override public Span event(String value, long time, TimeUnit timeUnit) { this.delegate.addEvent(value, time, timeUnit); - return null; + return this; } @Override diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTraceContext.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTraceContext.java index 33ec243a..39d1b4b7 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTraceContext.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTraceContext.java @@ -37,9 +37,10 @@ public class OtelTraceContext implements TraceContext { final SpanContext delegate; + @Nullable final Span span; - OtelTraceContext(Context context, SpanContext delegate, @Nullable Span span) { + OtelTraceContext(@Nullable Context context, SpanContext delegate, @Nullable Span span) { this(new AtomicReference<>(context == null ? Context.current() : context), delegate, span); } @@ -59,7 +60,7 @@ public class OtelTraceContext implements TraceContext { this(context(span), span.getSpanContext(), span); } - private static AtomicReference context(Span span) { + private static AtomicReference context(@Nullable Span span) { if (span instanceof SpanFromSpanContext) { Context contextFromParent = ((SpanFromSpanContext) span).parentTraceContext.context(); return new AtomicReference<>(contextFromParent); @@ -100,6 +101,7 @@ public static Context toOtelContext(TraceContext context) { * @return OTel version * @since 1.1.0 */ + @Nullable public static SpanContext toOtelSpanContext(TraceContext context) { if (context instanceof OtelTraceContext) { return ((OtelTraceContext) context).delegate; @@ -152,7 +154,7 @@ SpanContext spanContext() { return this.delegate; } - void updateContext(Context context) { + void updateContext(@Nullable Context context) { this.otelContext.set(context); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTracer.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTracer.java index a57357f5..6301690e 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTracer.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelTracer.java @@ -15,6 +15,7 @@ */ package io.micrometer.tracing.otel.bridge; +import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.*; import io.opentelemetry.context.Context; import io.opentelemetry.context.Scope; @@ -65,7 +66,7 @@ public OtelTracer(io.opentelemetry.api.trace.Tracer tracer, OtelCurrentTraceCont } @Override - public Span nextSpan(Span parent) { + public Span nextSpan(@Nullable Span parent) { if (parent == null) { return nextSpan(); } @@ -89,13 +90,13 @@ public Span nextSpan(Span parent) { } @Override - public Tracer.SpanInScope withSpan(Span span) { + public Tracer.SpanInScope withSpan(@Nullable Span span) { TraceContext traceContext = traceContext(span); CurrentTraceContext.Scope scope = this.otelCurrentTraceContext.maybeScope(traceContext); return new WrappedSpanInScope(scope); } - private TraceContext traceContext(Span span) { + private TraceContext traceContext(@Nullable Span span) { if (span == null) { // remove any existing span/baggage data from the current state of anything // that might be holding on to it. @@ -114,6 +115,7 @@ public SpanCustomizer currentSpanCustomizer() { } @Override + @Nullable public Span currentSpan() { OtelTraceContext context = (OtelTraceContext) this.otelCurrentTraceContext.context(); if (context != null && context.span != null) { @@ -161,16 +163,18 @@ public Map getAllBaggage() { } @Override - public Map getAllBaggage(TraceContext traceContext) { + public Map getAllBaggage(@Nullable TraceContext traceContext) { return this.otelBaggageManager.getAllBaggage(traceContext); } @Override + @Nullable public Baggage getBaggage(String name) { return this.otelBaggageManager.getBaggage(name); } @Override + @Nullable public Baggage getBaggage(TraceContext traceContext, String name) { return this.otelBaggageManager.getBaggage(traceContext, name); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/SpanFromSpanContext.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/SpanFromSpanContext.java index b2fd90c7..2383cc97 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/SpanFromSpanContext.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/SpanFromSpanContext.java @@ -34,7 +34,7 @@ class SpanFromSpanContext implements io.opentelemetry.api.trace.Span { final OtelTraceContext parentTraceContext; - SpanFromSpanContext(io.opentelemetry.api.trace.Span span, SpanContext newSpanContext, + SpanFromSpanContext(@Nullable io.opentelemetry.api.trace.Span span, SpanContext newSpanContext, OtelTraceContext parentTraceContext) { this.span = span != null ? span : io.opentelemetry.api.trace.Span.wrap(newSpanContext); this.newSpanContext = newSpanContext; diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/BaggageManager.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/BaggageManager.java index cb1988e7..482bee3c 100644 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/BaggageManager.java +++ b/micrometer-tracing/src/main/java/io/micrometer/tracing/BaggageManager.java @@ -93,6 +93,7 @@ default Map getAllBaggage(@Nullable TraceContext traceContext) { * @param name baggage name * @return baggage if present or creates a new one if missing with {@code null} value */ + @Nullable Baggage getBaggage(String name); /** diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/TraceContext.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/TraceContext.java index 73a2d674..73d51b90 100644 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/TraceContext.java +++ b/micrometer-tracing/src/main/java/io/micrometer/tracing/TraceContext.java @@ -73,6 +73,7 @@ public Boolean sampled() { * @return {@code true} when sampled, {@code false} when not sampled and {@code null} * when sampling decision should be deferred */ + @Nullable Boolean sampled(); /** diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/Tracer.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/Tracer.java index 69833a9e..e20465f2 100644 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/Tracer.java +++ b/micrometer-tracing/src/main/java/io/micrometer/tracing/Tracer.java @@ -158,6 +158,7 @@ public Baggage createBaggage(String name, String value) { * @param parent parent span * @return a child span for the given parent, {@code null} if context was empty. */ + @Nullable Span nextSpan(@Nullable Span parent); /** From f657ec0f3bc9a0073810728abf2132f0aa46db67 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Jun 2024 10:30:08 +0200 Subject: [PATCH 21/58] Bump io.projectreactor:reactor-bom from 2022.0.19 to 2022.0.20 (#747) Bumps [io.projectreactor:reactor-bom](https://github.com/reactor/reactor) from 2022.0.19 to 2022.0.20. - [Release notes](https://github.com/reactor/reactor/releases) - [Commits](https://github.com/reactor/reactor/compare/2022.0.19...2022.0.20) --- updated-dependencies: - dependency-name: io.projectreactor:reactor-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c6a00d7e..c429af8f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -23,7 +23,7 @@ testcontainers = "1.19.8" braveBom = "6.0.3" bravePropagationW3c = "0.2.0" zipkinReporterBom = "3.4.0" -reactorBom = "2022.0.19" +reactorBom = "2022.0.20" asmForPlugins = "7.3.1" javaFormatForPlugins = "0.0.42" jsr305 = "3.0.2" From d9c3b584f4cc294a16a76ab0964e733d689fe83a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 17:08:29 +0200 Subject: [PATCH 22/58] Bump spring from 5.3.36 to 5.3.37 (#753) Bumps `spring` from 5.3.36 to 5.3.37. Updates `org.springframework:spring-core` from 5.3.36 to 5.3.37 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.36...v5.3.37) Updates `org.springframework:spring-context` from 5.3.36 to 5.3.37 - [Release notes](https://github.com/spring-projects/spring-framework/releases) - [Commits](https://github.com/spring-projects/spring-framework/compare/v5.3.36...v5.3.37) --- updated-dependencies: - dependency-name: org.springframework:spring-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.springframework:spring-context dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index c429af8f..0b978008 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -28,7 +28,7 @@ asmForPlugins = "7.3.1" javaFormatForPlugins = "0.0.42" jsr305 = "3.0.2" aspectjweaver = "1.9.22.1" -spring = "5.3.36" +spring = "5.3.37" [libraries] aopAlliance = { module = "aopalliance:aopalliance", version.ref = "aopalliance" } From 2605425bef7466d666f851efb71c5cf19228b7b0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 13 Jun 2024 17:08:40 +0200 Subject: [PATCH 23/58] Bump com.gradle.develocity from 3.17.4 to 3.17.5 (#754) Bumps com.gradle.develocity from 3.17.4 to 3.17.5. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 5afbe6ca..b94ce5d8 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,7 +5,7 @@ pluginManagement { } plugins { - id 'com.gradle.develocity' version '3.17.4' + id 'com.gradle.develocity' version '3.17.5' id 'io.spring.ge.conventions' version '0.0.17' id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' } From c8b4b6b418571f555381e60d4720a812deb1901f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 24 Jun 2024 10:03:38 +0200 Subject: [PATCH 24/58] Bump io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv (#757) Bumps [io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv](https://github.com/open-telemetry/opentelemetry-java-instrumentation) from 1.33.3-alpha to 1.33.4-alpha. - [Release notes](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java-instrumentation/commits) --- updated-dependencies: - dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 0b978008..9dcc11f7 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -5,7 +5,7 @@ junit = "5.10.2" javaxServlet="4.0.1" jmh="1.37" jakartaWeb="9.1.0" -otelInstrumentation="1.33.3-alpha" +otelInstrumentation="1.33.4-alpha" aopalliance="1.0" zipkinAws="1.2.5" otelBom="1.39.0" From 8bd92ff30245b2e9f735b55c11174ea5c4679655 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 27 Jun 2024 16:57:03 +0200 Subject: [PATCH 25/58] Bump org.junit:junit-bom from 5.10.2 to 5.10.3 (#760) Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.2 to 5.10.3. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.2...r5.10.3) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 9dcc11f7..c2590037 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] micrometer = "1.13.1" micrometerContextPropagation="1.1.1" -junit = "5.10.2" +junit = "5.10.3" javaxServlet="4.0.1" jmh="1.37" jakartaWeb="9.1.0" From 6da49075fd5dfba11db2a182443995c21bb915ad Mon Sep 17 00:00:00 2001 From: Tommy Ludwig <8924140+shakuzen@users.noreply.github.com> Date: Tue, 9 Jul 2024 18:02:46 +0900 Subject: [PATCH 26/58] Upgrade to Micrometer 1.14.0-M1 Closes gh-771 --- build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 7c5bf560..b1d9bb66 100644 --- a/build.gradle +++ b/build.gradle @@ -314,7 +314,7 @@ subprojects { repositories { maven { - url 'https://repo.spring.io/snapshot/' + url 'https://repo.spring.io/milestone/' content { includeGroup 'io.micrometer' } } mavenCentral() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4a3c9abc..538d630b 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -micrometer = "1.13.2" +micrometer = "1.14.0-M1" micrometerContextPropagation="1.1.1" junit = "5.10.3" javaxServlet="4.0.1" From 1dd988808ddfd648e046f59c861390371aa14245 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:19:14 -0700 Subject: [PATCH 27/58] Bump gradle/actions from 3 to 4 (#788) Bumps [gradle/actions](https://github.com/gradle/actions) from 3 to 4. - [Release notes](https://github.com/gradle/actions/releases) - [Commits](https://github.com/gradle/actions/compare/v3...v4) --- updated-dependencies: - dependency-name: gradle/actions dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/gradle-wrapper-validation.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/gradle-wrapper-validation.yml b/.github/workflows/gradle-wrapper-validation.yml index aee9006f..89a7c3b1 100644 --- a/.github/workflows/gradle-wrapper-validation.yml +++ b/.github/workflows/gradle-wrapper-validation.yml @@ -7,4 +7,4 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4.1.6 - - uses: gradle/actions/wrapper-validation@v3 + - uses: gradle/actions/wrapper-validation@v4 From 0b3a2178d6f714b78a145b7802fe267d33d34c72 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:34:12 -0700 Subject: [PATCH 28/58] Bump testcontainers from 1.19.8 to 1.20.1 (#787) Bumps `testcontainers` from 1.19.8 to 1.20.1. Updates `org.testcontainers:testcontainers` from 1.19.8 to 1.20.1 - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.19.8...1.20.1) Updates `org.testcontainers:junit-jupiter` from 1.19.8 to 1.20.1 - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.19.8...1.20.1) --- updated-dependencies: - dependency-name: org.testcontainers:testcontainers dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.testcontainers:junit-jupiter dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index fbdc7727..3de8496c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -19,7 +19,7 @@ assertj = "3.26.0" awaitility = "4.2.2" mockito = "5.12.0" wiremock = "3.0.1" -testcontainers = "1.19.8" +testcontainers = "1.20.1" braveBom = "6.0.3" bravePropagationW3c = "0.2.0" zipkinReporterBom = "3.4.0" From 003b3e2e0391839c2077f53b44cd90badf5a42cf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:34:21 -0700 Subject: [PATCH 29/58] Bump io.opentelemetry:opentelemetry-bom-alpha (#793) Bumps [io.opentelemetry:opentelemetry-bom-alpha](https://github.com/open-telemetry/opentelemetry-java) from 1.39.0-alpha to 1.41.0-alpha. - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/commits) --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom-alpha dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3de8496c..a1d6b4c0 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -11,7 +11,7 @@ zipkinAws="1.2.5" otelBom="1.39.0" logback = "1.5.6" wavefrontSdk="3.4.3" -otelBomAlpha="1.39.0-alpha" +otelBomAlpha="1.41.0-alpha" log4j = "2.23.1" wavefrontReporter="1.7.16" slf4j = "1.7.36" From c22b0a392e3e50393f63a6dbc0ecfcdf4c9bc484 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:34:26 -0700 Subject: [PATCH 30/58] Bump io.opentelemetry:opentelemetry-bom from 1.39.0 to 1.41.0 (#794) Bumps [io.opentelemetry:opentelemetry-bom](https://github.com/open-telemetry/opentelemetry-java) from 1.39.0 to 1.41.0. - [Release notes](https://github.com/open-telemetry/opentelemetry-java/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java/compare/v1.39.0...v1.41.0) --- updated-dependencies: - dependency-name: io.opentelemetry:opentelemetry-bom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a1d6b4c0..1b83c25f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -8,7 +8,7 @@ jakartaWeb="9.1.0" otelInstrumentation="1.33.5-alpha" aopalliance="1.0" zipkinAws="1.2.5" -otelBom="1.39.0" +otelBom="1.41.0" logback = "1.5.6" wavefrontSdk="3.4.3" otelBomAlpha="1.41.0-alpha" From 3b8a7188ee81d858e57337a6608c6e300f2b9f1d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:35:39 -0700 Subject: [PATCH 31/58] Bump org.assertj:assertj-core from 3.26.0 to 3.26.3 (#776) Bumps [org.assertj:assertj-core](https://github.com/assertj/assertj) from 3.26.0 to 3.26.3. - [Release notes](https://github.com/assertj/assertj/releases) - [Commits](https://github.com/assertj/assertj/compare/assertj-build-3.26.0...assertj-build-3.26.3) --- updated-dependencies: - dependency-name: org.assertj:assertj-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1b83c25f..bfa9c19e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ otelBomAlpha="1.41.0-alpha" log4j = "2.23.1" wavefrontReporter="1.7.16" slf4j = "1.7.36" -assertj = "3.26.0" +assertj = "3.26.3" awaitility = "4.2.2" mockito = "5.12.0" wiremock = "3.0.1" From d52dc812ab749d902b5a5cafee4fe9dd837d9a60 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Aug 2024 16:42:13 -0700 Subject: [PATCH 32/58] Bump io.micrometer:micrometer-bom from 1.14.0-M1 to 1.14.0-SNAPSHOT (#772) * Bump io.micrometer:micrometer-bom from 1.14.0-M1 to 1.14.0-SNAPSHOT Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.14.0-M1 to 1.14.0-SNAPSHOT. - [Release notes](https://github.com/micrometer-metrics/micrometer/releases) - [Commits](https://github.com/micrometer-metrics/micrometer/commits) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Use snapshots repo for snapshot --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jonatan Ivanov --- build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index b1d9bb66..7c5bf560 100644 --- a/build.gradle +++ b/build.gradle @@ -314,7 +314,7 @@ subprojects { repositories { maven { - url 'https://repo.spring.io/milestone/' + url 'https://repo.spring.io/snapshot/' content { includeGroup 'io.micrometer' } } mavenCentral() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bfa9c19e..4a198226 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -micrometer = "1.14.0-M1" +micrometer = "1.14.0-SNAPSHOT" micrometerContextPropagation="1.1.1" junit = "5.10.3" javaxServlet="4.0.1" From f82941a6386529c945737da846d87dcf429564e4 Mon Sep 17 00:00:00 2001 From: Tommy Ludwig <8924140+shakuzen@users.noreply.github.com> Date: Tue, 13 Aug 2024 17:14:05 +0900 Subject: [PATCH 33/58] Upgrade to Micrometer 1.14.0-M2 Closes gh-797 --- build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 7c5bf560..b1d9bb66 100644 --- a/build.gradle +++ b/build.gradle @@ -314,7 +314,7 @@ subprojects { repositories { maven { - url 'https://repo.spring.io/snapshot/' + url 'https://repo.spring.io/milestone/' content { includeGroup 'io.micrometer' } } mavenCentral() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4a198226..dea2fc45 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -micrometer = "1.14.0-SNAPSHOT" +micrometer = "1.14.0-M2" micrometerContextPropagation="1.1.1" junit = "5.10.3" javaxServlet="4.0.1" From 5b383c771a9f4bd6e2933fbe75547fa9b9ac2991 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 16:42:43 +0900 Subject: [PATCH 34/58] Bump mockito from 5.12.0 to 5.13.0 (#827) Bumps `mockito` from 5.12.0 to 5.13.0. Updates `org.mockito:mockito-core` from 5.12.0 to 5.13.0 - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.12.0...v5.13.0) Updates `org.mockito:mockito-junit-jupiter` from 5.12.0 to 5.13.0 - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.12.0...v5.13.0) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.mockito:mockito-junit-jupiter dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index dea2fc45..9a294d02 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,7 @@ wavefrontReporter="1.7.16" slf4j = "1.7.36" assertj = "3.26.3" awaitility = "4.2.2" -mockito = "5.12.0" +mockito = "5.13.0" wiremock = "3.0.1" testcontainers = "1.20.1" braveBom = "6.0.3" From 0249c6675d9de692df042a18553b4d80e57d1d5b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 16:56:56 +0900 Subject: [PATCH 35/58] Bump org.junit:junit-bom from 5.10.3 to 5.11.0 (#813) Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.10.3 to 5.11.0. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.10.3...r5.11.0) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index d19f4b9a..a7e8edeb 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] micrometer = "1.14.0-M2" micrometerContextPropagation="1.1.1" -junit = "5.10.3" +junit = "5.11.0" javaxServlet="4.0.1" jmh="1.37" jakartaWeb="9.1.0" From b7f8ef8f413c9c3323a8325b4d74ffb2a7d5c75a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 16:58:41 +0900 Subject: [PATCH 36/58] Bump com.gradle.develocity from 3.17.6 to 3.18 (#818) Bumps com.gradle.develocity from 3.17.6 to 3.18. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 63c1ae50..91f8da6f 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,7 +5,7 @@ pluginManagement { } plugins { - id 'com.gradle.develocity' version '3.17.6' + id 'com.gradle.develocity' version '3.18' id 'io.spring.develocity.conventions' version '0.0.20' id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' } From 3482e54a5b32ba4339cc480d52391d5f8887b872 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 3 Sep 2024 17:00:28 +0900 Subject: [PATCH 37/58] Bump ch.qos.logback:logback-classic from 1.5.6 to 1.5.7 (#816) Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.6 to 1.5.7. - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.6...v_1.5.7) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a7e8edeb..fbc2dbe1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ otelInstrumentation="1.33.5-alpha" aopalliance="1.0" zipkinAws="1.2.5" otelBom="1.41.0" -logback = "1.5.6" +logback = "1.5.7" wavefrontSdk="3.4.3" otelBomAlpha="1.41.0-alpha" log4j = "2.23.1" From 3eb1a4c90b24b7193f4a555d34823f396135e283 Mon Sep 17 00:00:00 2001 From: Jonatan Ivanov Date: Thu, 5 Sep 2024 13:03:57 -0700 Subject: [PATCH 38/58] Upgrade OTel instrumentation BOM to 2.7.0-alpha (#828) --- gradle/libs.versions.toml | 2 +- .../micrometer-tracing-bridge-otel/build.gradle | 2 +- .../micrometer-tracing-reporter-wavefront/build.gradle | 2 +- .../micrometer-tracing-integration-test/build.gradle | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index abe5de50..7ee2563d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ aopalliance="1.0" zipkinAws="1.2.5" logback = "1.5.7" wavefrontSdk="3.4.3" -otelInstrumentationBomAlpha="1.33.6-alpha" # Brings in io.opentelemetry:opentelemetry-bom:1.41.0 +otelInstrumentationBomAlpha="2.7.0-alpha" # Brings in io.opentelemetry:opentelemetry-bom:1.41.0 log4j = "2.23.1" wavefrontReporter="1.7.16" slf4j = "1.7.36" diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/build.gradle b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/build.gradle index fb4a4bdf..f04ab272 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/build.gradle +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/build.gradle @@ -12,7 +12,7 @@ dependencies { api 'io.opentelemetry:opentelemetry-sdk-common' api 'io.opentelemetry:opentelemetry-sdk-trace' api 'io.opentelemetry:opentelemetry-sdk' - api 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv' + api 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator' api 'io.opentelemetry:opentelemetry-extension-trace-propagators' optionalApi 'io.opentelemetry:opentelemetry-opentracing-shim' diff --git a/micrometer-tracing-reporters/micrometer-tracing-reporter-wavefront/build.gradle b/micrometer-tracing-reporters/micrometer-tracing-reporter-wavefront/build.gradle index e4cc717a..0bfdcc58 100644 --- a/micrometer-tracing-reporters/micrometer-tracing-reporter-wavefront/build.gradle +++ b/micrometer-tracing-reporters/micrometer-tracing-reporter-wavefront/build.gradle @@ -16,7 +16,7 @@ dependencies { optionalImplementation 'io.opentelemetry:opentelemetry-sdk' optionalImplementation 'io.opentelemetry:opentelemetry-sdk-trace' optionalImplementation 'io.opentelemetry:opentelemetry-extension-trace-propagators' - optionalImplementation 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv' + optionalImplementation 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator' // Wavefront implementation libs.wavefrontReporter diff --git a/micrometer-tracing-tests/micrometer-tracing-integration-test/build.gradle b/micrometer-tracing-tests/micrometer-tracing-integration-test/build.gradle index 7faa5b22..abdf989e 100644 --- a/micrometer-tracing-tests/micrometer-tracing-integration-test/build.gradle +++ b/micrometer-tracing-tests/micrometer-tracing-integration-test/build.gradle @@ -23,7 +23,7 @@ dependencies { api 'io.opentelemetry:opentelemetry-exporter-zipkin' api 'io.opentelemetry:opentelemetry-sdk-trace' api 'io.opentelemetry:opentelemetry-extension-trace-propagators' - api 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-semconv' + api 'io.opentelemetry.instrumentation:opentelemetry-instrumentation-api-incubator' // Zipkin api 'io.zipkin.zipkin2:zipkin' From d04ca9b15585c5aee0b60d682c6ff1daee17f5e1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 5 Sep 2024 13:19:42 -0700 Subject: [PATCH 39/58] Bump io.micrometer:micrometer-bom from 1.14.0-M2 to 1.14.0-SNAPSHOT (#805) * Bump io.micrometer:micrometer-bom from 1.14.0-M2 to 1.14.0-SNAPSHOT Bumps [io.micrometer:micrometer-bom](https://github.com/micrometer-metrics/micrometer) from 1.14.0-M2 to 1.14.0-SNAPSHOT. - [Release notes](https://github.com/micrometer-metrics/micrometer/releases) - [Commits](https://github.com/micrometer-metrics/micrometer/commits) --- updated-dependencies: - dependency-name: io.micrometer:micrometer-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * Switch to snapshot repo --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jonatan Ivanov --- build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index b1d9bb66..7c5bf560 100644 --- a/build.gradle +++ b/build.gradle @@ -314,7 +314,7 @@ subprojects { repositories { maven { - url 'https://repo.spring.io/milestone/' + url 'https://repo.spring.io/snapshot/' content { includeGroup 'io.micrometer' } } mavenCentral() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 7ee2563d..5c2ae656 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -micrometer = "1.14.0-M2" +micrometer = "1.14.0-SNAPSHOT" micrometerContextPropagation="1.1.1" junit = "5.11.0" javaxServlet="4.0.1" From 8c623c7d62f8f3dadac9d8dda253e72a6888ae54 Mon Sep 17 00:00:00 2001 From: Jonatan Ivanov Date: Mon, 9 Sep 2024 12:50:30 -0700 Subject: [PATCH 40/58] Bump io.micrometer:micrometer-bom to 1.14.0-M3 Closes gh-837 --- build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index d2298575..8301fdd3 100644 --- a/build.gradle +++ b/build.gradle @@ -314,7 +314,7 @@ subprojects { repositories { maven { - url 'https://repo.spring.io/snapshot/' + url 'https://repo.spring.io/milestone/' content { includeGroup 'io.micrometer' } } mavenCentral() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5c2ae656..1e4dc526 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -micrometer = "1.14.0-SNAPSHOT" +micrometer = "1.14.0-M3" micrometerContextPropagation="1.1.1" junit = "5.11.0" javaxServlet="4.0.1" From d7fd51341fee5554b27e3dd9289ec7d10b098629 Mon Sep 17 00:00:00 2001 From: Jonatan Ivanov Date: Mon, 9 Sep 2024 13:45:22 -0700 Subject: [PATCH 41/58] Revert "Bump io.micrometer:micrometer-bom to 1.14.0-M3" This reverts commit 8c623c7d62f8f3dadac9d8dda253e72a6888ae54. --- build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index 8301fdd3..d2298575 100644 --- a/build.gradle +++ b/build.gradle @@ -314,7 +314,7 @@ subprojects { repositories { maven { - url 'https://repo.spring.io/milestone/' + url 'https://repo.spring.io/snapshot/' content { includeGroup 'io.micrometer' } } mavenCentral() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1e4dc526..5c2ae656 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -micrometer = "1.14.0-M3" +micrometer = "1.14.0-SNAPSHOT" micrometerContextPropagation="1.1.1" junit = "5.11.0" javaxServlet="4.0.1" From bf016bcf091f3816a7b5a0ddc14bbd726ce49daf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:43:04 +0200 Subject: [PATCH 42/58] Bump ch.qos.logback:logback-classic from 1.5.7 to 1.5.8 (#832) Bumps [ch.qos.logback:logback-classic](https://github.com/qos-ch/logback) from 1.5.7 to 1.5.8. - [Commits](https://github.com/qos-ch/logback/compare/v_1.5.7...v_1.5.8) --- updated-dependencies: - dependency-name: ch.qos.logback:logback-classic dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5c2ae656..32d5b922 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -7,7 +7,7 @@ jmh="1.37" jakartaWeb="9.1.0" aopalliance="1.0" zipkinAws="1.2.5" -logback = "1.5.7" +logback = "1.5.8" wavefrontSdk="3.4.3" otelInstrumentationBomAlpha="2.7.0-alpha" # Brings in io.opentelemetry:opentelemetry-bom:1.41.0 log4j = "2.23.1" From ea010ed858c1cfbae1f293768d480c3f7c998d2b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 10 Sep 2024 09:47:48 +0200 Subject: [PATCH 43/58] Bump org.apache.logging.log4j:log4j-core from 2.23.1 to 2.24.0 (#833) Bumps org.apache.logging.log4j:log4j-core from 2.23.1 to 2.24.0. --- updated-dependencies: - dependency-name: org.apache.logging.log4j:log4j-core dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 32d5b922..e580d3bd 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ zipkinAws="1.2.5" logback = "1.5.8" wavefrontSdk="3.4.3" otelInstrumentationBomAlpha="2.7.0-alpha" # Brings in io.opentelemetry:opentelemetry-bom:1.41.0 -log4j = "2.23.1" +log4j = "2.24.0" wavefrontReporter="1.7.16" slf4j = "1.7.36" assertj = "3.26.3" From 2482f8d00456547fe84bf0303825fbe2c6725958 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 16:41:52 +0900 Subject: [PATCH 44/58] Bump com.gradle.develocity from 3.18 to 3.18.1 (#839) Bumps com.gradle.develocity from 3.18 to 3.18.1. --- updated-dependencies: - dependency-name: com.gradle.develocity dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- settings.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/settings.gradle b/settings.gradle index 91f8da6f..a29fff16 100644 --- a/settings.gradle +++ b/settings.gradle @@ -5,7 +5,7 @@ pluginManagement { } plugins { - id 'com.gradle.develocity' version '3.18' + id 'com.gradle.develocity' version '3.18.1' id 'io.spring.develocity.conventions' version '0.0.20' id 'org.gradle.toolchains.foojay-resolver-convention' version '0.8.0' } From e2627af729f1095a867c1b95147476848e2aac8b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 11 Sep 2024 16:43:57 +0900 Subject: [PATCH 45/58] Bump io.zipkin.reporter2:zipkin-reporter-bom from 3.4.0 to 3.4.1 (#840) Bumps [io.zipkin.reporter2:zipkin-reporter-bom](https://github.com/openzipkin/zipkin-reporter-java) from 3.4.0 to 3.4.1. - [Release notes](https://github.com/openzipkin/zipkin-reporter-java/releases) - [Changelog](https://github.com/openzipkin/zipkin-reporter-java/blob/master/RELEASE.md) - [Commits](https://github.com/openzipkin/zipkin-reporter-java/compare/3.4.0...3.4.1) --- updated-dependencies: - dependency-name: io.zipkin.reporter2:zipkin-reporter-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e580d3bd..b018b05d 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -20,7 +20,7 @@ wiremock = "3.0.1" testcontainers = "1.20.1" braveBom = "6.0.3" bravePropagationW3c = "0.2.0" -zipkinReporterBom = "3.4.0" +zipkinReporterBom = "3.4.1" reactorBom = "2022.0.22" asmForPlugins = "7.3.1" javaFormatForPlugins = "0.0.43" From e0f7c41a0714b47f5f6314bbe529fa96b2c812a6 Mon Sep 17 00:00:00 2001 From: Jasz Date: Wed, 11 Sep 2024 11:08:59 +0200 Subject: [PATCH 46/58] Support list values in tags in Span and SpanCustomizer (#817) --- .../brave/bridge/BraveFinishedSpanTests.java | 8 +- .../brave/bridge/BraveSpanBuilderTests.java | 16 ++++ .../tracing/brave/bridge/BraveSpanTest.java | 17 ++++ .../tracing/otel/bridge/OtelFinishedSpan.java | 17 ++++ .../tracing/otel/bridge/OtelSpan.java | 26 ++++++ .../tracing/otel/bridge/OtelSpanBuilder.java | 24 ++++++ .../otel/bridge/OtelFinishedSpanTests.java | 9 +- .../otel/bridge/OtelSpanBuilderTests.java | 20 +++++ .../tracing/otel/bridge/OtelSpanTests.java | 22 +++++ .../main/java/io/micrometer/tracing/Span.java | 83 ++++++++++++++++++- .../tracing/exporter/FinishedSpan.java | 10 ++- 11 files changed, 248 insertions(+), 4 deletions(-) diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveFinishedSpanTests.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveFinishedSpanTests.java index 9c70992d..64122cde 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveFinishedSpanTests.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveFinishedSpanTests.java @@ -16,6 +16,7 @@ package io.micrometer.tracing.brave.bridge; import java.time.Instant; +import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.Map; @@ -80,9 +81,14 @@ void should_set_typed_tags() { Map map = new HashMap<>(); map.put("foo", 2L); + map.put("bar", Arrays.asList("a", "b", "c")); + map.put("baz", Arrays.asList(1, 2, 3)); span.setTypedTags(map); - then(span.getTypedTags().get("foo")).isEqualTo("2"); + then(span.getTypedTags()).hasSize(3) + .containsEntry("foo", "2") + .containsEntry("bar", "a,b,c") + .containsEntry("baz", "1,2,3"); } @Test diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveSpanBuilderTests.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveSpanBuilderTests.java index 1f58e90c..7bf43f74 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveSpanBuilderTests.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveSpanBuilderTests.java @@ -15,6 +15,7 @@ */ package io.micrometer.tracing.brave.bridge; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; @@ -85,6 +86,21 @@ void should_set_non_string_tags() { .containsEntry("boolean", "true"); } + @Test + void should_set_multi_value_tags() { + new BraveSpanBuilder(tracing.tracer()).tagOfStrings("strings", Arrays.asList("s1", "s2", "s3")) + .tagOfDoubles("doubles", Arrays.asList(1.0, 2.5, 3.7)) + .tagOfLongs("longs", Arrays.asList(2L, 3L, 4L)) + .tagOfBooleans("booleans", Arrays.asList(true, false, false)) + .start() + .end(); + + then(handler.get(0).tags()).containsEntry("strings", "s1,s2,s3") + .containsEntry("doubles", "1.0,2.5,3.7") + .containsEntry("longs", "2,3,4") + .containsEntry("booleans", "true,false,false"); + } + private Map tags() { Map map = new HashMap<>(); map.put("tag1", "value1"); diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveSpanTest.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveSpanTest.java index 45e5df16..0776492f 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveSpanTest.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-brave/src/test/java/io/micrometer/tracing/brave/bridge/BraveSpanTest.java @@ -20,6 +20,8 @@ import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; +import java.util.Arrays; + import static org.assertj.core.api.Assertions.assertThat; class BraveSpanTest { @@ -48,4 +50,19 @@ void should_set_non_string_tags() { .containsEntry("boolean", "true"); } + @Test + void should_set_multi_value_tags() { + new BraveSpan(tracing.tracer().nextSpan()).start() + .tagOfStrings("strings", Arrays.asList("s1", "s2", "s3")) + .tagOfDoubles("doubles", Arrays.asList(1.0, 2.5, 3.7)) + .tagOfLongs("longs", Arrays.asList(2L, 3L, 4L)) + .tagOfBooleans("booleans", Arrays.asList(true, false, false)) + .end(); + + assertThat(handler.get(0).tags()).containsEntry("strings", "s1,s2,s3") + .containsEntry("doubles", "1.0,2.5,3.7") + .containsEntry("longs", "2,3,4") + .containsEntry("booleans", "true,false,false"); + } + } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpan.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpan.java index 13899cbb..002a5a08 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpan.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpan.java @@ -129,6 +129,23 @@ else if (value instanceof Long) { else if (value instanceof Boolean) { return AttributeKey.booleanKey(key); } + else if (value instanceof List) { + List valueAsList = (List) value; + if (valueAsList.isEmpty()) { + return AttributeKey.stringArrayKey(key); + } + Object firstValue = valueAsList.get(0); + if (firstValue instanceof Double) { + return AttributeKey.doubleArrayKey(key); + } + else if (firstValue instanceof Long) { + return AttributeKey.longArrayKey(key); + } + else if (firstValue instanceof Boolean) { + return AttributeKey.doubleArrayKey(key); + } + return AttributeKey.stringArrayKey(key); + } return AttributeKey.stringKey(key); } diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java index 3b43b44d..aac0008b 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java @@ -16,10 +16,12 @@ package io.micrometer.tracing.otel.bridge; import io.micrometer.tracing.Span; +import io.opentelemetry.api.common.AttributeKey; import io.opentelemetry.api.trace.StatusCode; import io.opentelemetry.context.Context; import io.opentelemetry.semconv.SemanticAttributes; +import java.util.List; import java.util.Objects; import java.util.concurrent.TimeUnit; @@ -123,6 +125,30 @@ public Span tag(String key, boolean value) { return new OtelSpan(this.delegate); } + @Override + public Span tagOfStrings(String key, List values) { + this.delegate.setAttribute(AttributeKey.stringArrayKey(key), values); + return new OtelSpan(this.delegate); + } + + @Override + public Span tagOfLongs(String key, List values) { + this.delegate.setAttribute(AttributeKey.longArrayKey(key), values); + return new OtelSpan(this.delegate); + } + + @Override + public Span tagOfDoubles(String key, List values) { + this.delegate.setAttribute(AttributeKey.doubleArrayKey(key), values); + return new OtelSpan(this.delegate); + } + + @Override + public Span tagOfBooleans(String key, List values) { + this.delegate.setAttribute(AttributeKey.booleanArrayKey(key), values); + return new OtelSpan(this.delegate); + } + @Override public void end(long time, TimeUnit timeUnit) { this.delegate.end(time, timeUnit); diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpanBuilder.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpanBuilder.java index c9fd15c2..69910f4a 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpanBuilder.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpanBuilder.java @@ -123,6 +123,30 @@ public Span.Builder tag(String key, boolean value) { return this; } + @Override + public Span.Builder tagOfStrings(String key, List values) { + this.attributes.put(AttributeKey.stringArrayKey(key), values); + return this; + } + + @Override + public Span.Builder tagOfLongs(String key, List values) { + this.attributes.put(AttributeKey.longArrayKey(key), values); + return this; + } + + @Override + public Span.Builder tagOfDoubles(String key, List values) { + this.attributes.put(AttributeKey.doubleArrayKey(key), values); + return this; + } + + @Override + public Span.Builder tagOfBooleans(String key, List values) { + this.attributes.put(AttributeKey.booleanArrayKey(key), values); + return this; + } + @Override public Span.Builder error(Throwable throwable) { this.error = throwable; diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpanTests.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpanTests.java index fb298b38..b14fca6b 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpanTests.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelFinishedSpanTests.java @@ -70,9 +70,16 @@ void should_set_typed_tags() { Map map = new HashMap<>(); map.put("foo", 2L); + map.put("bar", Arrays.asList("a", "b", "c")); + map.put("baz", Arrays.asList(1, 2, 3)); + map.put("qux", Collections.emptyList()); span.setTypedTags(map); - then(span.getTypedTags().get("foo")).isEqualTo(2L); + then(span.getTypedTags()).hasSize(4) + .containsEntry("foo", 2L) + .containsEntry("bar", Arrays.asList("a", "b", "c")) + .containsEntry("baz", Arrays.asList(1, 2, 3)) + .containsEntry("qux", Collections.emptyList()); } @Test diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelSpanBuilderTests.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelSpanBuilderTests.java index 62a8c9ef..1ba26789 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelSpanBuilderTests.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelSpanBuilderTests.java @@ -19,6 +19,7 @@ import io.micrometer.tracing.Span; import io.micrometer.tracing.TraceContext; import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.common.Attributes; import io.opentelemetry.context.propagation.ContextPropagators; import io.opentelemetry.extension.trace.propagation.B3Propagator; import io.opentelemetry.sdk.OpenTelemetrySdk; @@ -26,6 +27,7 @@ import io.opentelemetry.sdk.trace.data.SpanData; import org.junit.jupiter.api.Test; +import java.util.Arrays; import java.util.HashMap; import java.util.Map; import java.util.stream.Collectors; @@ -104,6 +106,24 @@ void should_set_non_string_tags() { then(poll.getAttributes().get(AttributeKey.booleanKey("boolean"))).isTrue(); } + @Test + void should_set_multi_value_tags() { + new OtelSpanBuilder(otelTracer).name("foo") + .tagOfStrings("strings", Arrays.asList("s1", "s2", "s3")) + .tagOfDoubles("doubles", Arrays.asList(1.0, 2.5, 3.7)) + .tagOfLongs("longs", Arrays.asList(2L, 3L, 4L)) + .tagOfBooleans("booleans", Arrays.asList(true, false, false)) + .start() + .end(); + + SpanData poll = processor.spans().poll(); + Attributes attributes = poll.getAttributes(); + then(attributes.get(AttributeKey.stringArrayKey("strings"))).isEqualTo(Arrays.asList("s1", "s2", "s3")); + then(attributes.get(AttributeKey.doubleArrayKey("doubles"))).isEqualTo(Arrays.asList(1.0, 2.5, 3.7)); + then(attributes.get(AttributeKey.longArrayKey("longs"))).isEqualTo(Arrays.asList(2L, 3L, 4L)); + then(attributes.get(AttributeKey.booleanArrayKey("booleans"))).isEqualTo(Arrays.asList(true, false, false)); + } + @Test void should_honor_parent_context_using_tracecontextbuilder() { Span foo = tracer.spanBuilder().name("foo").start(); diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelSpanTests.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelSpanTests.java index 6e28501f..3dfb0ace 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelSpanTests.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/test/java/io/micrometer/tracing/otel/bridge/OtelSpanTests.java @@ -15,6 +15,8 @@ */ package io.micrometer.tracing.otel.bridge; +import io.opentelemetry.api.common.AttributeKey; +import io.opentelemetry.api.common.Attributes; import io.opentelemetry.api.trace.Span; import io.opentelemetry.api.trace.StatusCode; import io.opentelemetry.context.propagation.ContextPropagators; @@ -25,6 +27,8 @@ import io.opentelemetry.sdk.trace.data.StatusData; import org.junit.jupiter.api.Test; +import java.util.Arrays; + import static org.assertj.core.api.BDDAssertions.then; class OtelSpanTests { @@ -66,4 +70,22 @@ void should_be_equal_when_two_span_delegates_are_equal() { then(otelSpanFromSpanContext).isEqualTo(otelSpan); } + @Test + void should_set_multi_value_tags() { + OtelSpan otelSpan = new OtelSpan(otelTracer.spanBuilder("foo").startSpan()); + + otelSpan.tagOfStrings("strings", Arrays.asList("s1", "s2", "s3")) + .tagOfDoubles("doubles", Arrays.asList(1.0, 2.5, 3.7)) + .tagOfLongs("longs", Arrays.asList(2L, 3L, 4L)) + .tagOfBooleans("booleans", Arrays.asList(true, false, false)) + .end(); + + SpanData poll = arrayListSpanProcessor.spans().poll(); + Attributes attributes = poll.getAttributes(); + then(attributes.get(AttributeKey.stringArrayKey("strings"))).isEqualTo(Arrays.asList("s1", "s2", "s3")); + then(attributes.get(AttributeKey.doubleArrayKey("doubles"))).isEqualTo(Arrays.asList(1.0, 2.5, 3.7)); + then(attributes.get(AttributeKey.longArrayKey("longs"))).isEqualTo(Arrays.asList(2L, 3L, 4L)); + then(attributes.get(AttributeKey.booleanArrayKey("booleans"))).isEqualTo(Arrays.asList(true, false, false)); + } + } diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/Span.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/Span.java index f0583d68..2c41cde9 100644 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/Span.java +++ b/micrometer-tracing/src/main/java/io/micrometer/tracing/Span.java @@ -16,8 +16,9 @@ package io.micrometer.tracing; import io.micrometer.tracing.propagation.Propagator; - +import java.util.List; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** * This API was heavily influenced by Brave. Parts of its documentation were taken @@ -181,6 +182,46 @@ default Span tag(String key, boolean value) { return tag(key, String.valueOf(value)); } + /** + * Sets a tag on this span. + * @param key tag key + * @param values tag values + * @return this span + */ + default Span tagOfStrings(String key, List values) { + return tag(key, String.join(",", values)); + } + + /** + * Sets a tag on this span. + * @param key tag key + * @param values tag values + * @return this span + */ + default Span tagOfLongs(String key, List values) { + return tag(key, values.stream().map(String::valueOf).collect(Collectors.joining(","))); + } + + /** + * Sets a tag on this span. + * @param key tag key + * @param values tag values + * @return this span + */ + default Span tagOfDoubles(String key, List values) { + return tag(key, values.stream().map(String::valueOf).collect(Collectors.joining(","))); + } + + /** + * Sets a tag on this span. + * @param key tag key + * @param values tag values + * @return this span + */ + default Span tagOfBooleans(String key, List values) { + return tag(key, values.stream().map(String::valueOf).collect(Collectors.joining(","))); + } + /** * Records an exception for this span. * @param throwable to record @@ -393,6 +434,46 @@ default Builder tag(String key, boolean value) { return tag(key, String.valueOf(value)); } + /** + * Sets a tag on this span. + * @param key tag key + * @param values tag values + * @return this + */ + default Builder tagOfStrings(String key, List values) { + return tag(key, String.join(",", values)); + } + + /** + * Sets a tag on this span. + * @param key tag key + * @param values tag values + * @return this + */ + default Builder tagOfLongs(String key, List values) { + return tag(key, values.stream().map(String::valueOf).collect(Collectors.joining(","))); + } + + /** + * Sets a tag on this span. + * @param key tag key + * @param values tag values + * @return this + */ + default Builder tagOfDoubles(String key, List values) { + return tag(key, values.stream().map(String::valueOf).collect(Collectors.joining(","))); + } + + /** + * Sets a tag on this span. + * @param key tag key + * @param values tag values + * @return this + */ + default Builder tagOfBooleans(String key, List values) { + return tag(key, values.stream().map(String::valueOf).collect(Collectors.joining(","))); + } + /** * Sets an error on the span. * @param throwable error to set diff --git a/micrometer-tracing/src/main/java/io/micrometer/tracing/exporter/FinishedSpan.java b/micrometer-tracing/src/main/java/io/micrometer/tracing/exporter/FinishedSpan.java index 2d416ee8..22a6a3fe 100644 --- a/micrometer-tracing/src/main/java/io/micrometer/tracing/exporter/FinishedSpan.java +++ b/micrometer-tracing/src/main/java/io/micrometer/tracing/exporter/FinishedSpan.java @@ -22,6 +22,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import io.micrometer.common.lang.Nullable; import io.micrometer.tracing.Link; @@ -90,7 +91,14 @@ default Duration getDuration() { */ default FinishedSpan setTypedTags(Map tags) { Map map = new HashMap<>(); - tags.forEach((s, o) -> map.put(s, String.valueOf(o))); + tags.forEach((s, o) -> { + if (o instanceof List) { + map.put(s, ((List) o).stream().map(Object::toString).collect(Collectors.joining(","))); + } + else { + map.put(s, String.valueOf(o)); + } + }); return setTags(map); } From 65e2c9e4c44a1541ccbd2671702e3923a5ea9442 Mon Sep 17 00:00:00 2001 From: Thomas Vitale Date: Thu, 19 Sep 2024 20:48:38 +0200 Subject: [PATCH 47/58] Make OtelSpan publicly accessible (#809) Fixes gh-808 Signed-off-by: Thomas Vitale --- .../micrometer/tracing/otel/bridge/OtelSpan.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java index aac0008b..c32258ff 100644 --- a/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java +++ b/micrometer-tracing-bridges/micrometer-tracing-bridge-otel/src/main/java/io/micrometer/tracing/otel/bridge/OtelSpan.java @@ -31,36 +31,36 @@ * @author Marcin Grzejszczak * @since 1.0.0 */ -class OtelSpan implements Span { +public class OtelSpan implements Span { final io.opentelemetry.api.trace.Span delegate; final OtelTraceContext otelTraceContext; - OtelSpan(io.opentelemetry.api.trace.Span delegate) { + public OtelSpan(io.opentelemetry.api.trace.Span delegate) { this.delegate = delegate; this.otelTraceContext = new OtelTraceContext(delegate.getSpanContext(), delegate); } - OtelSpan(io.opentelemetry.api.trace.Span delegate, Context context) { + public OtelSpan(io.opentelemetry.api.trace.Span delegate, Context context) { this.delegate = delegate; this.otelTraceContext = new OtelTraceContext(context, delegate.getSpanContext(), delegate); } - OtelSpan(OtelTraceContext traceContext) { + public OtelSpan(OtelTraceContext traceContext) { this.delegate = traceContext.span != null ? traceContext.span : io.opentelemetry.api.trace.Span.current(); this.otelTraceContext = traceContext; } - static io.opentelemetry.api.trace.Span toOtel(Span span) { + public static io.opentelemetry.api.trace.Span toOtel(Span span) { return ((OtelSpan) span).delegate; } - static Span fromOtel(io.opentelemetry.api.trace.Span span) { + public static Span fromOtel(io.opentelemetry.api.trace.Span span) { return new OtelSpan(span); } - static Span fromOtel(io.opentelemetry.api.trace.Span span, Context context) { + public static Span fromOtel(io.opentelemetry.api.trace.Span span, Context context) { return new OtelSpan(span, context); } From aa3f71d2d3bb0dd7e41c74811c48aef05896763f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:28:11 -0700 Subject: [PATCH 48/58] Bump testcontainers from 1.20.1 to 1.20.2 (#855) Bumps `testcontainers` from 1.20.1 to 1.20.2. Updates `org.testcontainers:testcontainers` from 1.20.1 to 1.20.2 - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.20.1...1.20.2) Updates `org.testcontainers:junit-jupiter` from 1.20.1 to 1.20.2 - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.20.1...1.20.2) --- updated-dependencies: - dependency-name: org.testcontainers:testcontainers dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.testcontainers:junit-jupiter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index bda838d3..70076c1a 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,7 @@ assertj = "3.26.3" awaitility = "4.2.2" mockito = "5.13.0" wiremock = "3.0.1" -testcontainers = "1.20.1" +testcontainers = "1.20.2" braveBom = "6.0.3" bravePropagationW3c = "0.2.0" zipkinReporterBom = "3.4.2" From ffd7f7e44789f77cd3428d99b3639b2e3e71018a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:28:25 -0700 Subject: [PATCH 49/58] Bump org.apache.logging.log4j:log4j-core from 2.24.0 to 2.24.1 (#852) Bumps org.apache.logging.log4j:log4j-core from 2.24.0 to 2.24.1. --- updated-dependencies: - dependency-name: org.apache.logging.log4j:log4j-core dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 70076c1a..baee8185 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -10,7 +10,7 @@ zipkinAws="1.2.5" logback = "1.5.10" wavefrontSdk="3.4.3" otelInstrumentationBomAlpha="2.7.0-alpha" # Brings in io.opentelemetry:opentelemetry-bom:1.41.0 -log4j = "2.24.0" +log4j = "2.24.1" wavefrontReporter="1.7.16" slf4j = "1.7.36" assertj = "3.26.3" From a3d6329837f2615871c15742a2447f34eda00f44 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:28:40 -0700 Subject: [PATCH 50/58] Bump mockito from 5.13.0 to 5.14.1 (#851) Bumps `mockito` from 5.13.0 to 5.14.1. Updates `org.mockito:mockito-core` from 5.13.0 to 5.14.1 - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.13.0...v5.14.1) Updates `org.mockito:mockito-junit-jupiter` from 5.13.0 to 5.14.1 - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.13.0...v5.14.1) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: org.mockito:mockito-junit-jupiter dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index baee8185..68ac3d07 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ wavefrontReporter="1.7.16" slf4j = "1.7.36" assertj = "3.26.3" awaitility = "4.2.2" -mockito = "5.13.0" +mockito = "5.14.1" wiremock = "3.0.1" testcontainers = "1.20.2" braveBom = "6.0.3" From 06c261776d807d6ac5f76ca9794313ad76feed0f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:34:15 -0700 Subject: [PATCH 51/58] Bump org.junit:junit-bom from 5.11.0 to 5.11.2 (#858) Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.11.0 to 5.11.2. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/compare/r5.11.0...r5.11.2) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 68ac3d07..ac1fb772 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] micrometer = "1.14.0-SNAPSHOT" micrometerContextPropagation="1.1.2" -junit = "5.11.0" +junit = "5.11.2" javaxServlet="4.0.1" jmh="1.37" jakartaWeb="9.1.0" From b16389ba9b386a2bac3657cd9cbdc507dc122091 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 14 Oct 2024 15:34:40 -0700 Subject: [PATCH 52/58] Bump io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha from 2.7.0-alpha to 2.8.0-alpha (#845) * Bump io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha Bumps [io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha](https://github.com/open-telemetry/opentelemetry-java-instrumentation) from 2.7.0-alpha to 2.8.0-alpha. - [Release notes](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java-instrumentation/commits) --- updated-dependencies: - dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Update comment about OTel BOM version 1.42.1 --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jonatan Ivanov --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ac1fb772..5525b01f 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ aopalliance="1.0" zipkinAws="1.2.5" logback = "1.5.10" wavefrontSdk="3.4.3" -otelInstrumentationBomAlpha="2.7.0-alpha" # Brings in io.opentelemetry:opentelemetry-bom:1.41.0 +otelInstrumentationBomAlpha="2.8.0-alpha" # Brings in io.opentelemetry:opentelemetry-bom:1.42.1 log4j = "2.24.1" wavefrontReporter="1.7.16" slf4j = "1.7.36" From 89160b313825aab1bc49b99c0e7a0ad580638457 Mon Sep 17 00:00:00 2001 From: Tommy Ludwig <8924140+shakuzen@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:22:14 +0900 Subject: [PATCH 53/58] Upgrade to Micrometer 1.14.0-RC1 Closes gh-871 --- build.gradle | 2 +- gradle/libs.versions.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index d2298575..8301fdd3 100644 --- a/build.gradle +++ b/build.gradle @@ -314,7 +314,7 @@ subprojects { repositories { maven { - url 'https://repo.spring.io/snapshot/' + url 'https://repo.spring.io/milestone/' content { includeGroup 'io.micrometer' } } mavenCentral() diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 5525b01f..a7cdf856 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -micrometer = "1.14.0-SNAPSHOT" +micrometer = "1.14.0-RC1" micrometerContextPropagation="1.1.2" junit = "5.11.2" javaxServlet="4.0.1" From 3b586e101c78a7be5557059f7a3c82a32085837b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 10:23:49 -0800 Subject: [PATCH 54/58] Bump testcontainers from 1.20.2 to 1.20.3 (#878) Bumps `testcontainers` from 1.20.2 to 1.20.3. Updates `org.testcontainers:testcontainers` from 1.20.2 to 1.20.3 - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.20.2...1.20.3) Updates `org.testcontainers:junit-jupiter` from 1.20.2 to 1.20.3 - [Release notes](https://github.com/testcontainers/testcontainers-java/releases) - [Changelog](https://github.com/testcontainers/testcontainers-java/blob/main/CHANGELOG.md) - [Commits](https://github.com/testcontainers/testcontainers-java/compare/1.20.2...1.20.3) --- updated-dependencies: - dependency-name: org.testcontainers:testcontainers dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.testcontainers:junit-jupiter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index ba946166..67b00449 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -17,7 +17,7 @@ assertj = "3.26.3" awaitility = "4.2.2" mockito = "5.14.1" wiremock = "3.0.1" -testcontainers = "1.20.2" +testcontainers = "1.20.3" braveBom = "6.0.3" bravePropagationW3c = "0.2.0" zipkinReporterBom = "3.4.2" From f7380712a674019c23ba99cc25743d8ceaa2a6c8 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 10:23:59 -0800 Subject: [PATCH 55/58] Bump org.junit:junit-bom from 5.11.2 to 5.11.3 (#877) Bumps [org.junit:junit-bom](https://github.com/junit-team/junit5) from 5.11.2 to 5.11.3. - [Release notes](https://github.com/junit-team/junit5/releases) - [Commits](https://github.com/junit-team/junit5/commits) --- updated-dependencies: - dependency-name: org.junit:junit-bom dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 67b00449..cd5e0b7e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,7 +1,7 @@ [versions] micrometer = "1.14.0-RC1" micrometerContextPropagation="1.1.2" -junit = "5.11.2" +junit = "5.11.3" javaxServlet="4.0.1" jmh="1.37" jakartaWeb="9.1.0" From 67590bc0abcf58d847812861d263963762cfa322 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 10:24:32 -0800 Subject: [PATCH 56/58] Bump mockito from 5.14.1 to 5.14.2 (#873) Bumps `mockito` from 5.14.1 to 5.14.2. Updates `org.mockito:mockito-core` from 5.14.1 to 5.14.2 - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.14.1...v5.14.2) Updates `org.mockito:mockito-junit-jupiter` from 5.14.1 to 5.14.2 - [Release notes](https://github.com/mockito/mockito/releases) - [Commits](https://github.com/mockito/mockito/compare/v5.14.1...v5.14.2) --- updated-dependencies: - dependency-name: org.mockito:mockito-core dependency-type: direct:production update-type: version-update:semver-patch - dependency-name: org.mockito:mockito-junit-jupiter dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index cd5e0b7e..e09f718c 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ wavefrontReporter="1.7.16" slf4j = "1.7.36" assertj = "3.26.3" awaitility = "4.2.2" -mockito = "5.14.1" +mockito = "5.14.2" wiremock = "3.0.1" testcontainers = "1.20.3" braveBom = "6.0.3" From 25dd821123c144bb426c1ff2f4c4807ca1445a5e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Nov 2024 10:32:00 -0800 Subject: [PATCH 57/58] Bump io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha from 2.8.0-alpha to 2.9.0-alpha (#876) * Bump io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha Bumps [io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha](https://github.com/open-telemetry/opentelemetry-java-instrumentation) from 2.8.0-alpha to 2.9.0-alpha. - [Release notes](https://github.com/open-telemetry/opentelemetry-java-instrumentation/releases) - [Changelog](https://github.com/open-telemetry/opentelemetry-java-instrumentation/blob/main/CHANGELOG.md) - [Commits](https://github.com/open-telemetry/opentelemetry-java-instrumentation/commits) --- updated-dependencies: - dependency-name: io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Update comment about the used OTel BOM version --------- Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Jonatan Ivanov --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index e09f718c..6f30b3c4 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,7 +9,7 @@ aopalliance="1.0" zipkinAws="1.2.5" logback = "1.5.12" wavefrontSdk="3.4.3" -otelInstrumentationBomAlpha="2.8.0-alpha" # Brings in io.opentelemetry:opentelemetry-bom:1.42.1 +otelInstrumentationBomAlpha="2.9.0-alpha" # Brings in io.opentelemetry:opentelemetry-bom:1.43.0 log4j = "2.24.1" wavefrontReporter="1.7.16" slf4j = "1.7.36" From 9143d7ac6448aa125f3153bedf99e4bba2f82651 Mon Sep 17 00:00:00 2001 From: Tommy Ludwig <8924140+shakuzen@users.noreply.github.com> Date: Tue, 12 Nov 2024 13:44:29 +0900 Subject: [PATCH 58/58] Upgrade to Micrometer 1.14.0 Closes gh-886 --- build.gradle | 4 ---- gradle/libs.versions.toml | 2 +- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/build.gradle b/build.gradle index 8301fdd3..7b0fbe67 100644 --- a/build.gradle +++ b/build.gradle @@ -313,10 +313,6 @@ subprojects { description = 'Facade over tracing concepts' repositories { - maven { - url 'https://repo.spring.io/milestone/' - content { includeGroup 'io.micrometer' } - } mavenCentral() } diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6f30b3c4..bba57eb8 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -micrometer = "1.14.0-RC1" +micrometer = "1.14.0" micrometerContextPropagation="1.1.2" junit = "5.11.3" javaxServlet="4.0.1"