Skip to content

Commit 5b44e25

Browse files
committed
get error response from ServerException
1 parent 6fa8042 commit 5b44e25

File tree

10 files changed

+69
-18
lines changed

10 files changed

+69
-18
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.clickhouse.v0_5;
7+
8+
import com.clickhouse.client.ClickHouseException;
9+
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter;
10+
import io.opentelemetry.javaagent.instrumentation.clickhouse.common.ClickHouseAttributesGetter;
11+
import io.opentelemetry.javaagent.instrumentation.clickhouse.common.ClickHouseDbRequest;
12+
import javax.annotation.Nullable;
13+
14+
public final class ClickHouseClientV1AttributesGetter extends ClickHouseAttributesGetter
15+
implements DbClientAttributesGetter<ClickHouseDbRequest, Void> {
16+
17+
public static ClickHouseClientV1AttributesGetter create() {
18+
return new ClickHouseClientV1AttributesGetter();
19+
}
20+
21+
@Nullable
22+
@Override
23+
public String getResponseStatus(@Nullable Void response, @Nullable Throwable error) {
24+
if (error instanceof ClickHouseException) {
25+
return Integer.toString(((ClickHouseException) error).getErrorCode());
26+
}
27+
return null;
28+
}
29+
}

instrumentation/clickhouse/clickhouse-client-0.5/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/clickhouse/v0_5/ClickHouseClientV1Singletons.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ public final class ClickHouseClientV1Singletons {
1515
private static final Instrumenter<ClickHouseDbRequest, Void> INSTRUMENTER;
1616

1717
static {
18-
INSTRUMENTER = ClickHouseInstrumenterFactory.createInstrumenter(INSTRUMENTER_NAME);
18+
INSTRUMENTER =
19+
ClickHouseInstrumenterFactory.createInstrumenter(
20+
INSTRUMENTER_NAME, ClickHouseClientV1AttributesGetter.create());
1921
}
2022

2123
public static Instrumenter<ClickHouseDbRequest, Void> instrumenter() {
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
/*
2+
* Copyright The OpenTelemetry Authors
3+
* SPDX-License-Identifier: Apache-2.0
4+
*/
5+
6+
package io.opentelemetry.javaagent.instrumentation.clickhouse.v0_8;
7+
8+
import com.clickhouse.client.api.ServerException;
9+
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter;
10+
import io.opentelemetry.javaagent.instrumentation.clickhouse.common.ClickHouseAttributesGetter;
11+
import io.opentelemetry.javaagent.instrumentation.clickhouse.common.ClickHouseDbRequest;
12+
import javax.annotation.Nullable;
13+
14+
public final class ClickHouseClientV2AttributesGetter extends ClickHouseAttributesGetter
15+
implements DbClientAttributesGetter<ClickHouseDbRequest, Void> {
16+
17+
public static ClickHouseClientV2AttributesGetter create() {
18+
return new ClickHouseClientV2AttributesGetter();
19+
}
20+
21+
@Nullable
22+
@Override
23+
public String getResponseStatus(@Nullable Void response, @Nullable Throwable error) {
24+
if (error instanceof ServerException) {
25+
return Integer.toString(((ServerException) error).getCode());
26+
}
27+
return null;
28+
}
29+
}

instrumentation/clickhouse/clickhouse-client-0.8/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/clickhouse/v0_8/ClickHouseClientV2Singletons.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,9 @@ public final class ClickHouseClientV2Singletons {
1515
private static final Instrumenter<ClickHouseDbRequest, Void> INSTRUMENTER;
1616

1717
static {
18-
INSTRUMENTER = ClickHouseInstrumenterFactory.createInstrumenter(INSTRUMENTER_NAME);
18+
INSTRUMENTER =
19+
ClickHouseInstrumenterFactory.createInstrumenter(
20+
INSTRUMENTER_NAME, ClickHouseClientV2AttributesGetter.create());
1921
}
2022

2123
public static Instrumenter<ClickHouseDbRequest, Void> instrumenter() {

instrumentation/clickhouse/clickhouse-client-0.8/javaagent/src/test/java/io/opentelemetry/javaagent/instrumentation/clickhouse/v0_8/ClickHouseClientV2Test.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,7 @@ void testQueryWithStringQueryAndId() throws Exception {
193193
}
194194

195195
@Test
196-
void testQueryThrowsException() {
196+
void testQueryThrowsServerException() {
197197
Throwable thrown =
198198
catchThrowable(
199199
() -> {
@@ -208,7 +208,7 @@ void testQueryThrowsException() {
208208
attributeAssertions(dbName, host, port, "select * from non_existent_table", "SELECT"));
209209
if (SemconvStability.emitStableDatabaseSemconv()) {
210210
assertions.add(equalTo(DB_RESPONSE_STATUS_CODE, "60"));
211-
assertions.add(equalTo(ERROR_TYPE, "com.clickhouse.client.ClickHouseException"));
211+
assertions.add(equalTo(ERROR_TYPE, "com.clickhouse.client.api.ServerException"));
212212
}
213213
testing.waitAndAssertTraces(
214214
trace ->
@@ -229,7 +229,7 @@ void testSendQuery() throws Exception {
229229
CompletableFuture<CommandResponse> future =
230230
client.execute("select * from " + tableName + " limit 1");
231231
CommandResponse results = future.get();
232-
assertThat(results.getReadRows()).isEqualTo(2);
232+
assertThat(results.getReadRows()).isEqualTo(0);
233233
});
234234

235235
testing.waitAndAssertTraces(

instrumentation/clickhouse/clickhouse-client-common/javaagent/build.gradle.kts

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,4 @@ dependencies {
1212
api(project(":instrumentation-api-incubator"))
1313
compileOnly("com.google.auto.value:auto-value-annotations")
1414
annotationProcessor("com.google.auto.value:auto-value")
15-
compileOnly("com.clickhouse:clickhouse-client:0.5.0")
16-
}
17-
18-
tasks.test {
19-
useJUnitPlatform()
2015
}

instrumentation/clickhouse/clickhouse-client-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/clickhouse/common/ClickHouseAttributesGetter.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,11 @@
55

66
package io.opentelemetry.javaagent.instrumentation.clickhouse.common;
77

8-
import com.clickhouse.client.ClickHouseException;
98
import io.opentelemetry.instrumentation.api.incubator.semconv.db.DbClientAttributesGetter;
109
import io.opentelemetry.semconv.incubating.DbIncubatingAttributes;
1110
import javax.annotation.Nullable;
1211

13-
public final class ClickHouseAttributesGetter
12+
public class ClickHouseAttributesGetter
1413
implements DbClientAttributesGetter<ClickHouseDbRequest, Void> {
1514

1615
@Nullable
@@ -64,9 +63,6 @@ public String getConnectionString(ClickHouseDbRequest request) {
6463
@Nullable
6564
@Override
6665
public String getResponseStatus(@Nullable Void response, @Nullable Throwable error) {
67-
if (error instanceof ClickHouseException) {
68-
return Integer.toString(((ClickHouseException) error).getErrorCode());
69-
}
7066
return null;
7167
}
7268
}

instrumentation/clickhouse/clickhouse-client-common/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/clickhouse/common/ClickHouseInstrumenterFactory.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@
1616
public final class ClickHouseInstrumenterFactory {
1717

1818
public static Instrumenter<ClickHouseDbRequest, Void> createInstrumenter(
19-
String instrumenterName) {
20-
ClickHouseAttributesGetter dbAttributesGetter = new ClickHouseAttributesGetter();
21-
19+
String instrumenterName, ClickHouseAttributesGetter dbAttributesGetter) {
2220
return Instrumenter.<ClickHouseDbRequest, Void>builder(
2321
GlobalOpenTelemetry.get(),
2422
instrumenterName,

0 commit comments

Comments
 (0)