@@ -407,7 +407,8 @@ def __init__(
407407 self .messages = []
408408 self ._async_sfqids : dict [str , None ] = {}
409409 self ._done_async_sfqids : dict [str , None ] = {}
410- self .telemetry_enabled = False
410+ self ._client_param_telemetry_enabled = True
411+ self ._server_param_telemetry_enabled = False
411412 self ._session_parameters : dict [str , str | int | bool ] = {}
412413 logger .info (
413414 "Snowflake Connector for Python Version: %s, "
@@ -624,11 +625,22 @@ def consent_cache_id_token(self):
624625
625626 @property
626627 def telemetry_enabled (self ) -> bool :
627- return self ._telemetry_enabled
628+ return bool (
629+ self ._client_param_telemetry_enabled
630+ and self ._server_param_telemetry_enabled
631+ )
628632
629633 @telemetry_enabled .setter
630634 def telemetry_enabled (self , value ) -> None :
631- self ._telemetry_enabled = True if value else False
635+ self ._client_param_telemetry_enabled = True if value else False
636+ if (
637+ self ._client_param_telemetry_enabled
638+ and not self ._server_param_telemetry_enabled
639+ ):
640+ logger .info (
641+ "Telemetry has been disabled by the session parameter CLIENT_TELEMETRY_ENABLED."
642+ " Set session parameter CLIENT_TELEMETRY_ENABLED to true to enable telemetry."
643+ )
632644
633645 @property
634646 def service_name (self ) -> str | None :
@@ -774,7 +786,7 @@ def close(self, retry: bool = True) -> None:
774786
775787 # close telemetry first, since it needs rest to send remaining data
776788 logger .info ("closed" )
777- self ._telemetry .close (send_on_close = retry )
789+ self ._telemetry .close (send_on_close = bool ( retry and self . telemetry_enabled ) )
778790 if (
779791 self ._all_async_queries_finished ()
780792 and not self ._server_session_keep_alive
@@ -1714,7 +1726,7 @@ def _update_parameters(
17141726 for name , value in parameters .items ():
17151727 self ._session_parameters [name ] = value
17161728 if PARAMETER_CLIENT_TELEMETRY_ENABLED == name :
1717- self .telemetry_enabled = value
1729+ self ._server_param_telemetry_enabled = value
17181730 elif PARAMETER_CLIENT_SESSION_KEEP_ALIVE == name :
17191731 # Only set if the local config is None.
17201732 # Always give preference to user config.
0 commit comments