Skip to content

Commit 04b3a46

Browse files
committed
Fix Couchbase stable DB span names
1 parent 91368ad commit 04b3a46

5 files changed

Lines changed: 73 additions & 18 deletions

File tree

instrumentation/couchbase/couchbase-2.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/couchbase/v2_0/CouchbaseSpanNameExtractor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
package io.opentelemetry.javaagent.instrumentation.couchbase.v2_0;
77

8+
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
9+
810
import io.opentelemetry.instrumentation.api.instrumenter.SpanNameExtractor;
911
import io.opentelemetry.javaagent.instrumentation.couchbase.common.v2_0.CouchbaseRequestInfo;
1012

@@ -17,7 +19,7 @@ class CouchbaseSpanNameExtractor implements SpanNameExtractor<CouchbaseRequestIn
1719

1820
@Override
1921
public String extract(CouchbaseRequestInfo couchbaseRequest) {
20-
if (couchbaseRequest.isMethodCall()) {
22+
if (!emitStableDatabaseSemconv() && couchbaseRequest.isMethodCall()) {
2123
return couchbaseRequest.getOperation();
2224
}
2325
return dbSpanNameExtractor.extract(couchbaseRequest);

instrumentation/couchbase/couchbase-common/testing/src/main/java/io/opentelemetry/instrumentation/couchbase/AbstractCouchbaseAsyncClientTest.java

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,10 @@ void upsert(BucketSettings bucketSettings) {
171171
equalTo(maybeStable(DB_SYSTEM), COUCHBASE),
172172
equalTo(maybeStable(DB_OPERATION), "Cluster.openBucket")),
173173
span ->
174-
span.hasName("Bucket.upsert")
174+
span.hasName(
175+
emitStableDatabaseSemconv()
176+
? "Bucket.upsert " + bucketSettings.name()
177+
: "Bucket.upsert")
175178
.hasKind(SpanKind.CLIENT)
176179
.hasParent(trace.getSpan(1))
177180
.hasAttributesSatisfyingExactly(
@@ -230,7 +233,10 @@ void upsertAndGet(BucketSettings bucketSettings) {
230233
equalTo(maybeStable(DB_SYSTEM), COUCHBASE),
231234
equalTo(maybeStable(DB_OPERATION), "Cluster.openBucket")),
232235
span ->
233-
span.hasName("Bucket.upsert")
236+
span.hasName(
237+
emitStableDatabaseSemconv()
238+
? "Bucket.upsert " + bucketSettings.name()
239+
: "Bucket.upsert")
234240
.hasKind(SpanKind.CLIENT)
235241
.hasParent(trace.getSpan(1))
236242
.hasAttributesSatisfyingExactly(
@@ -245,7 +251,10 @@ void upsertAndGet(BucketSettings bucketSettings) {
245251
satisfies(
246252
stringKey("couchbase.operation_id"), experimentalAttribute())),
247253
span ->
248-
span.hasName("Bucket.get")
254+
span.hasName(
255+
emitStableDatabaseSemconv()
256+
? "Bucket.get " + bucketSettings.name()
257+
: "Bucket.get")
249258
.hasKind(SpanKind.CLIENT)
250259
.hasParent(trace.getSpan(2))
251260
.hasAttributesSatisfyingExactly(

instrumentation/couchbase/couchbase-common/testing/src/main/java/io/opentelemetry/instrumentation/couchbase/AbstractCouchbaseClientTest.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -152,7 +152,10 @@ void upsertAndGet(BucketSettings bucketSettings) {
152152
trace.hasSpansSatisfyingExactly(
153153
span -> span.hasName("someTrace").hasKind(SpanKind.INTERNAL).hasNoParent(),
154154
span ->
155-
span.hasName("Bucket.upsert")
155+
span.hasName(
156+
emitStableDatabaseSemconv()
157+
? "Bucket.upsert " + bucketSettings.name()
158+
: "Bucket.upsert")
156159
.hasKind(SpanKind.CLIENT)
157160
.hasParent(trace.getSpan(0))
158161
.hasAttributesSatisfyingExactly(
@@ -167,7 +170,10 @@ void upsertAndGet(BucketSettings bucketSettings) {
167170
satisfies(
168171
stringKey("couchbase.operation_id"), experimentalAttribute())),
169172
span ->
170-
span.hasName("Bucket.get")
173+
span.hasName(
174+
emitStableDatabaseSemconv()
175+
? "Bucket.get " + bucketSettings.name()
176+
: "Bucket.get")
171177
.hasKind(SpanKind.CLIENT)
172178
.hasParent(trace.getSpan(0))
173179
.hasAttributesSatisfyingExactly(

instrumentation/couchbase/couchbase-common/testing/src/main/java/io/opentelemetry/instrumentation/couchbase/springdata/AbstractCouchbaseSpringRepositoryTest.java

Lines changed: 29 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package io.opentelemetry.instrumentation.couchbase.springdata;
77

88
import static io.opentelemetry.api.common.AttributeKey.stringKey;
9+
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
910
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
1011
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
1112
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
@@ -125,7 +126,10 @@ void save() {
125126
trace ->
126127
trace.hasSpansSatisfyingExactly(
127128
span ->
128-
span.hasName("Bucket.upsert")
129+
span.hasName(
130+
emitStableDatabaseSemconv()
131+
? "Bucket.upsert " + bucketCouchbase.name()
132+
: "Bucket.upsert")
129133
.hasKind(SpanKind.CLIENT)
130134
.hasNoParent()
131135
.hasAttributesSatisfyingExactly(
@@ -160,7 +164,10 @@ void saveAndRetrieve() {
160164
trace.hasSpansSatisfyingExactly(
161165
span -> span.hasName("someTrace").hasKind(SpanKind.INTERNAL).hasNoParent(),
162166
span ->
163-
span.hasName("Bucket.upsert")
167+
span.hasName(
168+
emitStableDatabaseSemconv()
169+
? "Bucket.upsert " + bucketCouchbase.name()
170+
: "Bucket.upsert")
164171
.hasKind(SpanKind.CLIENT)
165172
.hasParent(trace.getSpan(0))
166173
.hasAttributesSatisfyingExactly(
@@ -175,7 +182,10 @@ void saveAndRetrieve() {
175182
satisfies(
176183
stringKey("couchbase.operation_id"), experimentalAttribute())),
177184
span ->
178-
span.hasName("Bucket.get")
185+
span.hasName(
186+
emitStableDatabaseSemconv()
187+
? "Bucket.get " + bucketCouchbase.name()
188+
: "Bucket.get")
179189
.hasKind(SpanKind.CLIENT)
180190
.hasParent(trace.getSpan(0))
181191
.hasAttributesSatisfyingExactly(
@@ -208,7 +218,10 @@ void saveAndUpdate() {
208218
trace.hasSpansSatisfyingExactly(
209219
span -> span.hasName("someTrace").hasKind(SpanKind.INTERNAL).hasNoParent(),
210220
span ->
211-
span.hasName("Bucket.upsert")
221+
span.hasName(
222+
emitStableDatabaseSemconv()
223+
? "Bucket.upsert " + bucketCouchbase.name()
224+
: "Bucket.upsert")
212225
.hasKind(SpanKind.CLIENT)
213226
.hasParent(trace.getSpan(0))
214227
.hasAttributesSatisfyingExactly(
@@ -223,7 +236,10 @@ void saveAndUpdate() {
223236
satisfies(
224237
stringKey("couchbase.operation_id"), experimentalAttribute())),
225238
span ->
226-
span.hasName("Bucket.upsert")
239+
span.hasName(
240+
emitStableDatabaseSemconv()
241+
? "Bucket.upsert " + bucketCouchbase.name()
242+
: "Bucket.upsert")
227243
.hasKind(SpanKind.CLIENT)
228244
.hasParent(trace.getSpan(0))
229245
.hasAttributesSatisfyingExactly(
@@ -258,7 +274,10 @@ void saveAndDelete() {
258274
trace.hasSpansSatisfyingExactly(
259275
span -> span.hasName("someTrace").hasKind(SpanKind.INTERNAL).hasNoParent(),
260276
span ->
261-
span.hasName("Bucket.upsert")
277+
span.hasName(
278+
emitStableDatabaseSemconv()
279+
? "Bucket.upsert " + bucketCouchbase.name()
280+
: "Bucket.upsert")
262281
.hasKind(SpanKind.CLIENT)
263282
.hasParent(trace.getSpan(0))
264283
.hasAttributesSatisfyingExactly(
@@ -273,7 +292,10 @@ void saveAndDelete() {
273292
satisfies(
274293
stringKey("couchbase.operation_id"), experimentalAttribute())),
275294
span ->
276-
span.hasName("Bucket.remove")
295+
span.hasName(
296+
emitStableDatabaseSemconv()
297+
? "Bucket.remove " + bucketCouchbase.name()
298+
: "Bucket.remove")
277299
.hasKind(SpanKind.CLIENT)
278300
.hasParent(trace.getSpan(0))
279301
.hasAttributesSatisfyingExactly(

instrumentation/couchbase/couchbase-common/testing/src/main/java/io/opentelemetry/instrumentation/couchbase/springdata/AbstractCouchbaseSpringTemplateTest.java

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
package io.opentelemetry.instrumentation.couchbase.springdata;
77

88
import static io.opentelemetry.api.common.AttributeKey.stringKey;
9+
import static io.opentelemetry.instrumentation.api.internal.SemconvStability.emitStableDatabaseSemconv;
910
import static io.opentelemetry.instrumentation.testing.junit.db.SemconvStabilityUtil.maybeStable;
1011
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.equalTo;
1112
import static io.opentelemetry.sdk.testing.assertj.OpenTelemetryAssertions.satisfies;
@@ -106,7 +107,10 @@ void write(CouchbaseTemplate template) {
106107
trace.hasSpansSatisfyingExactly(
107108
span -> span.hasName("someTrace").hasKind(SpanKind.INTERNAL).hasNoParent(),
108109
span ->
109-
span.hasName("Bucket.upsert")
110+
span.hasName(
111+
emitStableDatabaseSemconv()
112+
? "Bucket.upsert " + template.getCouchbaseBucket().name()
113+
: "Bucket.upsert")
110114
.hasKind(SpanKind.CLIENT)
111115
.hasParent(trace.getSpan(0))
112116
.hasAttributesSatisfyingExactly(
@@ -121,7 +125,10 @@ void write(CouchbaseTemplate template) {
121125
satisfies(
122126
stringKey("couchbase.operation_id"), experimentalAttribute())),
123127
span ->
124-
span.hasName("Bucket.get")
128+
span.hasName(
129+
emitStableDatabaseSemconv()
130+
? "Bucket.get " + template.getCouchbaseBucket().name()
131+
: "Bucket.get")
125132
.hasKind(SpanKind.CLIENT)
126133
.hasParent(trace.getSpan(0))
127134
.hasAttributesSatisfyingExactly(
@@ -153,7 +160,10 @@ void remove(CouchbaseTemplate template) {
153160
trace.hasSpansSatisfyingExactly(
154161
span -> span.hasName("someTrace").hasKind(SpanKind.INTERNAL).hasNoParent(),
155162
span ->
156-
span.hasName("Bucket.upsert")
163+
span.hasName(
164+
emitStableDatabaseSemconv()
165+
? "Bucket.upsert " + template.getCouchbaseBucket().name()
166+
: "Bucket.upsert")
157167
.hasKind(SpanKind.CLIENT)
158168
.hasParent(trace.getSpan(0))
159169
.hasAttributesSatisfyingExactly(
@@ -168,7 +178,10 @@ void remove(CouchbaseTemplate template) {
168178
satisfies(
169179
stringKey("couchbase.operation_id"), experimentalAttribute())),
170180
span ->
171-
span.hasName("Bucket.remove")
181+
span.hasName(
182+
emitStableDatabaseSemconv()
183+
? "Bucket.remove " + template.getCouchbaseBucket().name()
184+
: "Bucket.remove")
172185
.hasKind(SpanKind.CLIENT)
173186
.hasParent(trace.getSpan(0))
174187
.hasAttributesSatisfyingExactly(
@@ -192,7 +205,10 @@ void remove(CouchbaseTemplate template) {
192205
trace ->
193206
trace.hasSpansSatisfyingExactly(
194207
span ->
195-
span.hasName("Bucket.get")
208+
span.hasName(
209+
emitStableDatabaseSemconv()
210+
? "Bucket.get " + template.getCouchbaseBucket().name()
211+
: "Bucket.get")
196212
.hasKind(SpanKind.CLIENT)
197213
.hasNoParent()
198214
.hasAttributesSatisfyingExactly(

0 commit comments

Comments
 (0)