Skip to content

Commit f01fe58

Browse files
authored
Add debug logging for connector-service feature flags request and response (#1462)
## Summary Adds debug-level logging for the connector-service feature flags endpoint: 1. **Request**: Logs the endpoint URL and User-Agent header before the HTTP call 2. **Response**: Logs the full JSON response body on success This helps diagnose feature flag rollout issues — e.g., which version the driver reports to connector-service, which flags are returned, and whether version-gating is filtering expected flags. Example output at `LogLevel=6`: ``` Fetching feature flags from connector-service: endpoint=https://host/api/2.0/connector-service/feature-flags/OSS_JDBC/3.4.1, User-Agent=DatabricksJDBC/3.4.1 ... Feature flags response from connector-service (endpoint=...): {"flags":[{"name":"...enableTelemetryForJdbc","value":"true"},...],"ttlSeconds":900} ``` NO_CHANGELOG=true ## Test plan - [x] DatabricksConnectionContextTest — 131 tests pass This pull request was AI-assisted by Isaac. Signed-off-by: Gopal Lal <gopal.lal@databricks.com>
1 parent e1a2c53 commit f01fe58

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

src/main/java/com/databricks/jdbc/common/safe/DatabricksDriverFeatureFlagsContext.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,10 @@ void fetchAndSetFlagsFromServer(IDatabricksHttpClient httpClient, HttpGet reques
126126
featureFlags.put(flag.getName(), flag.getValue());
127127
}
128128
}
129+
LOGGER.debug(
130+
"Feature flags from connector-service: endpoint={}, {}",
131+
request.getURI(),
132+
featureFlagsResponse);
129133

130134
Integer ttlSeconds = featureFlagsResponse.getTtlSeconds();
131135
if (ttlSeconds != null) {

src/main/java/com/databricks/jdbc/common/safe/FeatureFlagsResponse.java

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,19 @@ public Integer getTtlSeconds() {
2020
return ttlSeconds;
2121
}
2222

23+
@Override
24+
public String toString() {
25+
StringBuilder sb = new StringBuilder("FeatureFlagsResponse{flags=[");
26+
if (flags != null) {
27+
for (int i = 0; i < flags.size(); i++) {
28+
if (i > 0) sb.append(", ");
29+
sb.append(flags.get(i));
30+
}
31+
}
32+
sb.append("], ttlSeconds=").append(ttlSeconds).append("}");
33+
return sb.toString();
34+
}
35+
2336
@JsonIgnoreProperties(ignoreUnknown = true)
2437
public static class FeatureFlagEntry {
2538
@JsonProperty("name")
@@ -35,5 +48,10 @@ public String getName() {
3548
public String getValue() {
3649
return value;
3750
}
51+
52+
@Override
53+
public String toString() {
54+
return name + "=" + value;
55+
}
3856
}
3957
}

0 commit comments

Comments
 (0)