Esempio n. 1
0
        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));
        }
Esempio n. 2
0
        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);
         }
     }
 }