Ejemplo n.º 1
0
 public static void Process(ICollectorRegistry registry, Stream outputStream)
 {
     using (var metricsWriter = new MetricsTextWriter(outputStream))
     {
         registry.CollectTo(metricsWriter);
     }
 }
        public async Task CanCollectAll()
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            factory.CreateCounter("www", "help").Inc(99);
            factory.CreateCounter("ap", "text").Inc(5);
            factory.CreateCounter("counter", string.Empty).Inc();
            var gauge = factory.CreateGauge("abc", "with help text", "group", "type");

            gauge.Inc();
            gauge.WithLabels("any", "2").Dec(5);

            string formattedText = null;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    await registry.CollectToAsync(writer);
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(ResourcesHelper.GetFileContent("CollectorRegistryTests_Collection.txt"), formattedText);
        }
Ejemplo n.º 3
0
        public void Collection()
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            var counter = factory.CreateCounter("test", "with help text", "category");

            counter.Inc();
            counter.WithLabels("some").Inc(2);

            var counter2 = factory.CreateCounter("nextcounter", "with help text", "group", "type");

            counter2.Inc(10);
            counter2.WithLabels("any", "2").Inc(5);

            string formattedText = null;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    counter.Collect(writer);
                    counter2.Collect(writer);
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(ResourcesHelper.GetFileContent("CounterTests_Collection.txt"), formattedText);
        }
Ejemplo n.º 4
0
        public void EmptyCollection()
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            var counter = factory.CreateCounter("test", "with help text", "category");

            string formattedText = null;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    counter.Collect(writer);
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(ResourcesHelper.GetFileContent("CounterTests_Empty.txt"), formattedText);
        }
        public static async Task TestCollectionAsync(Action <MetricFactory> metricsSetup, string resourceName)
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            metricsSetup(factory);

            string formattedText;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    await registry.CollectToAsync(writer);

                    await writer.CloseWriterAsync();
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(GetFileContent(resourceName), formattedText);
        }
Ejemplo n.º 6
0
 public static async Task ProcessAsync(ICollectorRegistry registry, Stream outputStream)
 {
     using (var metricsWriter = new MetricsTextWriter(outputStream))
     {
         await registry.CollectToAsync(metricsWriter).ConfigureAwait(false);
     }
 }
Ejemplo n.º 7
0
        public void Collection()
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            var untyped = factory.CreateUntyped("test", "with help text", "category");

            untyped.Set(1);
            untyped.WithLabels("some").Set(2);

            var untyped2 = factory.CreateUntyped("nextuntyped", "with help text", "group", "type");

            untyped2.Set(10);
            untyped2.WithLabels("any", "2").Set(5);

            string formattedText = null;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    ((ICollector)untyped).Collect(writer);
                    ((ICollector)untyped2).Collect(writer);
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(ResourcesHelper.GetFileContent("UntypedTests_Collection.txt"), formattedText);
        }
Ejemplo n.º 8
0
        public async Task Empty_SuppressEmpty()
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            var histogram = factory.CreateHistogram("hist1", "help", new[] { -5.0, 0, 5.0, 10 }, "type");
            // No any Observe
            string formattedText;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    ((ICollector)histogram).Collect(writer);
                    await writer.CloseWriterAsync();
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(ResourcesHelper.GetFileContent("HistogramTests_Empty_SuppressEmpty.txt"), formattedText);
        }
Ejemplo n.º 9
0
        public async Task SuppressEmpty()
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            var gauge = factory.CreateGauge("test", "with help text", "category");

            gauge.WithLabels("some").Inc(5);

            string formattedText = null;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    ((ICollector)gauge).Collect(writer);
                    await writer.CloseWriterAsync();
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(ResourcesHelper.GetFileContent("GaugeTests_SuppressEmpty.txt"), formattedText);
        }
Ejemplo n.º 10
0
        public async Task EmptyCollection()
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            var histogram = factory.CreateHistogram("hist1", "help", false, false, new[] { 1.0, 2.0, 3.0 });

            string formattedText = null;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    ((ICollector)histogram).Collect(writer);
                    await writer.CloseWriterAsync();
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(ResourcesHelper.GetFileContent("HistogramTests_Empty.txt"), formattedText);
        }
Ejemplo n.º 11
0
        public async Task EmptyCollection()
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            var    untyped       = factory.CreateUntyped("test", "with help text", false, false, "category");
            string formattedText = null;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    ((ICollector)untyped).Collect(writer);
                    await writer.CloseWriterAsync();
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(ResourcesHelper.GetFileContent("UntypedTests_Empty.txt"), formattedText);
        }
