Skip to content

Commit b005890

Browse files
committed
added more logs to identify server side flag evaluation
Signed-off-by: Nikhil Suri <[email protected]>
1 parent a25e3f3 commit b005890

File tree

2 files changed

+45
-14
lines changed

2 files changed

+45
-14
lines changed

src/databricks/sql/common/feature_flag.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -116,31 +116,37 @@ def _refresh_flags(self):
116116
self._connection.session.auth_provider.add_headers(headers)
117117
headers["User-Agent"] = self._connection.session.useragent_header
118118

119-
logger.info(f"Fetching feature flags from: {self._feature_flag_endpoint}")
119+
logger.info(
120+
f"Feature Flags: Sending GET request to endpoint: {self._feature_flag_endpoint}"
121+
)
120122
response = self._http_client.request(
121123
HttpMethod.GET, self._feature_flag_endpoint, headers=headers, timeout=30
122124
)
123125

124-
logger.info(f"Feature flag response status: {response.status}")
126+
logger.info(f"Feature Flags: HTTP Response status code: {response.status}")
127+
125128
if response.status == 200:
126129
# Parse JSON response from urllib3 response data
127130
response_data = json.loads(response.data.decode())
128-
logger.info(f"Feature flag response data: {response_data}")
131+
logger.info(
132+
f"Feature Flags: ✓ SUCCESS - Received {len(response_data.get('flags', []))} flags from server"
133+
)
134+
logger.info(f"Feature Flags: Response data: {response_data}")
129135
ff_response = FeatureFlagsResponse.from_dict(response_data)
130136
self._update_cache_from_response(ff_response)
131-
logger.info(f"Feature flags loaded: {self._flags}")
137+
logger.info(f"Feature Flags: Loaded into cache: {self._flags}")
132138
else:
133139
# On failure, initialize with an empty dictionary to prevent re-blocking.
134140
logger.info(
135-
f"Feature flag fetch failed with status {response.status}, initializing empty flags"
141+
f"Feature Flags: ✗ FAILED - Non-200 status code {response.status}, using empty flags"
136142
)
137143
if self._flags is None:
138144
self._flags = {}
139145

140146
except Exception as e:
141147
# On exception, initialize with an empty dictionary to prevent re-blocking.
142148
logger.info(
143-
f"Feature flag fetch exception: {type(e).__name__}: {e}, initializing empty flags"
149+
f"Feature Flags: ✗ EXCEPTION - {type(e).__name__}: {e}, using empty flags"
144150
)
145151
if self._flags is None:
146152
self._flags = {}

src/databricks/sql/telemetry/telemetry_client.py

Lines changed: 33 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -114,17 +114,42 @@ def is_telemetry_enabled(connection: "Connection") -> bool:
114114
return True
115115

116116
if connection.enable_telemetry:
117+
from databricks.sql import __version__
118+
119+
endpoint = f"https://{connection.session.host}/api/2.0/connector-service/feature-flags/PYTHON/{__version__}"
117120
logger.info(
118-
f"Telemetry: enable_telemetry=True, checking feature flag: {TelemetryHelper.TELEMETRY_FEATURE_FLAG_NAME}"
121+
f"Telemetry: enable_telemetry=True, checking server-side feature flag"
119122
)
120-
context = FeatureFlagsContextFactory.get_instance(connection)
121-
flag_value = context.get_flag_value(
122-
TelemetryHelper.TELEMETRY_FEATURE_FLAG_NAME, default_value=False
123+
logger.info(f"Telemetry: Feature flag endpoint: {endpoint}")
124+
logger.info(
125+
f"Telemetry: Looking for flag: {TelemetryHelper.TELEMETRY_FEATURE_FLAG_NAME}"
123126
)
124-
logger.info(f"Telemetry: feature flag value = '{flag_value}'")
125-
enabled = str(flag_value).lower() == "true"
126-
logger.info(f"Telemetry: feature flag check result = {enabled}")
127-
return enabled
127+
128+
try:
129+
context = FeatureFlagsContextFactory.get_instance(connection)
130+
flag_value = context.get_flag_value(
131+
TelemetryHelper.TELEMETRY_FEATURE_FLAG_NAME, default_value=False
132+
)
133+
logger.info(
134+
f"Telemetry: Feature flag fetch SUCCESS - received value: '{flag_value}'"
135+
)
136+
137+
enabled = str(flag_value).lower() == "true"
138+
if enabled:
139+
logger.info(
140+
f"Telemetry: ✓ Server flag is 'true', telemetry ENABLED"
141+
)
142+
else:
143+
logger.info(
144+
f"Telemetry: ✗ Server flag is '{flag_value}' (not 'true'), telemetry DISABLED"
145+
)
146+
return enabled
147+
except Exception as e:
148+
logger.info(
149+
f"Telemetry: Feature flag fetch FAILED with exception: {type(e).__name__}: {e}"
150+
)
151+
logger.info("Telemetry: Defaulting to DISABLED due to fetch failure")
152+
return False
128153
else:
129154
logger.info("Telemetry: enable_telemetry=False, telemetry DISABLED")
130155
return False

0 commit comments

Comments
 (0)