public Report Report(ClrRuntime runtime) { var report = new Report(); report.Stats = StatCollectors .Select(s => s(runtime)) .Concat( MultiStatCollectors .SelectMany(c => c(runtime))) .Concat(BuildHeapStats(runtime)) .ToList(); report.Metrics = MetricCollectors .Select(m => m(runtime)) .Concat( MultiMetricCollectors .SelectMany(c => c(runtime, report))) .ToList(); report.Issues = Detectors.SelectMany(d => d(runtime, report)).ToList(); return(report); }
public Reporter RegisterMultiStat(Func <ClrRuntime, IEnumerable <Stat> > statCollectors) { MultiStatCollectors.Add(statCollectors); return(this); }