Skip to content

Commit d09a0ae

Browse files
committed
only for stable semconv
1 parent dc70133 commit d09a0ae

File tree

7 files changed

+85
-43
lines changed

7 files changed

+85
-43
lines changed

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

+7-5
Original file line numberDiff line numberDiff line change
@@ -64,11 +64,13 @@ public final void onEnd(
6464
REQUEST request,
6565
@Nullable RESPONSE response,
6666
@Nullable Throwable error) {
67-
if (error != null) {
68-
internalSet(attributes, ERROR_TYPE, error.getClass().getName());
69-
}
70-
if (error != null || response != null) {
71-
internalSet(attributes, DB_RESPONSE_STATUS_CODE, getter.getResponseStatus(response, error));
67+
if (SemconvStability.emitStableDatabaseSemconv()) {
68+
if (error != null) {
69+
internalSet(attributes, ERROR_TYPE, error.getClass().getName());
70+
}
71+
if (error != null || response != null) {
72+
internalSet(attributes, DB_RESPONSE_STATUS_CODE, getter.getResponseStatus(response, error));
73+
}
7274
}
7375
}
7476

instrumentation/clickhouse-client-0.5/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/clickhouse/ClickHouseClientTest.java

+5-2
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.google.common.collect.ImmutableMap;
3131
import io.opentelemetry.api.common.Attributes;
3232
import io.opentelemetry.api.trace.SpanKind;
33+
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
3334
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
3435
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
3536
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
@@ -201,8 +202,10 @@ void testExecuteAndWaitThrowsException() {
201202

202203
List<AttributeAssertion> assertions =
203204
new ArrayList<>(attributeAssertions("select * from non_existent_table", "SELECT"));
204-
assertions.add(equalTo(DB_RESPONSE_STATUS_CODE, "60"));
205-
assertions.add(equalTo(ERROR_TYPE, "com.clickhouse.client.ClickHouseException"));
205+
if (SemconvStability.emitStableDatabaseSemconv()) {
206+
assertions.add(equalTo(DB_RESPONSE_STATUS_CODE, "60"));
207+
assertions.add(equalTo(ERROR_TYPE, "com.clickhouse.client.ClickHouseException"));
208+
}
206209
testing.waitAndAssertTraces(
207210
trace ->
208211
trace.hasSpansSatisfyingExactly(

instrumentation/elasticsearch/elasticsearch-transport-5.3/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/v5_3/springdata/Elasticsearch53SpringTemplateTest.java

+19-9
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,17 @@
1818
import static org.elasticsearch.cluster.ClusterName.CLUSTER_NAME_SETTING;
1919

2020
import io.opentelemetry.api.trace.SpanKind;
21+
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
2122
import io.opentelemetry.instrumentation.testing.internal.AutoCleanupExtension;
2223
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
2324
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
25+
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
2426
import io.opentelemetry.sdk.trace.data.StatusData;
2527
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
2628
import java.io.File;
2729
import java.time.Duration;
2830
import java.util.ArrayList;
31+
import java.util.Arrays;
2932
import java.util.Collections;
3033
import java.util.HashMap;
3134
import java.util.List;
@@ -163,6 +166,21 @@ void elasticsearchError() {
163166
assertThatThrownBy(() -> template.refresh(indexName))
164167
.isInstanceOf(IndexNotFoundException.class);
165168

169+
List<AttributeAssertion> assertions =
170+
new ArrayList<>(
171+
Arrays.asList(
172+
equalTo(
173+
maybeStable(DB_SYSTEM),
174+
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
175+
equalTo(maybeStable(DB_OPERATION), "RefreshAction"),
176+
equalTo(stringKey("elasticsearch.action"), "RefreshAction"),
177+
equalTo(stringKey("elasticsearch.request"), "RefreshRequest"),
178+
equalTo(stringKey("elasticsearch.request.indices"), indexName)));
179+
180+
if (SemconvStability.emitStableDatabaseSemconv()) {
181+
assertions.add(equalTo(ERROR_TYPE, "org.elasticsearch.index.IndexNotFoundException"));
182+
}
183+
166184
IndexNotFoundException expectedException = new IndexNotFoundException("no such index");
167185
testing.waitAndAssertTraces(
168186
trace ->
@@ -173,15 +191,7 @@ void elasticsearchError() {
173191
.hasNoParent()
174192
.hasStatus(StatusData.error())
175193
.hasException(expectedException)
176-
.hasAttributesSatisfyingExactly(
177-
equalTo(
178-
maybeStable(DB_SYSTEM),
179-
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
180-
equalTo(maybeStable(DB_OPERATION), "RefreshAction"),
181-
equalTo(ERROR_TYPE, "org.elasticsearch.index.IndexNotFoundException"),
182-
equalTo(stringKey("elasticsearch.action"), "RefreshAction"),
183-
equalTo(stringKey("elasticsearch.request"), "RefreshRequest"),
184-
equalTo(stringKey("elasticsearch.request.indices"), indexName))));
194+
.hasAttributesSatisfyingExactly(assertions)));
185195
}
186196

187197
@Test

instrumentation/elasticsearch/elasticsearch-transport-common/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/AbstractElasticsearchNodeClientTest.java

+17-9
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
import static org.junit.jupiter.api.Named.named;
1818

1919
import io.opentelemetry.api.trace.SpanKind;
20+
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
2021
import io.opentelemetry.instrumentation.testing.util.ThrowingSupplier;
2122
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
2223
import io.opentelemetry.sdk.trace.data.StatusData;
@@ -104,6 +105,21 @@ void elasticsearchError(Runnable action) {
104105
.isInstanceOf(IndexNotFoundException.class)
105106
.hasMessage(expectedException.getMessage());
106107

108+
List<AttributeAssertion> assertions =
109+
new ArrayList<>(
110+
Arrays.asList(
111+
equalTo(
112+
maybeStable(DB_SYSTEM),
113+
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
114+
equalTo(maybeStable(DB_OPERATION), "GetAction"),
115+
equalTo(ELASTICSEARCH_ACTION, "GetAction"),
116+
equalTo(ELASTICSEARCH_REQUEST, "GetRequest"),
117+
equalTo(ELASTICSEARCH_REQUEST_INDICES, "invalid-index")));
118+
119+
if (SemconvStability.emitStableDatabaseSemconv()) {
120+
assertions.add(equalTo(ERROR_TYPE, "org.elasticsearch.index.IndexNotFoundException"));
121+
}
122+
107123
testing.waitAndAssertTraces(
108124
trace ->
109125
trace.hasSpansSatisfyingExactly(
@@ -119,15 +135,7 @@ void elasticsearchError(Runnable action) {
119135
.hasParent(trace.getSpan(0))
120136
.hasStatus(StatusData.error())
121137
.hasException(expectedException)
122-
.hasAttributesSatisfyingExactly(
123-
equalTo(
124-
maybeStable(DB_SYSTEM),
125-
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
126-
equalTo(maybeStable(DB_OPERATION), "GetAction"),
127-
equalTo(ERROR_TYPE, "org.elasticsearch.index.IndexNotFoundException"),
128-
equalTo(ELASTICSEARCH_ACTION, "GetAction"),
129-
equalTo(ELASTICSEARCH_REQUEST, "GetRequest"),
130-
equalTo(ELASTICSEARCH_REQUEST_INDICES, "invalid-index")),
138+
.hasAttributesSatisfyingExactly(assertions),
131139
span ->
132140
span.hasName("callback")
133141
.hasKind(SpanKind.INTERNAL)

instrumentation/elasticsearch/elasticsearch-transport-common/testing/src/main/java/io/opentelemetry/javaagent/instrumentation/elasticsearch/transport/AbstractElasticsearchTransportClientTest.java

+17-10
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import static org.junit.jupiter.api.Named.named;
2424

2525
import io.opentelemetry.api.trace.SpanKind;
26+
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
2627
import io.opentelemetry.instrumentation.testing.util.ThrowingSupplier;
2728
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
2829
import io.opentelemetry.sdk.trace.data.StatusData;
@@ -119,6 +120,21 @@ void elasticsearchError(Runnable action) {
119120
.isInstanceOf(IndexNotFoundException.class)
120121
.hasMessage(expectedException.getMessage());
121122

123+
List<AttributeAssertion> assertions =
124+
new ArrayList<>(
125+
Arrays.asList(
126+
equalTo(
127+
maybeStable(DB_SYSTEM),
128+
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
129+
equalTo(maybeStable(DB_OPERATION), "GetAction"),
130+
equalTo(ELASTICSEARCH_ACTION, "GetAction"),
131+
equalTo(ELASTICSEARCH_REQUEST, "GetRequest"),
132+
equalTo(ELASTICSEARCH_REQUEST_INDICES, "invalid-index")));
133+
134+
if (SemconvStability.emitStableDatabaseSemconv()) {
135+
assertions.add(equalTo(ERROR_TYPE, "org.elasticsearch.transport.RemoteTransportException"));
136+
}
137+
122138
testing.waitAndAssertTraces(
123139
trace ->
124140
trace.hasSpansSatisfyingExactly(
@@ -141,16 +157,7 @@ void elasticsearchError(Runnable action) {
141157
equalTo(
142158
EXCEPTION_TYPE,
143159
RemoteTransportException.class.getName())))
144-
.hasAttributesSatisfyingExactly(
145-
equalTo(
146-
maybeStable(DB_SYSTEM),
147-
DbIncubatingAttributes.DbSystemIncubatingValues.ELASTICSEARCH),
148-
equalTo(maybeStable(DB_OPERATION), "GetAction"),
149-
equalTo(
150-
ERROR_TYPE, "org.elasticsearch.transport.RemoteTransportException"),
151-
equalTo(ELASTICSEARCH_ACTION, "GetAction"),
152-
equalTo(ELASTICSEARCH_REQUEST, "GetRequest"),
153-
equalTo(ELASTICSEARCH_REQUEST_INDICES, "invalid-index")),
160+
.hasAttributesSatisfyingExactly(assertions),
154161
span ->
155162
span.hasName("callback")
156163
.hasKind(SpanKind.INTERNAL)

instrumentation/jdbc/library/src/test/java/io/opentelemetry/instrumentation/jdbc/datasource/JdbcTelemetryTest.java

+3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM_NAME;
2323
import static org.assertj.core.api.Assertions.assertThat;
2424
import static org.assertj.core.api.Assertions.assertThatCode;
25+
import static org.junit.jupiter.api.Assumptions.assumeTrue;
2526
import static org.mockito.Mockito.doThrow;
2627
import static org.mockito.Mockito.spy;
2728
import static org.mockito.Mockito.when;
@@ -75,6 +76,8 @@ void buildWithDefaults() throws SQLException {
7576

7677
@Test
7778
void error() throws SQLException {
79+
assumeTrue(SemconvStability.emitStableDatabaseSemconv());
80+
7881
JdbcTelemetry telemetry = JdbcTelemetry.builder(testing.getOpenTelemetry()).build();
7982
DataSource source = spy(new TestDataSource());
8083
Connection connection = spy(source.getConnection());

instrumentation/vertx/vertx-sql-client-4.0/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/vertx/v4_0/sql/VertxSqlClientTest.java

+17-8
Original file line numberDiff line numberDiff line change
@@ -23,9 +23,11 @@
2323
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_USER;
2424

2525
import io.opentelemetry.api.trace.SpanKind;
26+
import io.opentelemetry.instrumentation.api.internal.SemconvStability;
2627
import io.opentelemetry.instrumentation.testing.internal.AutoCleanupExtension;
2728
import io.opentelemetry.instrumentation.testing.junit.AgentInstrumentationExtension;
2829
import io.opentelemetry.instrumentation.testing.junit.InstrumentationExtension;
30+
import io.opentelemetry.sdk.testing.assertj.AttributeAssertion;
2931
import io.opentelemetry.sdk.testing.assertj.TraceAssert;
3032
import io.opentelemetry.sdk.trace.data.StatusData;
3133
import io.vertx.core.Vertx;
@@ -176,6 +178,20 @@ void testInvalidQuery() throws Exception {
176178

177179
latch.await(30, TimeUnit.SECONDS);
178180

181+
List<AttributeAssertion> assertions =
182+
new ArrayList<>(
183+
Arrays.asList(
184+
equalTo(maybeStable(DB_NAME), DB),
185+
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : USER_DB),
186+
equalTo(maybeStable(DB_STATEMENT), "invalid"),
187+
equalTo(SERVER_ADDRESS, host),
188+
equalTo(SERVER_PORT, port)));
189+
190+
if (SemconvStability.emitStableDatabaseSemconv()) {
191+
assertions.add(equalTo(DB_RESPONSE_STATUS_CODE, "42601"));
192+
assertions.add(equalTo(ERROR_TYPE, "io.vertx.pgclient.PgException"));
193+
}
194+
179195
testing.waitAndAssertTraces(
180196
trace ->
181197
trace.hasSpansSatisfyingExactly(
@@ -197,14 +213,7 @@ void testInvalidQuery() throws Exception {
197213
satisfies(
198214
EXCEPTION_STACKTRACE,
199215
val -> val.isInstanceOf(String.class))))
200-
.hasAttributesSatisfyingExactly(
201-
equalTo(maybeStable(DB_NAME), DB),
202-
equalTo(DB_USER, emitStableDatabaseSemconv() ? null : USER_DB),
203-
equalTo(maybeStable(DB_STATEMENT), "invalid"),
204-
equalTo(DB_RESPONSE_STATUS_CODE, "42601"),
205-
equalTo(ERROR_TYPE, "io.vertx.pgclient.PgException"),
206-
equalTo(SERVER_ADDRESS, host),
207-
equalTo(SERVER_PORT, port)),
216+
.hasAttributesSatisfyingExactly(assertions),
208217
span ->
209218
span.hasName("callback")
210219
.hasKind(SpanKind.INTERNAL)

0 commit comments

Comments
 (0)