Skip to content

Commit 3a9972b

Browse files
authored
Remove incubating semconv dependency from library instrumentation (#11324)
1 parent c78277e commit 3a9972b

File tree

71 files changed

+595
-297
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

71 files changed

+595
-297
lines changed

conventions/src/main/kotlin/otel.javaagent-instrumentation.gradle.kts

+4
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,7 @@ configurations {
2222
extendsFrom(bootstrap)
2323
}
2424
}
25+
26+
dependencies {
27+
api("io.opentelemetry.semconv:opentelemetry-semconv-incubating")
28+
}

instrumentation-api-incubator/build.gradle.kts

-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@ group = "io.opentelemetry.instrumentation"
1212

1313
dependencies {
1414
api("io.opentelemetry.semconv:opentelemetry-semconv")
15-
api("io.opentelemetry.semconv:opentelemetry-semconv-incubating")
1615
api(project(":instrumentation-api"))
1716
implementation("io.opentelemetry:opentelemetry-api-incubator")
1817

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/code/CodeAttributesExtractor.java

+8-3
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet;
99

10+
import io.opentelemetry.api.common.AttributeKey;
1011
import io.opentelemetry.api.common.AttributesBuilder;
1112
import io.opentelemetry.context.Context;
1213
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
13-
import io.opentelemetry.semconv.incubating.CodeIncubatingAttributes;
1414
import javax.annotation.Nullable;
1515

1616
/**
@@ -21,6 +21,11 @@
2121
public final class CodeAttributesExtractor<REQUEST, RESPONSE>
2222
implements AttributesExtractor<REQUEST, RESPONSE> {
2323

24+
// copied from CodeIncubatingAttributes
25+
private static final AttributeKey<String> CODE_FUNCTION = AttributeKey.stringKey("code.function");
26+
private static final AttributeKey<String> CODE_NAMESPACE =
27+
AttributeKey.stringKey("code.namespace");
28+
2429
/** Creates the code attributes extractor. */
2530
public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
2631
CodeAttributesGetter<REQUEST> getter) {
@@ -37,9 +42,9 @@ private CodeAttributesExtractor(CodeAttributesGetter<REQUEST> getter) {
3742
public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
3843
Class<?> cls = getter.getCodeClass(request);
3944
if (cls != null) {
40-
internalSet(attributes, CodeIncubatingAttributes.CODE_NAMESPACE, cls.getName());
45+
internalSet(attributes, CODE_NAMESPACE, cls.getName());
4146
}
42-
internalSet(attributes, CodeIncubatingAttributes.CODE_FUNCTION, getter.getMethodName(request));
47+
internalSet(attributes, CODE_FUNCTION, getter.getMethodName(request));
4348
}
4449

4550
@Override

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientAttributesExtractor.java

+7-3
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,10 @@
77

88
import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet;
99

10+
import io.opentelemetry.api.common.AttributeKey;
1011
import io.opentelemetry.api.common.AttributesBuilder;
1112
import io.opentelemetry.context.Context;
1213
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
13-
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
1414

1515
/**
1616
* Extractor of <a
@@ -24,6 +24,10 @@ public final class DbClientAttributesExtractor<REQUEST, RESPONSE>
2424
extends DbClientCommonAttributesExtractor<
2525
REQUEST, RESPONSE, DbClientAttributesGetter<REQUEST>> {
2626

27+
// copied from DbIncubatingAttributes
28+
private static final AttributeKey<String> DB_STATEMENT = AttributeKey.stringKey("db.statement");
29+
private static final AttributeKey<String> DB_OPERATION = AttributeKey.stringKey("db.operation");
30+
2731
/** Creates the database client attributes extractor with default configuration. */
2832
public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
2933
DbClientAttributesGetter<REQUEST> getter) {
@@ -38,7 +42,7 @@ public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
3842
public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
3943
super.onStart(attributes, parentContext, request);
4044

41-
internalSet(attributes, DbIncubatingAttributes.DB_STATEMENT, getter.getStatement(request));
42-
internalSet(attributes, DbIncubatingAttributes.DB_OPERATION, getter.getOperation(request));
45+
internalSet(attributes, DB_STATEMENT, getter.getStatement(request));
46+
internalSet(attributes, DB_OPERATION, getter.getOperation(request));
4347
}
4448
}

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/DbClientCommonAttributesExtractor.java

