feat: Add arch and autoLogin fields to VersionPayload

The VersionPayload class in the TelemetryService module has been updated to include the arch field for architecture information and the autoLogin field to indicate whether auto login is enabled. This change enhances the telemetry data collected by the application.
This commit is contained in:
Gabriel Luiz Freitas Almeida 2024-06-23 00:54:46 -03:00
commit d08b9bfd3d

View file

@ -34,6 +34,8 @@ class VersionPayload(BaseModel):
version: str version: str
platform: str platform: str
python: str python: str
arch: str
autoLogin: bool
cacheType: str cacheType: str
backendOnly: bool backendOnly: bool
@ -83,7 +85,7 @@ class TelemetryService(Service):
logger.debug("Telemetry tracking is disabled.") logger.debug("Telemetry tracking is disabled.")
return return
url = f"{self.base_url}/{self.package}" url = f"{self.base_url}/{self.package.lower()}"
if path: if path:
url = f"{url}/{path}" url = f"{url}/{path}"
try: try:
@ -104,12 +106,15 @@ class TelemetryService(Service):
async def log_package_version(self): async def log_package_version(self):
python_version = ".".join(platform.python_version().split(".")[:2]) python_version = ".".join(platform.python_version().split(".")[:2])
version_info = get_version_info() version_info = get_version_info()
architecture = platform.architecture()[0]
payload = VersionPayload( payload = VersionPayload(
version=version_info["version"], version=version_info["version"],
platform=platform.platform(), platform=platform.platform(),
python=python_version, python=python_version,
cacheType=self.settings_service.settings.cache_type, cacheType=self.settings_service.settings.cache_type,
backendOnly=self.settings_service.settings.backend_only, backendOnly=self.settings_service.settings.backend_only,
arch=architecture,
autoLogin=self.settings_service.auth_settings.AUTO_LOGIN,
) )
await self.telemetry_queue.put((self.send_telemetry_data, payload, None)) await self.telemetry_queue.put((self.send_telemetry_data, payload, None))
@ -125,8 +130,7 @@ class TelemetryService(Service):
try: try:
self.running = True self.running = True
self.worker_task = asyncio.create_task(self.telemetry_worker()) self.worker_task = asyncio.create_task(self.telemetry_worker())
await self.worker_task asyncio.create_task(self.log_package_version())
await self.log_package_version()
except Exception as e: except Exception as e:
logger.error(f"Error starting telemetry service: {e}") logger.error(f"Error starting telemetry service: {e}")