private static IEnumerable <ExposedMetric> GetExposedMetric(SourceAndConfig source) { Console.WriteLine($"Getting metrics for {source}.."); // Start collector var registry = new CollectorRegistry(); using var statsCollector = source.ApplyConfig(DotNetRuntimeStatsBuilder.Customize()).StartCollecting(registry); // Wait for metrics to be available (hacky!) Thread.Sleep(1500); // Pull registered collectors var collectors = registry.TryGetFieldValue("_collectors", Flags.InstancePrivate) as ConcurrentDictionary <string, Collector>; return(collectors.Values.Select(c => new ExposedMetric(c, source.Source))); }