+9-4
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,23 @@
77

88
import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet;
99

10+
import io.opentelemetry.api.common.AttributeKey;
1011
import io.opentelemetry.api.common.AttributesBuilder;
1112
import io.opentelemetry.context.Context;
1213
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
1314
import io.opentelemetry.instrumentation.api.internal.SpanKey;
1415
import io.opentelemetry.instrumentation.api.internal.SpanKeyProvider;
15-
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
1616
import javax.annotation.Nullable;
1717

1818
abstract class DbClientCommonAttributesExtractor<
1919
REQUEST, RESPONSE, GETTER extends DbClientCommonAttributesGetter<REQUEST>>
2020
implements AttributesExtractor<REQUEST, RESPONSE>, SpanKeyProvider {
2121

22+
// copied from DbIncubatingAttributes
23+
private static final AttributeKey<String> DB_NAME = AttributeKey.stringKey("db.name");
24+
private static final AttributeKey<String> DB_SYSTEM = AttributeKey.stringKey("db.system");
25+
private static final AttributeKey<String> DB_USER = AttributeKey.stringKey("db.user");
26+
2227
final GETTER getter;
2328

2429
DbClientCommonAttributesExtractor(GETTER getter) {
@@ -27,9 +32,9 @@ abstract class DbClientCommonAttributesExtractor<
2732

2833
@Override
2934
public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST request) {
30-
internalSet(attributes, DbIncubatingAttributes.DB_SYSTEM, getter.getSystem(request));
31-
internalSet(attributes, DbIncubatingAttributes.DB_USER, getter.getUser(request));
32-
internalSet(attributes, DbIncubatingAttributes.DB_NAME, getter.getName(request));
35+
internalSet(attributes, DB_SYSTEM, getter.getSystem(request));
36+
internalSet(attributes, DB_USER, getter.getUser(request));
37+
internalSet(attributes, DB_NAME, getter.getName(request));
3338
}
3439

3540
@Override

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractor.java

+9-7
Original file line numberDiff line numberDiff line change
@@ -11,22 +11,25 @@
1111
import io.opentelemetry.api.common.AttributesBuilder;
1212
import io.opentelemetry.context.Context;
1313
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
14-
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
1514

1615
/**
1716
* Extractor of <a
1817
* href="https://github.com/open-telemetry/semantic-conventions/blob/main/docs/database/database-spans.md">database
1918
* attributes</a>. This class is designed with SQL (or SQL-like) database clients in mind.
2019
*
2120
* <p>It sets the same set of attributes as {@link DbClientAttributesExtractor} plus an additional
22-
* <code>{@link DbIncubatingAttributes#DB_SQL_TABLE}</code> attribute. The raw SQL statements
23-
* returned by the {@link SqlClientAttributesGetter#getRawStatement(Object)} method are sanitized
24-
* before use, all statement parameters are removed.
21+
* <code>db.sql.table</code> attribute. The raw SQL statements returned by the {@link
22+
* SqlClientAttributesGetter#getRawStatement(Object)} method are sanitized before use, all statement
23+
* parameters are removed.
2524
*/
2625
public final class SqlClientAttributesExtractor<REQUEST, RESPONSE>
2726
extends DbClientCommonAttributesExtractor<
2827
REQUEST, RESPONSE, SqlClientAttributesGetter<REQUEST>> {
2928

29+
// copied from DbIncubatingAttributes
30+
private static final AttributeKey<String> DB_OPERATION = AttributeKey.stringKey("db.operation");
31+
private static final AttributeKey<String> DB_STATEMENT = AttributeKey.stringKey("db.statement");
32+
3033
/** Creates the SQL client attributes extractor with default configuration. */
3134
public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
3235
SqlClientAttributesGetter<REQUEST> getter) {
@@ -62,9 +65,8 @@ public void onStart(AttributesBuilder attributes, Context parentContext, REQUEST
6265

6366
SqlStatementInfo sanitizedStatement = sanitizer.sanitize(getter.getRawStatement(request));
6467
String operation = sanitizedStatement.getOperation();
65-
internalSet(
66-
attributes, DbIncubatingAttributes.DB_STATEMENT, sanitizedStatement.getFullStatement());
67-
internalSet(attributes, DbIncubatingAttributes.DB_OPERATION, operation);
68+
internalSet(attributes, DB_STATEMENT, sanitizedStatement.getFullStatement());
69+
internalSet(attributes, DB_OPERATION, operation);
6870
if (!SQL_CALL.equals(operation)) {
6971
internalSet(attributes, dbTableAttribute, sanitizedStatement.getMainIdentifier());
7072
}

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/db/SqlClientAttributesExtractorBuilder.java

+5-3
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,15 @@
1010
import com.google.errorprone.annotations.CanIgnoreReturnValue;
1111
import io.opentelemetry.api.common.AttributeKey;
1212
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
13-
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
1413

1514
/** A builder of {@link SqlClientAttributesExtractor}. */
1615
public final class SqlClientAttributesExtractorBuilder<REQUEST, RESPONSE> {
1716

17+
// copied from DbIncubatingAttributes
18+
private static final AttributeKey<String> DB_SQL_TABLE = AttributeKey.stringKey("db.sql.table");
19+
1820
final SqlClientAttributesGetter<REQUEST> getter;
19-
AttributeKey<String> dbTableAttribute = DbIncubatingAttributes.DB_SQL_TABLE;
21+
AttributeKey<String> dbTableAttribute = DB_SQL_TABLE;
2022
boolean statementSanitizationEnabled = true;
2123

2224
SqlClientAttributesExtractorBuilder(SqlClientAttributesGetter<REQUEST> getter) {
@@ -26,7 +28,7 @@ public final class SqlClientAttributesExtractorBuilder<REQUEST, RESPONSE> {
2628
/**
2729
* Configures the extractor to set the table value extracted by the {@link
2830
* SqlClientAttributesExtractor} under the {@code dbTableAttribute} key. By default, the <code>
29-
* {@link DbIncubatingAttributes#DB_SQL_TABLE}</code> attribute is used.
31+
* db.sql.table</code> attribute is used.
3032
*
3133
* @param dbTableAttribute The {@link AttributeKey} under which the table extracted by the {@link
3234
* SqlClientAttributesExtractor} will be stored.

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/http/HttpClientPeerServiceAttributesExtractor.java

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

66
package io.opentelemetry.instrumentation.api.incubator.semconv.http;
77

8+
import io.opentelemetry.api.common.AttributeKey;
89
import io.opentelemetry.api.common.AttributesBuilder;
910
import io.opentelemetry.context.Context;
1011
import io.opentelemetry.instrumentation.api.incubator.semconv.net.PeerServiceResolver;
1112
import io.opentelemetry.instrumentation.api.incubator.semconv.net.internal.UrlParser;
1213
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
1314
import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesGetter;
14-
import io.opentelemetry.semconv.incubating.PeerIncubatingAttributes;
1515
import java.util.function.Supplier;
1616
import javax.annotation.Nullable;
1717

@@ -23,6 +23,9 @@
2323
public final class HttpClientPeerServiceAttributesExtractor<REQUEST, RESPONSE>
2424
implements AttributesExtractor<REQUEST, RESPONSE> {
2525

26+
// copied from PeerIncubatingAttributes
27+
private static final AttributeKey<String> PEER_SERVICE = AttributeKey.stringKey("peer.service");
28+
2629
private final HttpClientAttributesGetter<REQUEST, RESPONSE> attributesGetter;
2730
private final PeerServiceResolver peerServiceResolver;
2831

@@ -67,7 +70,7 @@ public void onEnd(
6770
Supplier<String> pathSupplier = () -> getUrlPath(attributesGetter, request);
6871
String peerService = mapToPeerService(serverAddress, serverPort, pathSupplier);
6972
if (peerService != null) {
70-
attributes.put(PeerIncubatingAttributes.PEER_SERVICE, peerService);
73+
attributes.put(PEER_SERVICE, peerService);
7174
}
7275
}
7376

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/http/HttpExperimentalAttributesExtractor.java

+9-3
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,25 @@
77

88
import static io.opentelemetry.instrumentation.api.internal.AttributesExtractorUtil.internalSet;
99

10+
import io.opentelemetry.api.common.AttributeKey;
1011
import io.opentelemetry.api.common.AttributesBuilder;
1112
import io.opentelemetry.context.Context;
1213
import io.opentelemetry.instrumentation.api.instrumenter.AttributesExtractor;
1314
import io.opentelemetry.instrumentation.api.semconv.http.HttpClientAttributesGetter;
1415
import io.opentelemetry.instrumentation.api.semconv.http.HttpCommonAttributesGetter;
1516
import io.opentelemetry.instrumentation.api.semconv.http.HttpServerAttributesGetter;
16-
import io.opentelemetry.semconv.incubating.HttpIncubatingAttributes;
1717
import java.util.List;
1818
import javax.annotation.Nullable;
1919

2020
public final class HttpExperimentalAttributesExtractor<REQUEST, RESPONSE>
2121
implements AttributesExtractor<REQUEST, RESPONSE> {
2222

23+
// copied from HttpIncubatingAttributes
24+
static final AttributeKey<Long> HTTP_REQUEST_BODY_SIZE =
25+
AttributeKey.longKey("http.request.body.size");
26+
static final AttributeKey<Long> HTTP_RESPONSE_BODY_SIZE =
27+
AttributeKey.longKey("http.response.body.size");
28+
2329
public static <REQUEST, RESPONSE> AttributesExtractor<REQUEST, RESPONSE> create(
2430
HttpClientAttributesGetter<REQUEST, RESPONSE> getter) {
2531
return new HttpExperimentalAttributesExtractor<>(getter);
@@ -49,11 +55,11 @@ public void onEnd(
4955
@Nullable Throwable error) {
5056

5157
Long requestBodySize = requestBodySize(request);
52-
internalSet(attributes, HttpIncubatingAttributes.HTTP_REQUEST_BODY_SIZE, requestBodySize);
58+
internalSet(attributes, HTTP_REQUEST_BODY_SIZE, requestBodySize);
5359

5460
if (response != null) {
5561
Long responseBodySize = responseBodySize(request, response);
56-
internalSet(attributes, HttpIncubatingAttributes.HTTP_RESPONSE_BODY_SIZE, responseBodySize);
62+
internalSet(attributes, HTTP_RESPONSE_BODY_SIZE, responseBodySize);
5763
}
5864
}
5965

instrumentation-api-incubator/src/main/java/io/opentelemetry/instrumentation/api/incubator/semconv/http/HttpMessageBodySizeUtil.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,19 @@
77

88
import io.opentelemetry.api.common.AttributeKey;
99
import io.opentelemetry.api.common.Attributes;
10-
import io.opentelemetry.semconv.incubating.HttpIncubatingAttributes;
1110
import javax.annotation.Nullable;
1211

1312
final class HttpMessageBodySizeUtil {
1413

1514
@Nullable
1615
static Long getHttpRequestBodySize(Attributes... attributesList) {
17-
return getAttribute(HttpIncubatingAttributes.HTTP_REQUEST_BODY_SIZE, attributesList);
16+
return getAttribute(HttpExperimentalAttributesExtractor.HTTP_REQUEST_BODY_SIZE, attributesList);
1817
}
1918

2019
@Nullable
2120
static Long getHttpResponseBodySize(Attributes... attributesList) {
22-
return getAttribute(HttpIncubatingAttributes.HTTP_RESPONSE_BODY_SIZE, attributesList);
21+
return getAttribute(
22+
HttpExperimentalAttributesExtractor.HTTP_RESPONSE_BODY_SIZE, attributesList);
2323
}
2424

2525
@Nullable

0 commit comments

Comments
 (0)