Skip to content

Commit

Permalink
error.type and db.response.status_code for jdbc
Browse files Browse the repository at this point in the history
  • Loading branch information
zeitlinger committed Feb 17, 2025
1 parent 01c5504 commit d1b9596
Show file tree
Hide file tree
Showing 9 changed files with 46 additions and 8 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,14 @@

import static java.util.Collections.singleton;

import com.datastax.driver.core.ExecutionInfo;
import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.util.Collection;
import javax.annotation.Nullable;

final class CassandraSqlAttributesGetter
implements SqlClientAttributesGetter<CassandraRequest, Void> {
implements SqlClientAttributesGetter<CassandraRequest, ExecutionInfo> {

@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,13 +8,14 @@
import static java.util.Collections.singleton;

import com.datastax.oss.driver.api.core.CqlIdentifier;
import com.datastax.oss.driver.api.core.cql.ExecutionInfo;
import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import java.util.Collection;
import javax.annotation.Nullable;

final class CassandraSqlAttributesGetter
implements SqlClientAttributesGetter<CassandraRequest, Void> {
implements SqlClientAttributesGetter<CassandraRequest, ExecutionInfo> {

@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,13 @@
import static java.util.Collections.singleton;

import com.datastax.oss.driver.api.core.CqlIdentifier;
import com.datastax.oss.driver.api.core.cql.ExecutionInfo;
import io.opentelemetry.instrumentation.api.incubator.semconv.db.SqlClientAttributesGetter;
import java.util.Collection;
import javax.annotation.Nullable;

final class CassandraSqlAttributesGetter
implements SqlClientAttributesGetter<CassandraRequest, Void> {
implements SqlClientAttributesGetter<CassandraRequest, ExecutionInfo> {
// copied from DbIncubatingAttributes.DbSystemIncubatingValues
private static final String CASSANDRA = "cassandra";

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

package io.opentelemetry.javaagent.instrumentation.clickhouse;

import com.clickhouse.client.ClickHouseException;
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import javax.annotation.Nullable;
Expand Down Expand Up @@ -59,4 +60,13 @@ public String getDbNamespace(ClickHouseDbRequest request) {
public String getConnectionString(ClickHouseDbRequest request) {
return null;
}

@Nullable
@Override
public String getResponseStatusFromException(Throwable throwable) {
if (throwable instanceof ClickHouseException) {
return Integer.toString(((ClickHouseException) throwable).getErrorCode());
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@

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

import com.couchbase.client.core.CouchbaseException;
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import javax.annotation.Nullable;
Expand Down Expand Up @@ -49,4 +50,22 @@ public String getDbQueryText(CouchbaseRequestInfo couchbaseRequest) {
public String getDbOperationName(CouchbaseRequestInfo couchbaseRequest) {
return couchbaseRequest.operation();
}

@Nullable
@Override
public String getResponseStatusFromException(Throwable throwable) {
if (throwable instanceof CouchbaseException) {
// ResponseStatusDetails details = ((CouchbaseException) throwable).details();
// in newer versions of the SDK, this is available as a method on the exception
// check if it's available and contains the status
// @InterfaceAudience.Public
// @InterfaceStability.Experimental
// public ResponseStatusDetails details() {
// return this.responseStatusDetails;
// }
// throwable.
// return throwable.getClass().getSimpleName();
}
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import javax.annotation.Nullable;
import org.elasticsearch.client.Response;
import org.elasticsearch.action.ActionResponse;

final class ElasticsearchTransportAttributesGetter
implements DbClientAttributesGetter<ElasticTransportRequest, Response> {
implements DbClientAttributesGetter<ElasticTransportRequest, ActionResponse> {

@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ public Long getBatchSize(DbRequest request) {
@Override
public String getResponseStatusFromException(Throwable throwable) {
if (throwable instanceof SQLException) {
return String.valueOf(((SQLException) throwable).getErrorCode());
return Integer.toString(((SQLException) throwable).getErrorCode());
}
return null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,10 @@
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter;
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
import javax.annotation.Nullable;
import org.opensearch.client.Response;

final class OpenSearchRestAttributesGetter
implements DbClientAttributesGetter<OpenSearchRestRequest, Void> {
implements DbClientAttributesGetter<OpenSearchRestRequest, Response> {

@SuppressWarnings("deprecation") // using deprecated DbSystemIncubatingValues
@Override
Expand Down Expand Up @@ -49,4 +50,9 @@ public String getDbQueryText(OpenSearchRestRequest request) {
public String getDbOperationName(OpenSearchRestRequest request) {
return request.getMethod();
}

@Override
public String getResponseStatus(Response response) {
return String.valueOf(response.getStatusLine().getStatusCode());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import javax.annotation.Nullable;

public class SpymemcachedAttributesGetter
implements DbClientAttributesGetter<SpymemcachedRequest, Void> {
implements DbClientAttributesGetter<SpymemcachedRequest, Object> {

@Override
public String getDbSystem(SpymemcachedRequest spymemcachedRequest) {
Expand Down

0 comments on commit d1b9596

Please sign in to comment.