Skip to content

Commit 5307231

Browse files
committed
Merge branch 'main' of https://github.com/open-telemetry/opentelemetry-java-contrib into rule-based-sampler-provider
2 parents 73607f5 + f6fa909 commit 5307231

File tree

16 files changed

+98
-44
lines changed

16 files changed

+98
-44
lines changed

README.md

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,19 +12,26 @@ feature or via instrumentation, this project is hopefully for you.
1212
* [AWS Resources](./aws-resources/README.md)
1313
* [AWS X-Ray SDK Support](./aws-xray/README.md)
1414
* [AWS X-Ray Propagator](./aws-xray-propagator/README.md)
15+
* [Baggage Span Processor](./baggage-processor/README.md)
1516
* [zstd Compressor](./compressors/compressor-zstd/README.md)
1617
* [Consistent Sampling](./consistent-sampling/README.md)
1718
* [Disk Buffering](./disk-buffering/README.md)
1819
* [GCP Resources](./gcp-resources/README.md)
20+
* [Inferred Spans](./inferred-spans/README.md)
21+
* [JFR Connection](./jfr-connection/README.md)
22+
* [JFR Events](./jfr-events/README.md)
1923
* [JMX Metric Gatherer](./jmx-metrics/README.md)
20-
* [No-Op API](./noop-api/README.md)
24+
* [Kafka Support](./kafka-exporter/README.md)
2125
* [OpenTelemetry Maven Extension](./maven-extension/README.md)
26+
* [Micrometer MeterProvider](./micrometer-meter-provider/README.md)
27+
* [No-Op API](./noop-api/README.md)
28+
* [Intercept and Process Signals Globally](./processors/README.md)
2229
* [Prometheus Client Bridge](./prometheus-client-bridge/README.md)
2330
* [Resource Providers](./resource-providers/README.md)
2431
* [Runtime Attach](./runtime-attach/README.md)
2532
* [Samplers](./samplers/README.md)
33+
* [Span Stacktrace Capture](./span-stacktrace/README.md)
2634
* [Static Instrumenter](./static-instrumenter/README.md)
27-
* [Kafka Support](./kafka-exporter/README.md)
2835

2936
## Getting Started
3037

buildSrc/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ dependencies {
1515
implementation("com.diffplug.spotless:spotless-plugin-gradle:6.25.0")
1616
implementation("net.ltgt.gradle:gradle-errorprone-plugin:4.0.1")
1717
implementation("net.ltgt.gradle:gradle-nullaway-plugin:2.0.0")
18-
implementation("com.gradle.enterprise:com.gradle.enterprise.gradle.plugin:3.18")
18+
implementation("com.gradle.enterprise:com.gradle.enterprise.gradle.plugin:3.18.1")
1919
}
2020

