Skip to content

Commit 86355d0

Browse files
authored
Bump opentelemetry java sdk version and add new semconv dependency (#217)
* Bumping OTel sdk and adding semconv lib * Updating unit tests * Updating changelog * Updated notice files
1 parent ad337e2 commit 86355d0

File tree

24 files changed

+63
-63
lines changed

24 files changed

+63
-63
lines changed

CHANGELOG.asciidoc

+1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ ${next_release_notes}
3838
* Removing Gradle's warning on missing serverUrl param: {pull}209[#209]
3939
* Adding http response content length attr to okhttp spans: {pull}211[#211]
4040
* Marking okhttp spans as failed when receiving an error response code: {pull}212[#212]
41+
* Bumping OTel SDK to 1.31.0 and adding new semconv dependency: {pull}217[#217]
4142
////
4243
4344
[[release-notes-0.9.0]]

NOTICE

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ This product includes software licensed under the 'Apache License Version 2.0' l
1616
- okhttp (https://square.github.io/okhttp/)
1717
- OpenTelemetry Java (https://github.com/open-telemetry/opentelemetry-java)
1818
- OpenTelemetry Java Contrib (https://github.com/open-telemetry/opentelemetry-java-contrib)
19+
- OpenTelemetry Semantic Conventions Java (https://github.com/open-telemetry/semantic-conventions-java)
1920
- org.stagemonitor:stagemonitor-configuration (http://www.stagemonitor.org)
2021
- Weakly referenced lock-free data structures (https://github.com/raphw/weak-lock-free)
2122

+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
dependencies.hash=83E0E6D9CD40065C79FADBCA67A5607B
1+
dependencies.hash=81F0B6D19D5388F15DBE3E189D6C1B22

android-sdk/build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ dependencies {
4444
implementation 'com.blogspot.mydailyjava:weak-lock-free:0.18'
4545
implementation project(':android-common')
4646
implementation "io.opentelemetry:opentelemetry-exporter-otlp:$openTelemetry_version"
47-
implementation "io.opentelemetry:opentelemetry-semconv:$openTelemetry_version-alpha"
47+
implementation "io.opentelemetry.semconv:opentelemetry-semconv:1.21.0-alpha"
4848
implementation "io.opentelemetry.contrib:opentelemetry-disk-buffering:$openTelemetry_version-alpha"
4949
implementation "androidx.annotation:annotation:$androidAnnotations_version"
5050
implementation 'com.dslplatform:dsl-json-java8:1.10.0'
+1-1
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
dependencies.hash=553460B56887EDB98C3A019266F71C55
1+
dependencies.hash=81E0A693875E87899494D84AB8C8D79D

android-sdk/src/main/java/co/elastic/apm/android/sdk/attributes/common/CarrierHttpAttributesVisitor.java

+5-5
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import co.elastic.apm.android.sdk.internal.services.network.data.CarrierInfo;
2626
import co.elastic.apm.android.sdk.internal.utilities.providers.Provider;
2727
import io.opentelemetry.api.common.AttributesBuilder;
28-
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
28+
import io.opentelemetry.semconv.SemanticAttributes;
2929

3030
public class CarrierHttpAttributesVisitor implements AttributesVisitor {
3131
private final Provider<NetworkService> networkServiceProvider;
@@ -38,10 +38,10 @@ public CarrierHttpAttributesVisitor() {
3838
public void visit(AttributesBuilder builder) {
3939
CarrierInfo carrierInfo = networkServiceProvider.get().getCarrierInfo();
4040
if (carrierInfo != null) {
41-
builder.put(SemanticAttributes.NET_HOST_CARRIER_NAME, carrierInfo.name);
42-
builder.put(SemanticAttributes.NET_HOST_CARRIER_MCC, carrierInfo.mcc);
43-
builder.put(SemanticAttributes.NET_HOST_CARRIER_MNC, carrierInfo.mnc);
44-
builder.put(SemanticAttributes.NET_HOST_CARRIER_ICC, carrierInfo.icc);
41+
builder.put(SemanticAttributes.NETWORK_CARRIER_NAME, carrierInfo.name);
42+
builder.put(SemanticAttributes.NETWORK_CARRIER_MCC, carrierInfo.mcc);
43+
builder.put(SemanticAttributes.NETWORK_CARRIER_MNC, carrierInfo.mnc);
44+
builder.put(SemanticAttributes.NETWORK_CARRIER_ICC, carrierInfo.icc);
4545
}
4646
}
4747
}

android-sdk/src/main/java/co/elastic/apm/android/sdk/attributes/common/ConnectionHttpAttributesVisitor.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
import co.elastic.apm.android.sdk.internal.services.network.NetworkService;
2525
import co.elastic.apm.android.sdk.internal.services.network.data.type.NetworkType;
2626
import io.opentelemetry.api.common.AttributesBuilder;
27-
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
27+
import io.opentelemetry.semconv.SemanticAttributes;
2828

2929
public class ConnectionHttpAttributesVisitor implements AttributesVisitor {
3030
private final NetworkService networkService;
@@ -48,9 +48,9 @@ private ConnectionHttpAttributesVisitor() {
4848
@Override
4949
public void visit(AttributesBuilder builder) {
5050
NetworkType networkType = networkService.getType();
51-
builder.put(SemanticAttributes.NET_HOST_CONNECTION_TYPE, networkType.getName());
51+
builder.put(SemanticAttributes.NETWORK_CONNECTION_TYPE, networkType.getName());
5252
if (networkType.getSubTypeName() != null) {
53-
builder.put(SemanticAttributes.NET_HOST_CONNECTION_SUBTYPE, networkType.getSubTypeName());
53+
builder.put(SemanticAttributes.NETWORK_CONNECTION_SUBTYPE, networkType.getSubTypeName());
5454
}
5555
}
5656
}

android-sdk/src/main/java/co/elastic/apm/android/sdk/attributes/resources/DeviceIdVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525
import co.elastic.apm.android.sdk.internal.services.ServiceManager;
2626
import co.elastic.apm.android.sdk.internal.services.preferences.PreferencesService;
2727
import io.opentelemetry.api.common.AttributesBuilder;
28-
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
28+
import io.opentelemetry.semconv.ResourceAttributes;
2929

3030
public class DeviceIdVisitor implements AttributesVisitor {
3131

android-sdk/src/main/java/co/elastic/apm/android/sdk/attributes/resources/DeviceInfoVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
import co.elastic.apm.android.sdk.attributes.AttributesVisitor;
2424
import io.opentelemetry.api.common.AttributesBuilder;
25-
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
25+
import io.opentelemetry.semconv.ResourceAttributes;
2626

2727
public class DeviceInfoVisitor implements AttributesVisitor {
2828

android-sdk/src/main/java/co/elastic/apm/android/sdk/attributes/resources/OsDescriptorVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222

2323
import co.elastic.apm.android.sdk.attributes.AttributesVisitor;
2424
import io.opentelemetry.api.common.AttributesBuilder;
25-
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
25+
import io.opentelemetry.semconv.ResourceAttributes;
2626

2727
public class OsDescriptorVisitor implements AttributesVisitor {
2828

android-sdk/src/main/java/co/elastic/apm/android/sdk/attributes/resources/RuntimeDescriptorVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import co.elastic.apm.android.sdk.attributes.AttributesVisitor;
2222
import io.opentelemetry.api.common.AttributesBuilder;
23-
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
23+
import io.opentelemetry.semconv.ResourceAttributes;
2424

2525
public class RuntimeDescriptorVisitor implements AttributesVisitor {
2626

android-sdk/src/main/java/co/elastic/apm/android/sdk/attributes/resources/SdkIdVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import co.elastic.apm.android.sdk.BuildConfig;
2222
import co.elastic.apm.android.sdk.attributes.AttributesVisitor;
2323
import io.opentelemetry.api.common.AttributesBuilder;
24-
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
24+
import io.opentelemetry.semconv.ResourceAttributes;
2525

2626
public class SdkIdVisitor implements AttributesVisitor {
2727

android-sdk/src/main/java/co/elastic/apm/android/sdk/attributes/resources/ServiceIdVisitor.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@
2626
import co.elastic.apm.android.sdk.internal.services.appinfo.AppInfoService;
2727
import io.opentelemetry.api.common.AttributeKey;
2828
import io.opentelemetry.api.common.AttributesBuilder;
29-
import io.opentelemetry.semconv.resource.attributes.ResourceAttributes;
29+
import io.opentelemetry.semconv.ResourceAttributes;
3030

3131
public class ServiceIdVisitor implements AttributesVisitor {
3232

android-sdk/src/main/java/co/elastic/apm/android/sdk/internal/exceptions/ElasticExceptionHandler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
import co.elastic.apm.android.sdk.logs.ElasticEvents;
2929
import io.opentelemetry.api.common.Attributes;
3030
import io.opentelemetry.api.events.EventEmitter;
31-
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
31+
import io.opentelemetry.semconv.SemanticAttributes;
3232

3333
public final class ElasticExceptionHandler implements Thread.UncaughtExceptionHandler {
3434
private final Thread.UncaughtExceptionHandler wrapped;

android-sdk/src/main/java/co/elastic/apm/android/sdk/internal/opentelemetry/processors/logs/ElasticLogRecordProcessor.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -18,15 +18,15 @@
1818
*/
1919
package co.elastic.apm.android.sdk.internal.opentelemetry.processors.logs;
2020

21+
import androidx.annotation.NonNull;
22+
2123
import org.slf4j.Logger;
2224

2325
import co.elastic.apm.android.common.internal.logging.Elog;
2426
import co.elastic.apm.android.sdk.attributes.AttributesCreator;
2527
import co.elastic.apm.android.sdk.attributes.AttributesVisitor;
2628
import co.elastic.apm.android.sdk.instrumentation.Instrumentation;
27-
import co.elastic.apm.android.sdk.instrumentation.Instrumentations;
2829
import co.elastic.apm.android.sdk.internal.api.filter.Filter;
29-
import co.elastic.apm.android.sdk.internal.configuration.Configurations;
3030
import co.elastic.apm.android.sdk.internal.configuration.impl.AllInstrumentationConfiguration;
3131
import io.opentelemetry.api.common.AttributeKey;
3232
import io.opentelemetry.api.common.Attributes;
@@ -48,7 +48,7 @@ public ElasticLogRecordProcessor(LogRecordProcessor original, AttributesVisitor
4848
}
4949

5050
@Override
51-
public void onEmit(Context context, ReadWriteLogRecord logRecord) {
51+
public void onEmit(@NonNull Context context, @NonNull ReadWriteLogRecord logRecord) {
5252
if (!Instrumentation.isEnabled(AllInstrumentationConfiguration.class)) {
5353
Elog.getLogger().debug("Ignoring all log records");
5454
return;

android-sdk/src/main/java/co/elastic/apm/android/sdk/internal/opentelemetry/processors/metrics/ElasticMetricReader.java

+7-10
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818
*/
1919
package co.elastic.apm.android.sdk.internal.opentelemetry.processors.metrics;
2020

21+
import androidx.annotation.NonNull;
22+
2123
import java.util.ArrayList;
2224
import java.util.Collection;
2325
import java.util.Collections;
@@ -33,7 +35,6 @@
3335
import io.opentelemetry.sdk.metrics.data.MetricData;
3436
import io.opentelemetry.sdk.metrics.export.CollectionRegistration;
3537
import io.opentelemetry.sdk.metrics.export.MetricReader;
36-
import io.opentelemetry.sdk.metrics.internal.export.MetricProducer;
3738

3839
public final class ElasticMetricReader implements MetricReader {
3940
private final MetricReader wrapped;
@@ -44,12 +45,8 @@ public ElasticMetricReader(MetricReader wrapped) {
4445
}
4546

4647
@Override
47-
public void register(CollectionRegistration registration) {
48-
if (registration instanceof MetricProducer) {
49-
wrapped.register(new ElasticMetricProducer((MetricProducer) registration, filter));
50-
} else {
51-
wrapped.register(registration);
52-
}
48+
public void register(@NonNull CollectionRegistration registration) {
49+
wrapped.register(new ElasticCollectionRegistration(registration, filter));
5350
}
5451

5552
@Override
@@ -67,11 +64,11 @@ public AggregationTemporality getAggregationTemporality(InstrumentType instrumen
6764
return wrapped.getAggregationTemporality(instrumentType);
6865
}
6966

70-
private static class ElasticMetricProducer implements MetricProducer {
71-
private final MetricProducer wrapped;
67+
private static class ElasticCollectionRegistration implements CollectionRegistration {
68+
private final CollectionRegistration wrapped;
7269
private final Filter<MetricData> filter;
7370

74-
private ElasticMetricProducer(MetricProducer wrapped, Filter<MetricData> filter) {
71+
private ElasticCollectionRegistration(CollectionRegistration wrapped, Filter<MetricData> filter) {
7572
this.wrapped = wrapped;
7673
this.filter = filter;
7774
}

android-sdk/src/main/java/co/elastic/apm/android/sdk/traces/http/attributes/visitors/BasicHttpAttributesVisitor.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,13 +21,13 @@
2121
import co.elastic.apm.android.sdk.traces.http.attributes.HttpAttributesVisitor;
2222
import co.elastic.apm.android.sdk.traces.http.data.HttpRequest;
2323
import io.opentelemetry.api.common.AttributesBuilder;
24-
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
24+
import io.opentelemetry.semconv.SemanticAttributes;
2525

2626
public class BasicHttpAttributesVisitor implements HttpAttributesVisitor {
2727

2828
@Override
2929
public void visit(AttributesBuilder builder, HttpRequest request) {
30-
builder.put(SemanticAttributes.HTTP_URL, request.url.toString())
31-
.put(SemanticAttributes.HTTP_METHOD, request.method);
30+
builder.put(SemanticAttributes.URL_FULL, request.url.toString())
31+
.put(SemanticAttributes.HTTP_REQUEST_METHOD, request.method);
3232
}
3333
}

android-sdk/src/main/java/co/elastic/apm/android/sdk/traces/http/filtering/HttpFilter.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -23,16 +23,16 @@
2323
import java.net.MalformedURLException;
2424
import java.net.URL;
2525

26-
import co.elastic.apm.android.sdk.traces.tools.SpanFilter;
2726
import co.elastic.apm.android.sdk.traces.http.data.HttpRequest;
27+
import co.elastic.apm.android.sdk.traces.tools.SpanFilter;
2828
import io.opentelemetry.sdk.trace.ReadableSpan;
29-
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
29+
import io.opentelemetry.semconv.SemanticAttributes;
3030

3131
abstract public class HttpFilter implements SpanFilter {
3232

3333
@Override
3434
public boolean shouldInclude(ReadableSpan item) {
35-
String httpMethod = item.getAttribute(SemanticAttributes.HTTP_METHOD);
35+
String httpMethod = item.getAttribute(SemanticAttributes.HTTP_REQUEST_METHOD);
3636
if (httpMethod == null) {
3737
// Not an http-related Span.
3838
return false;
@@ -42,7 +42,7 @@ public boolean shouldInclude(ReadableSpan item) {
4242
}
4343

4444
private URL getUrl(ReadableSpan span) {
45-
String urlString = span.getAttribute(SemanticAttributes.HTTP_URL);
45+
String urlString = span.getAttribute(SemanticAttributes.URL_FULL);
4646
try {
4747
return new URL(urlString);
4848
} catch (MalformedURLException e) {

android-sdk/src/main/java/co/elastic/apm/android/sdk/traces/http/impl/okhttp/OtelOkHttpEventListener.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import io.opentelemetry.api.trace.Tracer;
3939
import io.opentelemetry.context.Context;
4040
import io.opentelemetry.context.ContextKey;
41-
import io.opentelemetry.semconv.trace.attributes.SemanticAttributes;
41+
import io.opentelemetry.semconv.SemanticAttributes;
4242
import okhttp3.Call;
4343
import okhttp3.EventListener;
4444
import okhttp3.HttpUrl;
@@ -133,12 +133,12 @@ public void responseHeadersEnd(@NonNull Call call, @NonNull Response response) {
133133
private static void setResponseSize(@NonNull Response response, Span span) {
134134
String contentLength = response.header("Content-Length");
135135
if (contentLength != null) {
136-
span.setAttribute(SemanticAttributes.HTTP_RESPONSE_CONTENT_LENGTH, Long.valueOf(contentLength));
136+
span.setAttribute(SemanticAttributes.HTTP_RESPONSE_BODY_SIZE, Long.valueOf(contentLength));
137137
}
138138
}
139139

140140
private static void setStatusCode(Span span, int code) {
141-
span.setAttribute(SemanticAttributes.HTTP_STATUS_CODE, code);
141+
span.setAttribute(SemanticAttributes.HTTP_RESPONSE_STATUS_CODE, code);
142142
}
143143

144144
private static boolean isHttpError(int code) {

android-sdk/src/main/resources/META-INF/NOTICE

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ This product includes software licensed under the 'Apache License Version 2.0' l
1111
- okhttp (https://square.github.io/okhttp/)
1212
- OpenTelemetry Java (https://github.com/open-telemetry/opentelemetry-java)
1313
- OpenTelemetry Java Contrib (https://github.com/open-telemetry/opentelemetry-java-contrib)
14+
- OpenTelemetry Semantic Conventions Java (https://github.com/open-telemetry/semantic-conventions-java)
1415
- org.stagemonitor:stagemonitor-configuration (http://www.stagemonitor.org)
1516
- Weakly referenced lock-free data structures (https://github.com/raphw/weak-lock-free)
1617

android-test/app/src/test/java/co/elastic/apm/android/test/attributes/logs/GlobalAttributeTest.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ public void whenALogIsCreated_andThereIsWifiConnectivity_verifyItHasWifiConnecti
2424
LogRecordData log = captureLog();
2525

2626
Logs.verifyRecord(log)
27-
.hasAttribute("net.host.connection.type", "wifi");
27+
.hasAttribute("network.connection.type", "wifi");
2828
}
2929

3030
@Config(application = AppsWithConnectivity.WithCellular.class)
@@ -33,7 +33,7 @@ public void whenALogIsCreated_andThereIsCellularConnectivity_verifyItHasCellular
3333
LogRecordData log = captureLog();
3434

3535
Logs.verifyRecord(log)
36-
.hasAttribute("net.host.connection.type", "cell");
36+
.hasAttribute("network.connection.type", "cell");
3737
}
3838

3939
@Config(application = AppsWithConnectivity.WithCellularAndSubtype.class)
@@ -42,8 +42,8 @@ public void whenALogIsCreated_andThereIsCellularConnectivityWithSubtype_verifyIt
4242
LogRecordData log = captureLog();
4343

4444
Logs.verifyRecord(log)
45-
.hasAttribute("net.host.connection.type", "cell")
46-
.hasAttribute("net.host.connection.subtype", "EDGE");
45+
.hasAttribute("network.connection.type", "cell")
46+
.hasAttribute("network.connection.subtype", "EDGE");
4747
}
4848

4949
private LogRecordData captureLog() {

android-test/app/src/test/java/co/elastic/apm/android/test/attributes/traces/GlobalAttributeTest.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ public void whenASpanIsCreated_verifyItHasCarrierInfoParams() {
4040
SpanData customSpan = getSpanData();
4141

4242
Spans.verify(customSpan)
43-
.hasAttribute("net.host.carrier.name", AppWithCarrierInfo.SIM_OPERATOR_NAME)
44-
.hasAttribute("net.host.carrier.mcc", "123")
45-
.hasAttribute("net.host.carrier.mnc", "456")
46-
.hasAttribute("net.host.carrier.icc", AppWithCarrierInfo.SIM_COUNTRY_ISO);
43+
.hasAttribute("network.carrier.name", AppWithCarrierInfo.SIM_OPERATOR_NAME)
44+
.hasAttribute("network.carrier.mcc", "123")
45+
.hasAttribute("network.carrier.mnc", "456")
46+
.hasAttribute("network.carrier.icc", AppWithCarrierInfo.SIM_COUNTRY_ISO);
4747
}
4848

4949
@Config(application = AppsWithConnectivity.WithWifi.class)
@@ -52,7 +52,7 @@ public void whenASpanIsCreated_andThereIsAWifiConnection_verifyItHasWifiConnecti
5252
SpanData span = getSpanData();
5353

5454
Spans.verify(span)
55-
.hasAttribute("net.host.connection.type", "wifi");
55+
.hasAttribute("network.connection.type", "wifi");
5656
}
5757

5858
@Config(application = AppsWithConnectivity.WithCellular.class)
@@ -61,7 +61,7 @@ public void whenASpanIsCreated_andThereIsAMobileConnection_verifyItHasMobileConn
6161
SpanData span = getSpanData();
6262

6363
Spans.verify(span)
64-
.hasAttribute("net.host.connection.type", "cell");
64+
.hasAttribute("network.connection.type", "cell");
6565
}
6666

6767
@Config(application = AppsWithConnectivity.WithCellularAndSubtype.class)
@@ -70,8 +70,8 @@ public void whenASpanIsCreated_andThereIsAMobileConnectionWithSubtype_verifyItHa
7070
SpanData span = getSpanData();
7171

7272
Spans.verify(span)
73-
.hasAttribute("net.host.connection.type", "cell")
74-
.hasAttribute("net.host.connection.subtype", "EDGE");
73+
.hasAttribute("network.connection.type", "cell")
74+
.hasAttribute("network.connection.subtype", "EDGE");
7575
}
7676

7777
private SpanData getSpanData() {

0 commit comments

Comments
 (0)