static void RunCommand(QuicState quicState, string[] args) { if (args[0] == "--print" || args[0] == "-p") { if (QuicEvent.ParseMode != QuicEventParseMode.Full) { Console.WriteLine("--text option was not initially specified! Please rerun."); return; } foreach (var evt in quicState.Events) { Console.WriteLine(evt); } } else if (args[0] == "--report" || args[0] == "-r") { RunReport(quicState); } else if (args[0] == "--help" || args[0] == "-h" || args[0] == "-?") { PrintCommands(); } else { Console.WriteLine("Unsupported command: {0}", args[0]); return; } }
static void RunReport(QuicState quicState) { // // Worker info // var workers = quicState.Workers; Console.WriteLine("\nWORKERS ({0})\n", workers.Count); uint unhealthyWorkers = 0; uint mostlyIdleWorkers = 0; uint reallyActiveWorkers = 0; const uint UnhealthyQueueDelayUs = 25 * 1000; // More than 25 ms queue delay is "unhealthy" foreach (var worker in workers) { if (worker.AverageQueueDelayUs >= UnhealthyQueueDelayUs) { unhealthyWorkers++; } if (worker.ActivePercent <= 5) { mostlyIdleWorkers++; } else if (worker.ActivePercent >= 80) { reallyActiveWorkers++; } } if (unhealthyWorkers == 0) { Console.WriteLine(" All workers healthy."); } else { Console.Write(" {0} workers unhealthy: [", unhealthyWorkers); unhealthyWorkers = 0; foreach (var worker in workers) { if (worker.AverageQueueDelayUs >= UnhealthyQueueDelayUs) { if (unhealthyWorkers != 0) { Console.Write(", "); } Console.Write("#{0}", worker.Id); unhealthyWorkers++; } } Console.WriteLine("]"); } Console.WriteLine(" {0} workers mostly idle.", mostlyIdleWorkers); Console.WriteLine(" {0} workers really active.", reallyActiveWorkers); // // Connection info // var conns = quicState.Connections; Console.WriteLine("\nCONNECTIONS ({0})\n", conns.Count); // // TODO - Dump Connection info // }