Exemplo n.º 1
0
        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)));
        }