Skip to content

Commit da6708c

Browse files
NO-SNOW: Send aio usage outside error loop
1 parent be4c0b3 commit da6708c

File tree

6 files changed

+28
-6
lines changed

6 files changed

+28
-6
lines changed

src/snowflake/connector/aio/_connection.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -737,6 +737,18 @@ async def _log_telemetry_imported_packages(self) -> None:
737737
)
738738
)
739739

740+
async def _log_async_usage(self):
741+
await self._log_telemetry(
742+
TelemetryData.from_telemetry_data_dict(
743+
from_dict={
744+
TelemetryField.KEY_TYPE.value: TelemetryField.USES_AIO.value,
745+
TelemetryField.KEY_VALUE.value: str(True),
746+
},
747+
timestamp=get_time_millis(),
748+
connection=self,
749+
)
750+
)
751+
740752
async def _next_sequence_counter(self) -> int:
741753
"""Gets next sequence counter. Used internally."""
742754
async with self._lock_sequence_counter:
@@ -1030,6 +1042,7 @@ async def connect(self, **kwargs) -> None:
10301042
await self.__open_connection()
10311043
self._telemetry = TelemetryClient(self._rest)
10321044
await self._log_telemetry_imported_packages()
1045+
await self._log_async_usage()
10331046

10341047
def cursor(
10351048
self, cursor_class: type[SnowflakeCursor] = SnowflakeCursor

src/snowflake/connector/connection.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -591,6 +591,7 @@ def __init__(
591591

592592
# get the imported modules from sys.modules
593593
self._log_telemetry_imported_packages()
594+
self._log_async_usage()
594595
# check SNOW-1218851 for long term improvement plan to refactor ocsp code
595596
atexit.register(self._close_at_exit)
596597

@@ -2295,6 +2296,18 @@ def _log_telemetry_imported_packages(self) -> None:
22952296
)
22962297
)
22972298

2299+
def _log_async_usage(self):
2300+
self._log_telemetry(
2301+
TelemetryData.from_telemetry_data_dict(
2302+
from_dict={
2303+
TelemetryField.KEY_TYPE.value: TelemetryField.USES_AIO.value,
2304+
TelemetryField.KEY_VALUE.value: str(False),
2305+
},
2306+
timestamp=get_time_millis(),
2307+
connection=self,
2308+
)
2309+
)
2310+
22982311
def is_valid(self) -> bool:
22992312
"""This function tries to answer the question: Is this connection still good for sending queries?
23002313
Attempts to validate the connections both on the TCP/IP and Session levels."""

src/snowflake/connector/errors.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,9 +161,6 @@ def send_exception_telemetry(
161161
telemetry_data[TelemetryField.KEY_TYPE.value] = self.errtype.value
162162
telemetry_data[TelemetryField.KEY_SOURCE.value] = connection.application
163163
telemetry_data[TelemetryField.KEY_EXCEPTION.value] = self.__class__.__name__
164-
telemetry_data[TelemetryField.KEY_USES_AIO.value] = str(
165-
self._is_aio_connection(connection)
166-
).lower()
167164
ts = get_time_millis()
168165
try:
169166
result = connection._log_telemetry(

src/snowflake/connector/telemetry.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ class TelemetryField(Enum):
4141
IMPORTED_PACKAGES = "client_imported_packages"
4242
# multi-statement usage
4343
MULTI_STATEMENT = "client_multi_statement_query"
44+
# aio usage
45+
USES_AIO = "client_aio_use"
4446
# Keys for telemetry data sent through either in-band or out-of-band telemetry
4547
KEY_TYPE = "type"
4648
KEY_SOURCE = "source"
@@ -51,7 +53,6 @@ class TelemetryField(Enum):
5153
KEY_REASON = "reason"
5254
KEY_VALUE = "value"
5355
KEY_EXCEPTION = "exception"
54-
KEY_USES_AIO = "uses_aio"
5556
# Reserved UpperCamelName keys
5657
KEY_ERROR_NUMBER = "ErrorNumber"
5758
KEY_ERROR_MESSAGE = "ErrorMessage"

test/unit/aio/test_errors_telemetry.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,5 @@ async def test_error_telemetry_async_connection():
3030
assert msg[TelemetryField.KEY_TYPE.value] == TelemetryField.SQL_EXCEPTION.value
3131
assert msg[TelemetryField.KEY_SOURCE.value] == conn.application
3232
assert msg[TelemetryField.KEY_EXCEPTION.value] == "Error"
33-
assert msg[TelemetryField.KEY_USES_AIO.value] == "true"
3433
assert TelemetryField.KEY_DRIVER_TYPE.value in msg
3534
assert TelemetryField.KEY_DRIVER_VERSION.value in msg

test/unit/test_errors_telemetry.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,5 @@ def test_error_telemetry_sync_connection():
2828
assert msg[TelemetryField.KEY_TYPE.value] == TelemetryField.SQL_EXCEPTION.value
2929
assert msg[TelemetryField.KEY_SOURCE.value] == conn.application
3030
assert msg[TelemetryField.KEY_EXCEPTION.value] == "Error"
31-
assert msg[TelemetryField.KEY_USES_AIO.value] == "false"
3231
assert TelemetryField.KEY_DRIVER_TYPE.value in msg
3332
assert TelemetryField.KEY_DRIVER_VERSION.value in msg

0 commit comments

Comments
 (0)