Skip to content

Commit 45a44cd

Browse files
committed
Default kernel telemetry to disabled
Signed-off-by: Jay Xiao <jay.xiao@databricks.com>
1 parent 989c225 commit 45a44cd

4 files changed

Lines changed: 43 additions & 2 deletions

File tree

src/databricks/sql/backend/kernel/client.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ def _kernel_telemetry_kwargs(options: Dict[str, Any]) -> Dict[str, Any]:
191191
# The Python telemetry model does not currently track process
192192
# name; omit it and let the kernel fill what it can derive.
193193
"process_name": None,
194-
"telemetry_enabled": bool(options.get("enable_telemetry", True)),
194+
"telemetry_enabled": bool(options.get("enable_telemetry", False)),
195195
}
196196
if options.get("telemetry_batch_size") is not None:
197197
out["telemetry_batch_size"] = options["telemetry_batch_size"]

src/databricks/sql/session.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -257,7 +257,7 @@ def _create_backend(
257257
# identity at Session construction time so kernel-owned
258258
# telemetry can populate its system configuration.
259259
kernel_telemetry_options = {
260-
"enable_telemetry": kwargs.get("enable_telemetry", True),
260+
"enable_telemetry": kwargs.get("enable_telemetry", False),
261261
"telemetry_batch_size": kwargs.get("telemetry_batch_size"),
262262
"telemetry_circuit_breaker_enabled": kwargs.get(
263263
"_telemetry_circuit_breaker_enabled"

tests/unit/test_session.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -619,6 +619,42 @@ def test_telemetry_kwargs_threaded_into_kernel_client(self):
619619
finally:
620620
conn.close()
621621

622+
def test_telemetry_enabled_defaults_false_for_kernel_client(self):
623+
import sys
624+
import types
625+
626+
pytest.importorskip(
627+
"pyarrow",
628+
reason="kernel client module imports pyarrow at load",
629+
)
630+
631+
fake = types.ModuleType("databricks_sql_kernel")
632+
fake.KernelError = type("KernelError", (Exception,), {})
633+
fake.Session = MagicMock()
634+
635+
with patch.dict(sys.modules, {"databricks_sql_kernel": fake}), patch(
636+
"databricks.sql.backend.kernel.client.KernelDatabricksClient"
637+
) as mock_kernel_client, patch(
638+
"%s.session.get_python_sql_connector_auth_provider" % self.PACKAGE
639+
):
640+
instance = mock_kernel_client.return_value
641+
instance.open_session.return_value = SessionId(
642+
BackendType.SEA, "sess-id", None
643+
)
644+
645+
conn = databricks.sql.connect(
646+
server_hostname="foo",
647+
http_path="/sql/1.0/warehouses/abc",
648+
use_kernel=True,
649+
access_token="dapi-xyz",
650+
)
651+
try:
652+
_, kwargs = mock_kernel_client.call_args
653+
opts = kwargs["telemetry_options"]
654+
assert opts["enable_telemetry"] is False
655+
finally:
656+
conn.close()
657+
622658

623659
class TestKernelUserAgentForwarding:
624660
"""user_agent_entry must reach the kernel on the use_kernel path —

tests/unit/test_telemetry.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -332,6 +332,11 @@ def test_is_telemetry_enabled_returns_false_for_kernel(
332332
is expected_kernel_telemetry_enabled
333333
)
334334

335+
def test_kernel_telemetry_enabled_defaults_false(self):
336+
kernel_kwargs = self._kernel_telemetry_kwargs_for_test({})
337+
338+
assert kernel_kwargs["telemetry_enabled"] is False
339+
335340

336341
class TestTelemetryFactory:
337342
"""Tests for TelemetryClientFactory lifecycle and management."""

0 commit comments

Comments
 (0)