예제 #1
0
        public void MeasureSendsAggregateToRegisteredProcessor()
        {
            var testProcessor = new TestMetricProcessor();
            var meter         = MeterFactory.Create(testProcessor).GetMeter("library1") as MeterSDK;
            var testMeasure   = meter.CreateInt64Measure("testMeasure");

            var labels1 = new List <KeyValuePair <string, string> >();

            labels1.Add(new KeyValuePair <string, string>("dim1", "value1"));

            var labels2 = new List <KeyValuePair <string, string> >();

            labels2.Add(new KeyValuePair <string, string>("dim1", "value2"));

            testMeasure.Record(SpanContext.BlankLocal, 100, meter.GetLabelSet(labels1));
            testMeasure.Record(SpanContext.BlankLocal, 10, meter.GetLabelSet(labels1));
            testMeasure.Record(SpanContext.BlankLocal, 200, meter.GetLabelSet(labels2));
            testMeasure.Record(SpanContext.BlankLocal, 20, meter.GetLabelSet(labels2));

            meter.Collect();

            Assert.Equal(2, testProcessor.measures.Count);
            Assert.Equal("testMeasure", testProcessor.measures[1].Item1);
            Assert.Equal("testMeasure", testProcessor.measures[0].Item1);

            Assert.Equal(meter.GetLabelSet(labels1), testProcessor.measures[1].Item2);
            Assert.Equal(meter.GetLabelSet(labels2), testProcessor.measures[0].Item2);

            Assert.Contains(100, testProcessor.measures[1].Item3);
            Assert.Contains(10, testProcessor.measures[1].Item3);


            Assert.Contains(200, testProcessor.measures[0].Item3);
            Assert.Contains(20, testProcessor.measures[0].Item3);
        }
예제 #2
0
        public void DefaultMeterShouldBeCollectedAsWell()
        {
            var testProcessor = new TestMetricProcessor();
            var meterProvider = (MeterProviderSdk)Sdk.CreateMeterProvider(mb => mb.SetMetricProcessor(testProcessor));
            var controller    = meterProvider.PushMetricController;
            var defaultMeter  = meterProvider.GetMeter(string.Empty) as MeterSdk;

            // Record some metrics using default meter
            var testCounter = defaultMeter.CreateInt64Counter("testCounter");
            var context     = default(SpanContext);
            var labels      = LabelSet.BlankLabelSet;

            testCounter.Add(context, 100, labels);
            testCounter.Add(context, 10, labels);

            // Collect using PushMetricController
            var sw             = Stopwatch.StartNew();
            var metricToExport = controller.Collect(sw).ToList();

            Assert.Single(metricToExport);
            Assert.Single(metricToExport[0].Data);
            Assert.Equal(110, (metricToExport[0].Data[0] as Int64SumData).Sum);
        }