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); }
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); }
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); }
public static async Task ProcessAsync(ICollectorRegistry registry, Stream outputStream) { using (var metricsWriter = new MetricsTextWriter(outputStream)) { await registry.CollectToAsync(metricsWriter).ConfigureAwait(false); } }
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); }
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); }
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); }
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); }
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); }
public static void Process(ICollectorRegistry registry, Stream outputStream) { using (var metricsWriter = new MetricsTextWriter(outputStream)) { foreach (var collector in registry.Enumerate()) { collector.Collect(metricsWriter); } } }
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); }
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); }
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); }
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); }