Ejemplo n.º 12
0
 public static void Process(ICollectorRegistry registry, Stream outputStream)
 {
     using (var metricsWriter = new MetricsTextWriter(outputStream))
     {
         foreach (var collector in registry.Enumerate())
         {
             collector.Collect(metricsWriter);
         }
     }
 }
Ejemplo n.º 13
0
        public void Check_Collect(string prefixName)
        {
            using var stream = new MemoryStream();
            var metricWriter = new MetricsTextWriter(stream);
            var collector    = new GCCollectionCountCollector(prefixName);

            collector.Collect(metricWriter);
            metricWriter.FlushAsync();

            var response = Encoding.UTF8.GetString(stream.ToArray());

            Assert.Contains($"# TYPE {prefixName}dotnet_collection_count_total counter", response);
        }
        public void Check_Collect_NoPrefix()
        {
            using var stream = new MemoryStream();
            var metricWriter = new MetricsTextWriter(stream);
            var collector    = new GCTotalMemoryCollector();

            collector.Collect(metricWriter);
            metricWriter.FlushAsync();

            var response = Encoding.UTF8.GetString(stream.ToArray());

            Assert.Contains("# TYPE dotnet_totalmemory gauge", response);
        }
Ejemplo n.º 15
0
        public void Check_Collect(string prefixName)
        {
            using var stream = new MemoryStream();
            var metricWriter = new MetricsTextWriter(stream);
            var collector    = new ProcessCollector(Process.GetCurrentProcess(), prefixName);

            collector.Collect(metricWriter);
            metricWriter.FlushAsync();

            var response = Encoding.UTF8.GetString(stream.ToArray());

            Assert.Contains($"# TYPE {prefixName}process_cpu_seconds_total counter", response);
            Assert.Contains($"# TYPE {prefixName}process_virtual_bytes gauge", response);
            Assert.Contains($"# TYPE {prefixName}process_working_set gauge", response);
            Assert.Contains($"# TYPE {prefixName}process_private_bytes gauge", response);
            Assert.Contains($"# TYPE {prefixName}process_num_threads gauge", response);
            Assert.Contains($"# TYPE {prefixName}process_processid gauge", response);
            Assert.Contains($"# TYPE {prefixName}process_start_time_seconds gauge", response);
        }
Ejemplo n.º 16
0
        public async Task Collection()
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            var gauge = factory.CreateGauge("test", "with help text", "category");

            gauge.Inc();
            gauge.WithLabels("some").Inc(5);

            var gauge2 = factory.CreateGauge("nextgauge", "with help text", "group", "type");

            gauge2.Inc(1);
            gauge2.WithLabels("any", "2").Dec(5);

            var nanGauge = factory.CreateGauge("nangauge", "example of NaN");

            nanGauge.Set(double.NaN);

            string formattedText = null;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    ((ICollector)gauge).Collect(writer);
                    ((ICollector)gauge2).Collect(writer);
                    ((ICollector)nanGauge).Collect(writer);
                    await writer.CloseWriterAsync();
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(ResourcesHelper.GetFileContent("GaugeTests_Collection.txt"), formattedText);
        }
Ejemplo n.º 17
0
        public async Task Collection()
        {
            var registry = new CollectorRegistry();
            var factory  = new MetricFactory(registry);

            var histogram1 = CreateHistogram1(factory);

            var histogram2 = factory.CreateHistogram("hist2", "help2", new[] { -5.0, 0, 5.0, 10 });

            histogram2.Observe(-20);
            histogram2.Observe(-1);
            histogram2.Observe(0);
            histogram2.Observe(2.5);
            histogram2.Observe(5);
            histogram2.Observe(9);
            histogram2.Observe(11);

            string formattedText = null;

            using (var stream = new MemoryStream())
            {
                using (var writer = new MetricsTextWriter(stream))
                {
                    ((ICollector)histogram1).Collect(writer);
                    ((ICollector)histogram2).Collect(writer);
                    await writer.CloseWriterAsync();
                }

                stream.Seek(0, SeekOrigin.Begin);

                using (var streamReader = new StreamReader(stream))
                {
                    formattedText = streamReader.ReadToEnd();
                }
            }

            Assert.Equal(ResourcesHelper.GetFileContent("HistogramTests_Collection.txt"), formattedText);
        }