public void GaugeOneDimension() { var buffer = new byte[85000]; var metrics = new List <Metric>(); using var meter = new Meter(Utils.GetCurrentMethodName()); using var provider = Sdk.CreateMeterProviderBuilder() .AddMeter(meter.Name) .AddInMemoryExporter(metrics) .Build(); var counter = meter.CreateCounter <long>("test_counter"); counter.Add(123, new KeyValuePair <string, object>("tagKey", "tagValue")); provider.ForceFlush(); var cursor = PrometheusSerializer.WriteMetric(buffer, 0, metrics[0]); Assert.Matches( ("^" + "# TYPE test_counter counter\n" + "test_counter{tagKey='tagValue'} 123 \\d+\n" + "$").Replace('\'', '"'), Encoding.UTF8.GetString(buffer, 0, cursor)); }
public void GaugeZeroDimensionWithDescription() { var buffer = new byte[85000]; var metrics = new List <Metric>(); using var meter = new Meter(Utils.GetCurrentMethodName()); using var provider = Sdk.CreateMeterProviderBuilder() .AddMeter(meter.Name) .AddInMemoryExporter(metrics) .Build(); meter.CreateObservableGauge("test_gauge", () => 123, description: "Hello, world!"); provider.ForceFlush(); var cursor = PrometheusSerializer.WriteMetric(buffer, 0, metrics[0]); Assert.Matches( ("^" + "# HELP test_gauge Hello, world!\n" + "# TYPE test_gauge gauge\n" + "test_gauge 123 \\d+\n" + "$").Replace('\'', '"'), Encoding.UTF8.GetString(buffer, 0, cursor)); }
public void WriteMetric() { for (int i = 0; i < this.NumberOfSerializeCalls; i++) { int cursor = 0; foreach (var metric in this.metrics) { cursor = PrometheusSerializer.WriteMetric(this.buffer, cursor, metric); } } }