Exemplo n.º 1
0
        public async Task Can_report_meters_when_multidimensional()
        {
            // Arrange
            var expected =
                "{\"series\":[{\"metric\":\"test.test_meter.meter.count.meter\",\"points\":[[1483232461,1]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter.meter.rate1m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter.meter.rate5m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter.meter.rate15m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_rate:ms\"]}]}";
            var clock = new TestClock();
            var meter = new DefaultMeterMetric(clock);

            meter.Mark(1);
            var meterValueSource = new MeterValueSource(
                "test meter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(meter.Value),
                Unit.None,
                TimeUnit.Milliseconds,
                _tags);

            // Act
            var valueSource = CreateValueSource("test", meters: meterValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), FlushInterval, expected);
        }
        public async Task Can_report_timers__when_multidimensional()
        {
            // Arrange
            var expected =
                "{\"series\":[{\"metric\":\"test.test_timer.timer.count.meter\",\"points\":[[1483232461,1]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.rate1m\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.rate5m\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.rate15m\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.samples\",\"points\":[[1483232461,1]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.last\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.count.hist\",\"points\":[[1483232461,1]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.sum\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.min\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.max\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.mean\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.median\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.stddev\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.p999\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.p99\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.p98\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.p95\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.p75\",\"points\":[[1483232461,1000]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.user.last\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.user.min\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]},{\"metric\":\"test.test_timer.timer.user.max\",\"points\":[[1483232461,0]],\"type\":\"gauge\",\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\",\"unit_dur:ms\",\"unit_rate:ms\"]}]}";
            var clock = new TestClock();
            var timer = new DefaultTimerMetric(_defaultReservoir, clock);

            timer.Record(1000, TimeUnit.Milliseconds, "client1");
            var timerValueSource = new TimerValueSource(
                "test timer" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(timer.Value),
                Unit.None,
                TimeUnit.Milliseconds,
                TimeUnit.Milliseconds,
                _tags);

            // Act
            var valueSource = CreateValueSource("test", timers: timerValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), FlushInterval, expected);
        }
        public async Task Can_report_meters_with_items()
        {
            // Arrange
            var expected =
                "{\"series\":[{\"metric\":\"test.test_meter__items.meter.count.meter\",\"points\":[[1483232461,1]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"item:item1:value1\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter__items.meter.rate1m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"item:item1:value1\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter__items.meter.rate5m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"item:item1:value1\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter__items.meter.rate15m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"item:item1:value1\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter__items.meter.percent\",\"points\":[[1483232461,50]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"item:item1:value1\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter__items.meter.count.meter\",\"points\":[[1483232461,1]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"item:item2:value2\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter__items.meter.rate1m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"item:item2:value2\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter__items.meter.rate5m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"item:item2:value2\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter__items.meter.rate15m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"item:item2:value2\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter__items.meter.percent\",\"points\":[[1483232461,50]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"item:item2:value2\",\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter.meter.count.meter\",\"points\":[[1483232461,2]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter.meter.rate1m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter.meter.rate5m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"unit:none\",\"unit_rate:ms\"]},{\"metric\":\"test.test_meter.meter.rate15m\",\"points\":[[1483232461,0]],\"type\":\"rate\",\"interval\":10,\"tags\":[\"unit:none\",\"unit_rate:ms\"]}]}";
            var clock = new TestClock();
            var meter = new DefaultMeterMetric(clock);

            meter.Mark(new MetricSetItem("item1", "value1"), 1);
            meter.Mark(new MetricSetItem("item2", "value2"), 1);
            var meterValueSource = new MeterValueSource(
                "test meter",
                ConstantValue.Provider(meter.Value),
                Unit.None,
                TimeUnit.Milliseconds,
                MetricTags.Empty);

            // Act
            var valueSource = CreateValueSource("test", meters: meterValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), FlushInterval, expected);
        }