2121
spotless {

compressors/compressor-zstd/build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ otelJava.moduleName.set("io.opentelemetry.contrib.compressor.zstd")
99
dependencies {
1010
api("io.opentelemetry:opentelemetry-exporter-common")
1111

12-
implementation("com.github.luben:zstd-jni:1.5.6-4")
12+
implementation("com.github.luben:zstd-jni:1.5.6-5")
1313

1414
testImplementation("io.opentelemetry:opentelemetry-sdk-testing")
1515
testImplementation("io.opentelemetry:opentelemetry-exporter-otlp")

dependencyManagement/build.gradle.kts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ val otelInstrumentationVersion = "2.8.0-alpha"
1212
val DEPENDENCY_BOMS = listOf(
1313
"com.fasterxml.jackson:jackson-bom:2.17.2",
1414
"com.google.guava:guava-bom:33.3.0-jre",
15-
"com.linecorp.armeria:armeria-bom:1.30.0",
15+
"com.linecorp.armeria:armeria-bom:1.30.1",
1616
"org.junit:junit-bom:5.11.0",
1717
"io.grpc:grpc-bom:1.66.0",
1818
"io.opentelemetry.instrumentation:opentelemetry-instrumentation-bom-alpha:${otelInstrumentationVersion}",
@@ -21,7 +21,7 @@ val DEPENDENCY_BOMS = listOf(
2121

2222
val autoServiceVersion = "1.1.1"
2323
val autoValueVersion = "1.11.0"
24-
val errorProneVersion = "2.30.0"
24+
val errorProneVersion = "2.31.0"
2525
val prometheusVersion = "0.16.0"
2626
val mockitoVersion = "4.11.0"
2727
val slf4jVersion = "2.0.16"

disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapper.java

Lines changed: 29 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,10 @@
77

88
import static io.opentelemetry.contrib.disk.buffering.internal.serialization.mapping.spans.SpanDataMapper.flagsFromInt;
99
import static io.opentelemetry.contrib.disk.buffering.internal.utils.ProtobufTools.toUnsignedInt;
10+
import static java.util.stream.Collectors.toList;
1011

1112
import io.opentelemetry.api.common.Attributes;
13+
import io.opentelemetry.api.common.Value;
1214
import io.opentelemetry.api.logs.Severity;
1315
import io.opentelemetry.api.trace.SpanContext;
1416
import io.opentelemetry.api.trace.TraceState;
@@ -19,9 +21,9 @@
1921
import io.opentelemetry.proto.logs.v1.LogRecord;
2022
import io.opentelemetry.proto.logs.v1.SeverityNumber;
2123
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
22-
import io.opentelemetry.sdk.logs.data.Body;
2324
import io.opentelemetry.sdk.logs.data.LogRecordData;
2425
import io.opentelemetry.sdk.resources.Resource;
26+
import java.util.stream.Collectors;
2527

2628
public final class LogRecordDataMapper {
2729

@@ -42,8 +44,8 @@ public LogRecord mapToProto(LogRecordData source) {
4244
if (source.getSeverityText() != null) {
4345
logRecord.severity_text(source.getSeverityText());
4446
}
45-
if (source.getBody() != null) {
46-
logRecord.body(bodyToAnyValue(source.getBody()));
47+
if (source.getBodyValue() != null) {
48+
logRecord.body(bodyToAnyValue(source.getBodyValue()));
4749
}
4850

4951
byte flags = source.getSpanContext().getTraceFlags().asByte();
@@ -73,7 +75,7 @@ public LogRecordData mapToSdk(
7375
logRecordData.setSeverity(severityNumberToSdk(source.severity_number));
7476
logRecordData.setSeverityText(source.severity_text);
7577
if (source.body != null) {
76-
logRecordData.setBody(anyValueToBody(source.body));
78+
logRecordData.setBodyValue(anyValueToBody(source.body));
7779
}
7880

7981
addExtrasToSdkItemBuilder(source, logRecordData, resource, scopeInfo);
@@ -99,20 +101,38 @@ private static void addExtrasToSdkItemBuilder(
99101
target.setInstrumentationScopeInfo(scopeInfo);
100102
}
101103

102-
private static AnyValue bodyToAnyValue(Body body) {
104+
private static AnyValue bodyToAnyValue(Value<?> body) {
103105
return new AnyValue.Builder().string_value(body.asString()).build();
104106
}
105107

106108
private static SeverityNumber severityToProto(Severity severity) {
107109
return SeverityNumber.fromValue(severity.getSeverityNumber());
108110
}
109111

110-
private static Body anyValueToBody(AnyValue source) {
112+
private static Value<?> anyValueToBody(AnyValue source) {
111113
if (source.string_value != null) {
112-
return Body.string(source.string_value);
113-
} else {
114-
return Body.empty();
114+
return Value.of(source.string_value);
115+
} else if (source.int_value != null) {
116+
return Value.of(source.int_value);
117+
} else if (source.double_value != null) {
118+
return Value.of(source.double_value);
119+
} else if (source.bool_value != null) {
120+
return Value.of(source.bool_value);
121+
} else if (source.bytes_value != null) {
122+
return Value.of(source.bytes_value.toByteArray());
123+
} else if (source.kvlist_value != null) {
124+
return Value.of(
125+
source.kvlist_value.values.stream()
126+
.collect(
127+
Collectors.toMap(
128+
keyValue -> keyValue.key, keyValue -> anyValueToBody(keyValue.value))));
129+
} else if (source.array_value != null) {
130+
return Value.of(
131+
source.array_value.values.stream()
132+
.map(LogRecordDataMapper::anyValueToBody)
133+
.collect(toList()));
115134
}
135+
throw new IllegalArgumentException("Unrecognized AnyValue type");
116136
}
117137

118138
private static Severity severityNumberToSdk(SeverityNumber source) {

disk-buffering/src/main/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/models/LogRecordDataImpl.java

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,15 @@
66
package io.opentelemetry.contrib.disk.buffering.internal.serialization.mapping.logs.models;
77

88
import com.google.auto.value.AutoValue;
9+
import com.google.errorprone.annotations.CanIgnoreReturnValue;
910
import io.opentelemetry.api.common.Attributes;
11+
import io.opentelemetry.api.common.Value;
1012
import io.opentelemetry.api.logs.Severity;
1113
import io.opentelemetry.api.trace.SpanContext;
1214
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
13-
import io.opentelemetry.sdk.logs.data.Body;
1415
import io.opentelemetry.sdk.logs.data.LogRecordData;
1516
import io.opentelemetry.sdk.resources.Resource;
17+
import javax.annotation.Nullable;
1618

1719
@AutoValue
1820
public abstract class LogRecordDataImpl implements LogRecordData {
@@ -21,6 +23,18 @@ public static Builder builder() {
2123
return new AutoValue_LogRecordDataImpl.Builder();
2224
}
2325

26+
@Deprecated
27+
public io.opentelemetry.sdk.logs.data.Body getBody() {
28+
Value<?> valueBody = getBodyValue();
29+
return valueBody == null
30+
? io.opentelemetry.sdk.logs.data.Body.empty()
31+
: io.opentelemetry.sdk.logs.data.Body.string(valueBody.asString());
32+
}
33+
34+
@Override
35+
@Nullable
36+
public abstract Value<?> getBodyValue();
37+
2438
@AutoValue.Builder
2539
public abstract static class Builder {
2640
public abstract Builder setResource(Resource value);
@@ -37,7 +51,18 @@ public abstract static class Builder {
3751

3852
public abstract Builder setSeverityText(String value);
3953

40-
public abstract Builder setBody(Body value);
54+
@Deprecated
55+
@CanIgnoreReturnValue
56+
public Builder setBody(io.opentelemetry.sdk.logs.data.Body body) {
57+
if (body.getType() == io.opentelemetry.sdk.logs.data.Body.Type.STRING) {
58+
setBodyValue(Value.of(body.asString()));
59+
} else if (body.getType() == io.opentelemetry.sdk.logs.data.Body.Type.EMPTY) {
60+
setBodyValue(null);
61+
}
62+
return this;
63+
}
64+
65+
public abstract Builder setBodyValue(@Nullable Value<?> value);
4166

4267
public abstract Builder setAttributes(Attributes value);
4368

disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/LogRecordDataMapperTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,12 +7,12 @@
77

88
import static org.junit.jupiter.api.Assertions.assertEquals;
99

10+
import io.opentelemetry.api.common.Value;
1011
import io.opentelemetry.api.logs.Severity;
1112
import io.opentelemetry.contrib.disk.buffering.internal.serialization.mapping.logs.models.LogRecordDataImpl;
1213
import io.opentelemetry.contrib.disk.buffering.testutils.TestData;
1314
import io.opentelemetry.proto.logs.v1.LogRecord;
1415
import io.opentelemetry.sdk.common.InstrumentationScopeInfo;
15-
import io.opentelemetry.sdk.logs.data.Body;
1616
import io.opentelemetry.sdk.logs.data.LogRecordData;
1717
import io.opentelemetry.sdk.resources.Resource;
1818
import org.junit.jupiter.api.Test;
@@ -25,7 +25,7 @@ class LogRecordDataMapperTest {
2525
.setSpanContext(TestData.SPAN_CONTEXT)
2626
.setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_FULL)
2727
.setAttributes(TestData.ATTRIBUTES)
28-
.setBody(Body.string("Log body"))
28+
.setBodyValue(Value.of("Log body"))
2929
.setSeverity(Severity.DEBUG)
3030
.setSeverityText("Log severity text")
3131
.setTimestampEpochNanos(100L)

disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/mapping/logs/ProtoLogsDataMapperTest.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@
88
import static org.assertj.core.api.Assertions.assertThat;
99
import static org.junit.jupiter.api.Assertions.assertEquals;
1010

11+
import io.opentelemetry.api.common.Value;
1112
import io.opentelemetry.api.logs.Severity;
1213
import io.opentelemetry.contrib.disk.buffering.internal.serialization.mapping.logs.models.LogRecordDataImpl;
1314
import io.opentelemetry.contrib.disk.buffering.testutils.TestData;
1415
import io.opentelemetry.proto.logs.v1.LogRecord;
1516
import io.opentelemetry.proto.logs.v1.LogsData;
1617
import io.opentelemetry.proto.logs.v1.ResourceLogs;
1718
import io.opentelemetry.proto.logs.v1.ScopeLogs;
18-
import io.opentelemetry.sdk.logs.data.Body;
1919
import io.opentelemetry.sdk.logs.data.LogRecordData;
2020
import java.util.Arrays;
2121
import java.util.Collection;
@@ -31,7 +31,7 @@ class ProtoLogsDataMapperTest {
3131
.setSpanContext(TestData.SPAN_CONTEXT)
3232
.setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_FULL)
3333
.setAttributes(TestData.ATTRIBUTES)
34-
.setBody(Body.string("Log body"))
34+
.setBodyValue(Value.of("Log body"))
3535
.setSeverity(Severity.DEBUG)
3636
.setSeverityText("Log severity text")
3737
.setTimestampEpochNanos(100L)
@@ -45,7 +45,7 @@ class ProtoLogsDataMapperTest {
4545
.setSpanContext(TestData.SPAN_CONTEXT)
4646
.setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_FULL)
4747
.setAttributes(TestData.ATTRIBUTES)
48-
.setBody(Body.string("Other log body"))
48+
.setBodyValue(Value.of("Other log body"))
4949
.setSeverity(Severity.DEBUG)
5050
.setSeverityText("Log severity text")
5151
.setTimestampEpochNanos(100L)
@@ -59,7 +59,7 @@ class ProtoLogsDataMapperTest {
5959
.setSpanContext(TestData.SPAN_CONTEXT)
6060
.setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_WITHOUT_VERSION)
6161
.setAttributes(TestData.ATTRIBUTES)
62-
.setBody(Body.string("Same resource other scope log"))
62+
.setBodyValue(Value.of("Same resource other scope log"))
6363
.setSeverity(Severity.DEBUG)
6464
.setSeverityText("Log severity text")
6565
.setTimestampEpochNanos(100L)
@@ -73,7 +73,7 @@ class ProtoLogsDataMapperTest {
7373
.setSpanContext(TestData.SPAN_CONTEXT)
7474
.setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_WITHOUT_VERSION)
7575
.setAttributes(TestData.ATTRIBUTES)
76-
.setBody(Body.string("Different resource log"))
76+
.setBodyValue(Value.of("Different resource log"))
7777
.setSeverity(Severity.DEBUG)
7878
.setSeverityText("Log severity text")
7979
.setTimestampEpochNanos(100L)

disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/serialization/serializers/LogRecordDataSerializerTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@
66
package io.opentelemetry.contrib.disk.buffering.internal.serialization.serializers;
77

88
import io.opentelemetry.api.common.Attributes;
9+
import io.opentelemetry.api.common.Value;
910
import io.opentelemetry.api.logs.Severity;
1011
import io.opentelemetry.contrib.disk.buffering.internal.serialization.deserializers.SignalDeserializer;
1112
import io.opentelemetry.contrib.disk.buffering.internal.serialization.mapping.logs.models.LogRecordDataImpl;
1213
import io.opentelemetry.contrib.disk.buffering.testutils.BaseSignalSerializerTest;
1314
import io.opentelemetry.contrib.disk.buffering.testutils.TestData;
14-
import io.opentelemetry.sdk.logs.data.Body;
1515
import io.opentelemetry.sdk.logs.data.LogRecordData;
1616
import org.junit.jupiter.api.Test;
1717

@@ -22,7 +22,7 @@ class LogRecordDataSerializerTest extends BaseSignalSerializerTest<LogRecordData
2222
.setSpanContext(TestData.SPAN_CONTEXT)
2323
.setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_FULL)
2424
.setAttributes(TestData.ATTRIBUTES)
25-
.setBody(Body.string("Log body"))
25+
.setBodyValue(Value.of("Log body"))
2626
.setSeverity(Severity.DEBUG)
2727
.setSeverityText("Log severity text")
2828
.setTimestampEpochNanos(100L)
@@ -36,7 +36,7 @@ class LogRecordDataSerializerTest extends BaseSignalSerializerTest<LogRecordData
3636
.setSpanContext(TestData.SPAN_CONTEXT)
3737
.setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_FULL)
3838
.setAttributes(Attributes.empty())
39-
.setBody(Body.string("Log body"))
39+
.setBodyValue(Value.of("Log body"))
4040
.setSeverity(Severity.DEBUG)
4141
.setSeverityText("")
4242
.setTimestampEpochNanos(100L)

disk-buffering/src/test/java/io/opentelemetry/contrib/disk/buffering/internal/storage/files/ReadableFileTest.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import static org.mockito.Mockito.mock;
1717
import static org.mockito.Mockito.when;
1818

19+
import io.opentelemetry.api.common.Value;
1920
import io.opentelemetry.api.logs.Severity;
2021
import io.opentelemetry.contrib.disk.buffering.internal.files.TemporaryFileProvider;
2122
import io.opentelemetry.contrib.disk.buffering.internal.serialization.deserializers.SignalDeserializer;
@@ -24,7 +25,6 @@
2425
import io.opentelemetry.contrib.disk.buffering.internal.storage.responses.ReadableResult;
2526
import io.opentelemetry.contrib.disk.buffering.testutils.TestData;
2627
import io.opentelemetry.sdk.common.Clock;
27-
import io.opentelemetry.sdk.logs.data.Body;
2828
import io.opentelemetry.sdk.logs.data.LogRecordData;
2929
import java.io.File;
3030
import java.io.FileOutputStream;
@@ -53,7 +53,7 @@ class ReadableFileTest {
5353
.setSpanContext(TestData.SPAN_CONTEXT)
5454
.setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_FULL)
5555
.setAttributes(TestData.ATTRIBUTES)
56-
.setBody(Body.string("First log body"))
56+
.setBodyValue(Value.of("First log body"))
5757
.setSeverity(Severity.DEBUG)
5858
.setSeverityText("Log severity text")
5959
.setTimestampEpochNanos(100L)
@@ -67,7 +67,7 @@ class ReadableFileTest {
6767
.setSpanContext(TestData.SPAN_CONTEXT)
6868
.setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_FULL)
6969
.setAttributes(TestData.ATTRIBUTES)
70-
.setBody(Body.string("Second log body"))
70+
.setBodyValue(Value.of("Second log body"))
7171
.setSeverity(Severity.DEBUG)
7272
.setSeverityText("Log severity text")
7373
.setTimestampEpochNanos(100L)
@@ -81,7 +81,7 @@ class ReadableFileTest {
8181
.setSpanContext(TestData.SPAN_CONTEXT)
8282
.setInstrumentationScopeInfo(TestData.INSTRUMENTATION_SCOPE_INFO_FULL)
8383
.setAttributes(TestData.ATTRIBUTES)
84-
.setBody(Body.string("Third log body"))
84+
.setBodyValue(Value.of("Third log body"))
8585
.setSeverity(Severity.DEBUG)
8686
.setSeverityText("Log severity text")
8787
.setTimestampEpochNanos(100L)

0 commit comments

Comments
 (0)