Skip to content

Commit df111a4

Browse files
otelbot[bot]breedx-splklaurit
authored
Update the OpenTelemetry SDK version to 1.48.0 (#13476)
Co-authored-by: otelbot <[email protected]> Co-authored-by: Jason Plumb <[email protected]> Co-authored-by: Lauri Tulmin <[email protected]>
1 parent 6c6223b commit df111a4

File tree

13 files changed

+100
-80
lines changed

13 files changed

+100
-80
lines changed

dependencyManagement/build.gradle.kts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ plugins {
55
data class DependencySet(val group: String, val version: String, val modules: List<String>)
66

77
// this line is managed by .github/scripts/update-sdk-version.sh
8-
val otelSdkVersion = "1.47.0"
8+
val otelSdkVersion = "1.48.0"
99
val otelContribVersion = "1.44.0-alpha"
1010
val otelSdkAlphaVersion = otelSdkVersion.replaceFirst("(-SNAPSHOT)?$".toRegex(), "-alpha$1")
1111

examples/distro/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ subprojects {
2727
ext {
2828
versions = [
2929
// this line is managed by .github/scripts/update-sdk-version.sh
30-
opentelemetrySdk : "1.47.0",
30+
opentelemetrySdk : "1.48.0",
3131

3232
// these lines are managed by .github/scripts/update-version.sh
3333
opentelemetryJavaagent : "2.14.0-SNAPSHOT",

examples/extension/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ version '1.0'
2323
ext {
2424
versions = [
2525
// this line is managed by .github/scripts/update-sdk-version.sh
26-
opentelemetrySdk : "1.47.0",
26+
opentelemetrySdk : "1.48.0",
2727

2828
// these lines are managed by .github/scripts/update-version.sh
2929
opentelemetryJavaagent : "2.14.0-SNAPSHOT",

instrumentation/resources/library/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ plugins {
55
val mrJarVersions = listOf(9, 11)
66

77
dependencies {
8+
compileOnly("io.opentelemetry:opentelemetry-api-incubator")
89
implementation("io.opentelemetry:opentelemetry-sdk-common")
910
implementation("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
1011
implementation("io.opentelemetry.semconv:opentelemetry-semconv")

instrumentation/resources/library/src/main/java/io/opentelemetry/instrumentation/resources/internal/ResourceComponentProvider.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55

66
package io.opentelemetry.instrumentation.resources.internal;
77

8+
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
89
import io.opentelemetry.sdk.autoconfigure.spi.internal.ComponentProvider;
9-
import io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties;
1010
import io.opentelemetry.sdk.resources.Resource;
1111
import java.util.function.Supplier;
1212

@@ -31,7 +31,7 @@ public String getName() {
3131
}
3232

3333
@Override
34-
public Resource create(StructuredConfigProperties structuredConfigProperties) {
34+
public Resource create(DeclarativeConfigProperties declarativeConfigProperties) {
3535
return supplier.get();
3636
}
3737
}

instrumentation/resources/library/src/test/java/io/opentelemetry/instrumentation/resources/internal/DeclarativeConfigTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010

1111
import io.opentelemetry.api.common.AttributeKey;
1212
import io.opentelemetry.sdk.OpenTelemetrySdk;
13-
import io.opentelemetry.sdk.extension.incubator.fileconfig.FileConfiguration;
13+
import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration;
1414
import io.opentelemetry.sdk.resources.Resource;
1515
import java.io.ByteArrayInputStream;
1616
import java.nio.charset.StandardCharsets;
@@ -33,7 +33,7 @@ void endToEnd() {
3333

3434
boolean java8 = "1.8".equals(System.getProperty("java.specification.version"));
3535
OpenTelemetrySdk openTelemetrySdk =
36-
FileConfiguration.parseAndCreate(
36+
DeclarativeConfiguration.parseAndCreate(
3737
new ByteArrayInputStream(yaml.getBytes(StandardCharsets.UTF_8)));
3838
assertThat(openTelemetrySdk.getSdkTracerProvider())
3939
.extracting("sharedState.resource", as(InstanceOfAssertFactories.type(Resource.class)))

javaagent-extension-api/build.gradle.kts

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ dependencies {
1111
api("io.opentelemetry:opentelemetry-sdk-extension-autoconfigure-spi")
1212
api("net.bytebuddy:byte-buddy-dep")
1313

14+
implementation("io.opentelemetry:opentelemetry-api-incubator")
1415
implementation(project(":instrumentation-api"))
1516
implementation(project(":instrumentation-api-incubator"))
1617

javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/AgentListener.java

+11-6
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,12 @@
55

66
package io.opentelemetry.javaagent.extension;
77

8+
import io.opentelemetry.api.incubator.config.ConfigProvider;
9+
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
810
import io.opentelemetry.sdk.autoconfigure.AutoConfiguredOpenTelemetrySdk;
911
import io.opentelemetry.sdk.autoconfigure.internal.AutoConfigureUtil;
1012
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
1113
import io.opentelemetry.sdk.autoconfigure.spi.Ordered;
12-
import io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties;
1314
import java.lang.instrument.Instrumentation;
1415
import net.bytebuddy.agent.builder.AgentBuilder;
1516

@@ -37,13 +38,17 @@ static ConfigProperties resolveConfigProperties(
3738
if (sdkConfigProperties != null) {
3839
return sdkConfigProperties;
3940
}
40-
StructuredConfigProperties structuredConfigProperties =
41-
AutoConfigureUtil.getStructuredConfig(autoConfiguredOpenTelemetrySdk);
42-
if (structuredConfigProperties != null) {
43-
return new StructuredConfigPropertiesBridge(structuredConfigProperties);
41+
ConfigProvider configProvider =
42+
AutoConfigureUtil.getConfigProvider(autoConfiguredOpenTelemetrySdk);
43+
if (configProvider != null) {
44+
DeclarativeConfigProperties instrumentationConfig = configProvider.getInstrumentationConfig();
45+
46+
if (instrumentationConfig != null) {
47+
return new DeclarativeConfigPropertiesBridge(instrumentationConfig);
48+
}
4449
}
4550
// Should never happen
4651
throw new IllegalStateException(
47-
"AutoConfiguredOpenTelemetrySdk does not have ConfigProperties or StructuredConfigProperties. This is likely a programming error in opentelemetry-java");
52+
"AutoConfiguredOpenTelemetrySdk does not have ConfigProperties or DeclarativeConfigProperties. This is likely a programming error in opentelemetry-java");
4853
}
4954
}

javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/StructuredConfigPropertiesBridge.java javaagent-extension-api/src/main/java/io/opentelemetry/javaagent/extension/DeclarativeConfigPropertiesBridge.java

+21-23
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@
55

66
package io.opentelemetry.javaagent.extension;
77

8-
import static io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties.empty;
8+
import static io.opentelemetry.api.incubator.config.DeclarativeConfigProperties.empty;
99

10+
import io.opentelemetry.api.incubator.config.DeclarativeConfigProperties;
1011
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
11-
import io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties;
1212
import java.time.Duration;
1313
import java.util.Collections;
1414
import java.util.HashMap;
@@ -18,7 +18,8 @@
1818
import javax.annotation.Nullable;
1919

2020
/**
21-
* A {@link ConfigProperties} which resolves properties based on {@link StructuredConfigProperties}.
21+
* A {@link ConfigProperties} which resolves properties based on {@link
22+
* DeclarativeConfigProperties}.
2223
*
2324
* <p>Only properties starting with "otel.instrumentation." are resolved. Others return null (or
2425
* default value if provided).
@@ -30,9 +31,9 @@
3031
* <li>The portion of the property after "otel.instrumentation." is split into segments based on
3132
* ".".
3233
* <li>For each N-1 segment, we walk down the tree to find the relevant leaf {@link
33-
* StructuredConfigProperties}.
34-
* <li>We extract the property from the resolved {@link StructuredConfigProperties} using the last
35-
* segment as the property key.
34+
* DeclarativeConfigProperties}.
35+
* <li>We extract the property from the resolved {@link DeclarativeConfigProperties} using the
36+
* last segment as the property key.
3637
* </ul>
3738
*
3839
* <p>For example, given the following YAML, asking for {@code
@@ -45,54 +46,51 @@
4546
* string_key: value
4647
* </pre>
4748
*/
48-
final class StructuredConfigPropertiesBridge implements ConfigProperties {
49+
final class DeclarativeConfigPropertiesBridge implements ConfigProperties {
4950

5051
private static final String OTEL_INSTRUMENTATION_PREFIX = "otel.instrumentation.";
5152

5253
// The node at .instrumentation.java
53-
private final StructuredConfigProperties instrumentationJavaNode;
54+
private final DeclarativeConfigProperties instrumentationJavaNode;
5455

55-
StructuredConfigPropertiesBridge(StructuredConfigProperties rootStructuredConfigProperties) {
56-
instrumentationJavaNode =
57-
rootStructuredConfigProperties
58-
.getStructured("instrumentation", empty())
59-
.getStructured("java", empty());
56+
DeclarativeConfigPropertiesBridge(DeclarativeConfigProperties instrumentationNode) {
57+
instrumentationJavaNode = instrumentationNode.getStructured("java", empty());
6058
}
6159

6260
@Nullable
6361
@Override
6462
public String getString(String propertyName) {
65-
return getPropertyValue(propertyName, StructuredConfigProperties::getString);
63+
return getPropertyValue(propertyName, DeclarativeConfigProperties::getString);
6664
}
6765

6866
@Nullable
6967
@Override
7068
public Boolean getBoolean(String propertyName) {
71-
return getPropertyValue(propertyName, StructuredConfigProperties::getBoolean);
69+
return getPropertyValue(propertyName, DeclarativeConfigProperties::getBoolean);
7270
}
7371

7472
@Nullable
7573
@Override
7674
public Integer getInt(String propertyName) {
77-
return getPropertyValue(propertyName, StructuredConfigProperties::getInt);
75+
return getPropertyValue(propertyName, DeclarativeConfigProperties::getInt);
7876
}
7977

8078
@Nullable
8179
@Override
8280
public Long getLong(String propertyName) {
83-
return getPropertyValue(propertyName, StructuredConfigProperties::getLong);
81+
return getPropertyValue(propertyName, DeclarativeConfigProperties::getLong);
8482
}
8583

8684
@Nullable
8785
@Override
8886
public Double getDouble(String propertyName) {
89-
return getPropertyValue(propertyName, StructuredConfigProperties::getDouble);
87+
return getPropertyValue(propertyName, DeclarativeConfigProperties::getDouble);
9088
}
9189

9290
@Nullable
9391
@Override
9492
public Duration getDuration(String propertyName) {
95-
Long millis = getPropertyValue(propertyName, StructuredConfigProperties::getLong);
93+
Long millis = getPropertyValue(propertyName, DeclarativeConfigProperties::getLong);
9694
if (millis == null) {
9795
return null;
9896
}
@@ -110,8 +108,8 @@ public List<String> getList(String propertyName) {
110108

111109
@Override
112110
public Map<String, String> getMap(String propertyName) {
113-
StructuredConfigProperties propertyValue =
114-
getPropertyValue(propertyName, StructuredConfigProperties::getStructured);
111+
DeclarativeConfigProperties propertyValue =
112+
getPropertyValue(propertyName, DeclarativeConfigProperties::getStructured);
115113
if (propertyValue == null) {
116114
return Collections.emptyMap();
117115
}
@@ -131,7 +129,7 @@ public Map<String, String> getMap(String propertyName) {
131129

132130
@Nullable
133131
private <T> T getPropertyValue(
134-
String property, BiFunction<StructuredConfigProperties, String, T> extractor) {
132+
String property, BiFunction<DeclarativeConfigProperties, String, T> extractor) {
135133
if (!property.startsWith(OTEL_INSTRUMENTATION_PREFIX)) {
136134
return null;
137135
}
@@ -141,7 +139,7 @@ private <T> T getPropertyValue(
141139
if (segments.length == 0) {
142140
return null;
143141
}
144-
StructuredConfigProperties target = instrumentationJavaNode;
142+
DeclarativeConfigProperties target = instrumentationJavaNode;
145143
if (segments.length > 1) {
146144
for (int i = 0; i < segments.length - 1; i++) {
147145
target = target.getStructured(segments[i], empty());

javaagent-extension-api/src/test/java/io/opentelemetry/javaagent/extension/StructuredConfigPropertiesBridgeTest.java javaagent-extension-api/src/test/java/io/opentelemetry/javaagent/extension/DeclarativeConfigPropertiesBridgeTest.java

+27-12
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,21 @@
88
import static org.assertj.core.api.Assertions.assertThat;
99

1010
import io.opentelemetry.sdk.autoconfigure.spi.ConfigProperties;
11-
import io.opentelemetry.sdk.autoconfigure.spi.internal.StructuredConfigProperties;
12-
import io.opentelemetry.sdk.extension.incubator.fileconfig.FileConfiguration;
11+
import io.opentelemetry.sdk.extension.incubator.fileconfig.DeclarativeConfiguration;
12+
import io.opentelemetry.sdk.extension.incubator.fileconfig.SdkConfigProvider;
13+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.InstrumentationModel;
14+
import io.opentelemetry.sdk.extension.incubator.fileconfig.internal.model.OpenTelemetryConfigurationModel;
1315
import java.io.ByteArrayInputStream;
1416
import java.nio.charset.StandardCharsets;
1517
import java.time.Duration;
1618
import java.util.Arrays;
1719
import java.util.HashMap;
1820
import java.util.Map;
21+
import java.util.Objects;
22+
import org.junit.jupiter.api.BeforeEach;
1923
import org.junit.jupiter.api.Test;
2024

21-
class StructuredConfigPropertiesBridgeTest {
25+
class DeclarativeConfigPropertiesBridgeTest {
2226

2327
private static final String YAML =
2428
"file_format: 0.3\n"
@@ -42,15 +46,26 @@ class StructuredConfigPropertiesBridgeTest {
4246
+ " string_key2: value2\n"
4347
+ " bool_key: true\n";
4448

45-
private final StructuredConfigProperties structuredConfigProperties =
46-
FileConfiguration.toConfigProperties(
47-
new ByteArrayInputStream(YAML.getBytes(StandardCharsets.UTF_8)));
48-
private final ConfigProperties bridge =
49-
new StructuredConfigPropertiesBridge(structuredConfigProperties);
50-
private final ConfigProperties emptyBridge =
51-
new StructuredConfigPropertiesBridge(
52-
FileConfiguration.toConfigProperties(
53-
new ByteArrayInputStream("file_format: 0.3\n".getBytes(StandardCharsets.UTF_8))));
49+
private ConfigProperties bridge;
50+
private ConfigProperties emptyBridge;
51+
52+
@BeforeEach
53+
void setup() {
54+
OpenTelemetryConfigurationModel model =
55+
DeclarativeConfiguration.parse(
56+
new ByteArrayInputStream(YAML.getBytes(StandardCharsets.UTF_8)));
57+
SdkConfigProvider configProvider = SdkConfigProvider.create(model);
58+
bridge =
59+
new DeclarativeConfigPropertiesBridge(
60+
Objects.requireNonNull(configProvider.getInstrumentationConfig()));
61+
62+
OpenTelemetryConfigurationModel emptyModel =
63+
new OpenTelemetryConfigurationModel().withInstrumentation(new InstrumentationModel());
64+
SdkConfigProvider emptyConfigProvider = SdkConfigProvider.create(emptyModel);
65+
emptyBridge =
66+
new DeclarativeConfigPropertiesBridge(
67+
Objects.requireNonNull(emptyConfigProvider.getInstrumentationConfig()));
68+
}
5469

5570
@Test
5671
void getProperties() {

0 commit comments

Comments
 (0)