diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs index 57d7a80..14f5e22 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/Program.cs @@ -47,15 +47,33 @@ namespace WelsonJS.Launcher ); // telemetry - string telemetryProvider = GetAppConfig("TelemetryProvider"); - var telemetryOptions = new TelemetryOptions + try { - ApiKey = GetAppConfig("TelemetryApiKey"), - BaseUrl = GetAppConfig("TelemetryBaseUrl"), - DistinctId = TelemetryIdentity.GetDistinctId(), - Disabled = !string.Equals(GetAppConfig("TelemetryEnabled"), "true", StringComparison.OrdinalIgnoreCase) - }; - _telemetryClient = new TelemetryClient(telemetryProvider, telemetryOptions, _logger); + var telemetryProvider = GetAppConfig("TelemetryProvider"); + var telemetryOptions = new TelemetryOptions + { + ApiKey = GetAppConfig("TelemetryApiKey"), + BaseUrl = GetAppConfig("TelemetryBaseUrl"), + DistinctId = TelemetryIdentity.GetDistinctId(), + Disabled = !string.Equals( + GetAppConfig("TelemetryEnabled"), + "true", + StringComparison.OrdinalIgnoreCase) + }; + + if (!telemetryOptions.Disabled && + !string.IsNullOrWhiteSpace(telemetryProvider) && + !string.IsNullOrWhiteSpace(telemetryOptions.ApiKey) && + !string.IsNullOrWhiteSpace(telemetryOptions.BaseUrl)) + { + _telemetryClient = new TelemetryClient(telemetryProvider, telemetryOptions, _logger); + } + } + catch (Exception ex) + { + _logger.Error($"Telemetry initialization failed: {ex}"); + _telemetryClient = null; + } } [STAThread] @@ -84,7 +102,10 @@ namespace WelsonJS.Launcher } // send event to the telemetry server - _telemetryClient.TrackAppStartedAsync("WelsonJS.Launcher", "0.2.7.57"); + if (_telemetryClient != null) + { + _ = _telemetryClient.TrackAppStartedAsync("WelsonJS.Launcher", "0.2.7.57"); + } // draw the main form Application.EnableVisualStyles(); diff --git a/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/PosthogTelemetryProvider.cs b/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/PosthogTelemetryProvider.cs index ea445eb..63c6313 100644 --- a/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/PosthogTelemetryProvider.cs +++ b/WelsonJS.Toolkit/WelsonJS.Launcher/Telemetry/PosthogTelemetryProvider.cs @@ -66,11 +66,11 @@ namespace WelsonJS.Launcher.Telemetry try { - await _httpClient.PostAsync( + using (var response = await _httpClient.PostAsync( url, new StringContent(json, Encoding.UTF8, "application/json"), cancellationToken - ); + )) { /* disposed automatically */ } } catch {