Skip to content

Commit 0abac7c

Browse files
committed
add lettuce db client metrics
1 parent eb1f24c commit 0abac7c

File tree

3 files changed

+12
-10
lines changed

3 files changed

+12
-10
lines changed

instrumentation/lettuce/lettuce-5.1/library/src/main/java/io/opentelemetry/instrumentation/lettuce/v5_1/OpenTelemetryTracing.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ private static class OpenTelemetrySpan extends Tracer.Span {
196196
@Nullable private Throwable error;
197197
@Nullable private Span span;
198198
private long spanStartTime;
199-
private final AttributesBuilder attributesBuilder = Attributes.builder();
199+
private final AttributesBuilder attributesBuilder = Attributes.builder().put(DB_SYSTEM, REDIS);
200200
@Nullable private List<String> argsList;
201201
@Nullable private String argsString;
202202

@@ -243,7 +243,7 @@ private void fillEndpoint(OpenTelemetryEndpoint endpoint) {
243243
} else {
244244
spanBuilder.setAllAttributes(attributes);
245245
}
246-
attributesBuilder.putAll(attributes);
246+
this.attributesBuilder.putAll(attributes);
247247
}
248248

249249
// Added and called in 6.0+
@@ -381,8 +381,10 @@ private void finish(Span span, long startTime) {
381381
sanitizer.sanitize(name, argsList != null ? argsList : splitArgs(argsString));
382382
if (SemconvStability.emitStableDatabaseSemconv()) {
383383
span.setAttribute(DB_QUERY_TEXT, statement);
384-
Context c = metrics.onStart(Context.current(), Attributes.empty(), startTime);
385-
metrics.onEnd(c, attributesBuilder.build(), System.nanoTime());
384+
metrics.onEnd(
385+
metrics.onStart(Context.current(), Attributes.empty(), startTime),
386+
attributesBuilder.build(),
387+
System.nanoTime());
386388
}
387389
if (SemconvStability.emitOldDatabaseSemconv()) {
388390
span.setAttribute(DB_STATEMENT, statement);

instrumentation/lettuce/lettuce-5.1/testing/src/main/java/io/opentelemetry/instrumentation/lettuce/v5_1/AbstractLettuceSyncClientTest.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,6 @@
1414
import static io.opentelemetry.semconv.NetworkAttributes.NETWORK_TYPE;
1515
import static io.opentelemetry.semconv.ServerAttributes.SERVER_ADDRESS;
1616
import static io.opentelemetry.semconv.ServerAttributes.SERVER_PORT;
17-
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_COLLECTION_NAME;
18-
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_NAMESPACE;
19-
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_OPERATION_NAME;
2017
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_STATEMENT;
2118
import static io.opentelemetry.semconv.incubating.DbIncubatingAttributes.DB_SYSTEM;
2219
import static java.nio.charset.StandardCharsets.UTF_8;
@@ -144,9 +141,10 @@ void testSetCommand() {
144141
testing(),
145142
"io.opentelemetry.lettuce-5.1",
146143
DB_SYSTEM,
147-
DB_COLLECTION_NAME,
148-
DB_NAMESPACE,
149-
DB_OPERATION_NAME);
144+
SERVER_ADDRESS,
145+
SERVER_PORT,
146+
NETWORK_PEER_ADDRESS,
147+
NETWORK_PEER_PORT);
150148
}
151149

152150
@Test

testing-common/src/main/java/io/opentelemetry/instrumentation/testing/junit/db/DbClientMetricsTestUtil.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@ public static void assertDurationMetric(
1919
InstrumentationExtension testing,
2020
String instrumentationName,
2121
AttributeKey<?>... expectedKeys) {
22+
// db.system is required - see https://opentelemetry.io/docs/specs/semconv/database/database-metrics/#metric-dbclientoperationduration
23+
assertThat(expectedKeys).extracting(AttributeKey::getKey).contains("db.system");
2224
if (!emitStableDatabaseSemconv()) {
2325
return;
2426
}

0 commit comments

Comments
 (0)