diff --git a/UnoCheck/CheckCommand.cs b/UnoCheck/CheckCommand.cs index d3003ce..648c142 100644 --- a/UnoCheck/CheckCommand.cs +++ b/UnoCheck/CheckCommand.cs @@ -20,7 +20,7 @@ public class CheckCommand : AsyncCommand public override async Task ExecuteAsync(CommandContext context, CheckSettings settings) { var sw = Stopwatch.StartNew(); - TelemetryClient.TrackStartCheck(); + TelemetryClient.TrackStartCheck(settings.Frameworks); Util.Verbose = settings.Verbose; Util.LogFile = settings.LogFile; @@ -70,9 +70,10 @@ public override async Task ExecuteAsync(CommandContext context, CheckSettin var results = new Dictionary(); var consoleStatus = AnsiConsole.Status(); - var skippedChecks = new List(); + var skippedChecks = new List(); + var skippedFix = new List(); - AnsiConsole.Markup($"[bold blue]{Icon.Thinking} Synchronizing configuration...[/]"); + AnsiConsole.Markup($"[bold blue]{Icon.Thinking} Synchronizing configuration...[/]"); var channel = ManifestChannel.Default; if (settings.Preview) @@ -239,6 +240,11 @@ public override async Task ExecuteAsync(CommandContext context, CheckSettin || (!settings.NonInteractive && AnsiConsole.Confirm($"[bold]{Icon.Bell} Attempt to fix?[/]")) ); + if(!doFix && !isRetry) + { + skippedFix.Add(checkup.Id); + } + if (doFix && !isRetry) { var isAdmin = Util.IsAdmin(); @@ -302,7 +308,9 @@ public override async Task ExecuteAsync(CommandContext context, CheckSettin if (hasErrors) { - TelemetryClient.TrackCheckFail(sw.Elapsed, string.Join(",", erroredChecks.Select(c => c.Checkup.Id))); + TelemetryClient.TrackCheckFail( + sw.Elapsed, + string.Join(",", erroredChecks.Select(c => (skippedFix.Contains(c.Checkup.Id) ? "~" : "") + c.Checkup.Id))); AnsiConsole.Console.WriteLine(); diff --git a/UnoCheck/Telemetry/TelemetryClient.cs b/UnoCheck/Telemetry/TelemetryClient.cs index 6dc5452..e7d20f6 100644 --- a/UnoCheck/Telemetry/TelemetryClient.cs +++ b/UnoCheck/Telemetry/TelemetryClient.cs @@ -1,6 +1,7 @@ using Newtonsoft.Json; using System; using System.Collections.Generic; +using System.Linq; using System.Text; using Uno.DevTools.Telemetry; @@ -26,13 +27,24 @@ public static void Init() } } - public static void TrackStartCheck() + public static void TrackStartCheck(string[] requestedFrameworks) { try { + // Remove strings that are not of the format net8.0 or net8.0-XXXXX, using a regex + var frameworks = string.Join( + ",", + requestedFrameworks + .OrderBy(s => s) + .Where(f => System.Text.RegularExpressions.Regex.IsMatch(f, @"^net\d+(\.0)(?:-[a-zA-Z0-9.]+)*$")) + .Select(s => s[..32]) + .Take(10)); + _telemetry.TrackEvent( "check-start", - [], + [ + ("RequestedFrameworks", frameworks), + ], [] ); }