Skip to content

Commit 18621f2

Browse files
committed
Enhance useragent to indicate Apache Spark
1 parent 5dc8e67 commit 18621f2

File tree

1 file changed

+15
-9
lines changed

1 file changed

+15
-9
lines changed

clickhouse-http-client/src/main/java/com/clickhouse/client/http/ClickHouseHttpConnection.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,8 @@
99
import java.net.URLEncoder;
1010
import java.nio.charset.Charset;
1111
import java.nio.charset.StandardCharsets;
12-
import java.util.Collections;
13-
import java.util.HashSet;
14-
import java.util.LinkedHashMap;
15-
import java.util.List;
16-
import java.util.Locale;
17-
import java.util.Map;
18-
import java.util.Optional;
12+
import java.util.*;
1913
import java.util.Map.Entry;
20-
import java.util.Set;
2114

2215
import com.clickhouse.client.ClickHouseClient;
2316
import com.clickhouse.client.ClickHouseConfig;
@@ -417,10 +410,23 @@ protected String getDefaultUserAgent() {
417410
return config.getClientName();
418411
}
419412

413+
protected String getAdditionalFrameworkUserAgent() {
414+
List<String> frameworks = List.of("apache.spark");
415+
Set<String> inferredFrameworks = new LinkedHashSet<>();
416+
for (StackTraceElement ste : Thread.currentThread().getStackTrace()) {
417+
for (String framework : frameworks) {
418+
if (ste.toString().contains(framework)) {
419+
inferredFrameworks.add(String.format("(%s)", framework));
420+
}
421+
}
422+
}
423+
return String.join("; ", inferredFrameworks);
424+
}
425+
420426
protected final String getUserAgent() {
421427
final ClickHouseConfig c = config;
422428
String name = c.getClientName();
423-
String userAgent = getDefaultUserAgent();
429+
String userAgent = getDefaultUserAgent() + getAdditionalFrameworkUserAgent();
424430

425431
if (!ClickHouseClientOption.CLIENT_NAME.getDefaultValue().equals(name)) {
426432
return name + " " + userAgent;

0 commit comments

Comments
 (0)