private void ReportEventsSource_OnAfterLaunchFinished(Reporter.ILaunchReporter launchReporter, ReportEvents.EventArgs.AfterLaunchFinishedEventArgs args)
 {
     if (_sendGaUsageTask != null)
     {
         try
         {
             _sendGaUsageTask.GetAwaiter().GetResult();
         }
         catch (Exception) { }
     }
 }
        private void ReportEventsSource_OnBeforeLaunchStarting(Reporter.ILaunchReporter launchReporter, ReportEvents.EventArgs.BeforeLaunchStartingEventArgs args)
        {
            if (args.Configuration.GetValue("Analytics:Enabled", true))
            {
                var category = $"Client name \"{CLIENT_NAME}\", version \"{_clientVersion}\"";
                var label    = $"Agent name \"{AgentName}\", version \"{AgentVersion}\"";

                var requestData = $"/collect?v=1&tid={MEASUREMENT_ID}&cid={_clientId}&t=event&ec={category}&ea=Start launch&el={label}";

                // schedule tracking request
                _sendGaUsageTask = Task.Run(async() =>
                {
                    try
                    {
                        var response = await _httpClient.PostAsync(requestData, null);
                        response.EnsureSuccessStatusCode();
                    }
                    catch (Exception exp)
                    {
                        TraceLogger.Error($"Cannot track OnBeforeLaunchStarting event: {exp}");
                    }
                });
            }
        }