示例#1
0
        public async Task Can_report_counter_with_items_and_tags()
        {
            // Arrange
            var expected =
                "{\"series\":[{\"metric\":\"test.test_counter__items.counter.total\",\"points\":[[1483232461,1]],\"type\":\"count\",\"interval\":10,\"tags\":[\"key1:value1\",\"key2:value2\",\"item:item1:value1\",\"unit:none\"]},{\"metric\":\"test.test_counter__items.counter.percent\",\"points\":[[1483232461,50]],\"type\":\"count\",\"interval\":10,\"tags\":[\"key1:value1\",\"key2:value2\",\"item:item1:value1\",\"unit:none\"]},{\"metric\":\"test.test_counter__items.counter.total\",\"points\":[[1483232461,1]],\"type\":\"count\",\"interval\":10,\"tags\":[\"key1:value1\",\"key2:value2\",\"item:item2:value2\",\"unit:none\"]},{\"metric\":\"test.test_counter__items.counter.percent\",\"points\":[[1483232461,50]],\"type\":\"count\",\"interval\":10,\"tags\":[\"key1:value1\",\"key2:value2\",\"item:item2:value2\",\"unit:none\"]},{\"metric\":\"test.test_counter.counter.value\",\"points\":[[1483232461,2]],\"type\":\"count\",\"interval\":10,\"tags\":[\"key1:value1\",\"key2:value2\",\"unit:none\"]}]}";
            var counter = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }));

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), FlushInterval, expected);
        }
示例#2
0
        public void Can_report_counter_with_items_and_tags()
        {
            // Arrange
            var expected =
                "test__test_counter__items,key1=value1,key2=value2,item=item1:value1,mtype=counter,unit=none total=1i,percent=50 1483232461000000000\ntest__test_counter__items,key1=value1,key2=value2,item=item2:value2,mtype=counter,unit=none total=1i,percent=50 1483232461000000000\ntest__test_counter,key1=value1,key2=value2,mtype=counter,unit=none value=2i 1483232461000000000\n";
            var counter = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }));

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void Can_report_counter_with_items_and_tags()
        {
            // Arrange
            var expected =
                "counter.test.test_counter-SetItem.key1.value1.key2.value2.item.item1_value1.Total 1 1483232461\ncounter.test.test_counter-SetItem.key1.value1.key2.value2.item.item1_value1.Percent 50.00 1483232461\ncounter.test.test_counter-SetItem.key1.value1.key2.value2.item.item2_value2.Total 1 1483232461\ncounter.test.test_counter-SetItem.key1.value1.key2.value2.item.item2_value2.Percent 50.00 1483232461\ncounter.test.test_counter.key1.value1.key2.value2.Value 2 1483232461\n";
            var counter = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }));

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
示例#4
0
        public async Task Counter_with_custom_sample_rate_with_multiple_data_point_should_sample_correctly()
        {
            // Arrange
            var sources   = new List <MetricsDataValueSource>();
            var timeStamp = _timestamp;

            var expected =
                "test.test_counter.counter.value:4|c|@0.5|#unit:none,timestamp:";

            // Act
            for (var i = 0; i < 10000; ++i)
            {
                sources.Add(CreateMetricsDataValueSource(ref timeStamp));
            }
            var emittedData = (await Serialize(sources, 0.5)).Split('\n');

            // Assert
            (emittedData.Length > 4500 && emittedData.Length < 5500).Should().BeTrue();
            emittedData[0].Should().StartWith(expected);

            MetricsDataValueSource CreateMetricsDataValueSource(ref DateTime timestamp)
            {
                var counter = new DefaultCounterMetric();

                counter.Increment(1);
                counter.Increment(1);
                counter.Increment(1);
                counter.Increment(1);
                var counterValueSource = new CounterValueSource(
                    "test counter",
                    ConstantValue.Provider(counter.Value),
                    Unit.None,
                    MetricTags.Empty);
                var valueSource = CreateValueSource("test", counters: counterValueSource);
                var result      = new MetricsDataValueSource(timestamp, new[] { valueSource });

                timestamp += TimeSpan.FromSeconds(1);
                return(result);
            }
        }
        public void Can_report_counter_with_items_tags_when_multidimensional()
        {
            // Arrange
            var expected =
                "env.staging.counter.test.test_counter-SetItem.host.server1.key1.value1.key2.value2.item.item1_value1.Total 1 1483232461\nenv.staging.counter.test.test_counter-SetItem.host.server1.key1.value1.key2.value2.item.item1_value1.Percent 50.00 1483232461\nenv.staging.counter.test.test_counter-SetItem.host.server1.key1.value1.key2.value2.item.item2_value2.Total 1 1483232461\nenv.staging.counter.test.test_counter-SetItem.host.server1.key1.value1.key2.value2.item.item2_value2.Percent 50.00 1483232461\nenv.staging.counter.test.test_counter.host.server1.key1.value1.key2.value2.value 2 1483232461\n";
            var counterTags = new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" });
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Concat(_tags, counterTags));

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void can_report_counter_with_items_and_tags()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }));
            var items = CreateReporterAndPayloadBuilder();

            items.Item1.StartReportRun(metricsMock.Object);
            items.Item1.ReportMetric("test", counterValueSource);

            items.Item2.PayloadFormatted().
            Should().
            Be(
                "test__test_counter__items key1=value1 key2=value2 item=item1:value1 mtype=counter unit=none total=1i percent=50" + Environment.NewLine + "test__test_counter__items key1=value1 key2=value2 item=item2:value2 mtype=counter unit=none total=1i percent=50" + Environment.NewLine + "test__test_counter key1=value1 key2=value2 mtype=counter unit=none value=2i" + Environment.NewLine);
        }
示例#7
0
        public async Task Can_report_counter_with_items_tags_when_multidimensional()
        {
            // Arrange
            var expected =
                "test__test_counter__items,host=server1,env=staging,key1=value1,key2=value2,item=item1:value1,mtype=counter,unit=none total=1i,percent=50 1483232461000000000\ntest__test_counter__items,host=server1,env=staging,key1=value1,key2=value2,item=item2:value2,mtype=counter,unit=none total=1i,percent=50 1483232461000000000\ntest__test_counter,host=server1,env=staging,key1=value1,key2=value2,mtype=counter,unit=none value=2i 1483232461000000000\n";
            var counterTags = new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" });
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Concat(_tags, counterTags));

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void Can_report_counter_with_items_with_option_not_to_report_percentage()
        {
            // Arrange
            var expected =
                "test__test_counter__items,item=item1:value1,mtype=counter,unit=none total=1i 1483232461000000000\ntest__test_counter__items,item=item2:value2,mtype=counter,unit=none total=1i 1483232461000000000\ntest__test_counter,mtype=counter,unit=none value=2i 1483232461000000000\n";
            var counter = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty,
                reportItemPercentages: false);

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void Can_report_counter_with_items_with_option_not_to_report_percentage()
        {
            // Arrange
            var expected =
                "counter.test.test_counter-SetItem.item.item1_value1.Total 1 1483232461\ncounter.test.test_counter-SetItem.item.item2_value2.Total 1 1483232461\ncounter.test.test_counter.value 2 1483232461\n";
            var counter = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty,
                reportItemPercentages: false);

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
示例#10
0
        public void can_report_counter_with_items()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty);
            var payloadBuilder = new LineProtocolPayloadBuilder(_settings.DataKeys, _settings.MetricNameFormatter);
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", counterValueSource);

            payloadBuilder.PayloadFormatted(false).
            Should().
            Be(
                "test__test_counter__items,item=item1:value1,mtype=counter,unit=none total=1i,percent=50\ntest__test_counter__items,item=item2:value2,mtype=counter,unit=none total=1i,percent=50\ntest__test_counter,mtype=counter,unit=none value=2i\n");
        }
示例#11
0
        public void can_report_counter_with_items_with_option_not_to_report_percentage()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty,
                reportItemPercentages: false);
            var items = CreateReporterAndPayloadBuilder();

            items.Item1.StartReportRun(metricsMock.Object);
            items.Item1.ReportMetric("test", counterValueSource);

            items.Item2.PayloadFormatted().
            Should().
            Be(
                "test__test_counter__items item=item1:value1 mtype=counter unit=none total=1i" + Environment.NewLine + "test__test_counter__items item=item2:value2 mtype=counter unit=none total=1i" + Environment.NewLine + "test__test_counter mtype=counter unit=none value=2i" + Environment.NewLine);
        }
示例#12
0
        public void can_report_counter_with_items_tags_when_multidimensional()
        {
            var counterTags = new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" });
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Concat(_tags, counterTags));
            var items = CreateReporterAndPayloadBuilder();

            items.Item1.StartReportRun(metricsMock.Object);
            items.Item1.ReportMetric("test", counterValueSource);

            items.Item2.PayloadFormatted().
            Should().
            Be(
                "test__test_counter__items host=server1 env=staging key1=value1 key2=value2 item=item1:value1 mtype=counter unit=none total=1i percent=50" + Environment.NewLine + "test__test_counter__items host=server1 env=staging key1=value1 key2=value2 item=item2:value2 mtype=counter unit=none total=1i percent=50" + Environment.NewLine + "test__test_counter host=server1 env=staging key1=value1 key2=value2 mtype=counter unit=none value=2i" + Environment.NewLine);
        }
        public void can_report_counter_with_items_and_tags()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }));
            var payloadBuilder = new LineProtocolPayloadBuilder();
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", counterValueSource);

            payloadBuilder.PayloadFormatted().
            Should().
            Be(
                "test__test_counter__items,key1=value1,key2=value2,item=item1:value1 total=1i,percent=50\ntest__test_counter__items,key1=value1,key2=value2,item=item2:value2 total=1i,percent=50\ntest__test_counter,key1=value1,key2=value2 value=2i\n");
        }
示例#14
0
        public void can_report_counter_with_items()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty);
            var payloadBuilder = new TestPayloadBuilder();
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", counterValueSource);

            payloadBuilder.PayloadFormatted().
            Should().
            Be(
                "test__test_counter__items item=item1:value1 mtype=counter total=1i percent=50" + Environment.NewLine + "test__test_counter__items item=item2:value2 mtype=counter total=1i percent=50" + Environment.NewLine + "test__test_counter mtype=counter value=2i" + Environment.NewLine);
        }
        public void can_report_counter_with_items_tags_when_multidimensional()
        {
            var counterTags = new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" });
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Concat(_tags, counterTags));
            var payloadBuilder = new LineProtocolPayloadBuilder();
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", counterValueSource);

            payloadBuilder.PayloadFormatted().
            Should().
            Be(
                "test__test_counter__items,host=server1,env=staging,key1=value1,key2=value2,item=item1:value1 total=1i,percent=50\ntest__test_counter__items,host=server1,env=staging,key1=value1,key2=value2,item=item2:value2 total=1i,percent=50\ntest__test_counter,host=server1,env=staging,key1=value1,key2=value2 value=2i\n");
        }
        public void can_report_counter_with_items_with_option_not_to_report_percentage()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty,
                reportItemPercentages: false);
            var payloadBuilder = new LineProtocolPayloadBuilder();
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", counterValueSource);

            payloadBuilder.PayloadFormatted().
            Should().
            Be(
                "test__test_counter__items,item=item1:value1 total=1i\ntest__test_counter__items,item=item2:value2 total=1i\ntest__test_counter value=2i\n");
        }
示例#17
0
        public async Task Can_report_counter_with_items_with_option_not_to_report_percentage()
        {
            // Arrange
            var expected =
                "test.test_counter__items.counter.item1:value1.total:1|c|#unit:none,timestamp:1483232461\n" +
                "test.test_counter__items.counter.item2:value2.total:1|c|#unit:none,timestamp:1483232461\n" +
                "test.test_counter.counter.value:2|c|#unit:none,timestamp:1483232461";
            var counter = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty,
                reportItemPercentages: false);

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void can_report_counter_with_items_and_tags()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(new MetricSetItem("item1", "value1"), 1);
            counter.Increment(new MetricSetItem("item2", "value2"), 1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }));
            var payloadBuilder = new GraphitePayloadBuilder(_settings.GraphiteSettings.MetricNameFormatter, _settings.DataKeys, Origin);

            var reporter = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", counterValueSource);

            payloadBuilder.PayloadFormatted().
            Should().
            Be(
                "counter.test.test_counter-SetItem.key1.value1.key2.value2.item.item1_value1.Total 1 0\ncounter.test.test_counter-SetItem.key1.value1.key2.value2.item.item1_value1.Percent 50.00 0\ncounter.test.test_counter-SetItem.key1.value1.key2.value2.item.item2_value2.Total 1 0\ncounter.test.test_counter-SetItem.key1.value1.key2.value2.item.item2_value2.Percent 50.00 0\ncounter.test.test_counter.key1.value1.key2.value2.value 2 0\n");
        }
示例#19
0
        public void can_report_counters__when_multidimensional()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(counter.Value),
                Unit.None,
                _tags);
            var items = CreateReporterAndPayloadBuilder();

            items.Item1.StartReportRun(metricsMock.Object);
            items.Item1.ReportMetric("test", counterValueSource);

            items.Item2.PayloadFormatted().Should().Be("test__test_counter host=server1 env=staging mtype=counter unit=none value=1i" + Environment.NewLine);
        }
示例#20
0
        public void can_report_counters()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty);
            var items = CreateReporterAndPayloadBuilder();

            items.Item1.StartReportRun(metricsMock.Object);
            items.Item1.ReportMetric("test", counterValueSource);

            items.Item2.PayloadFormatted().Should().Be("test__test_counter mtype=counter unit=none value=1i" + Environment.NewLine);
        }
        public void Can_report_counters__when_multidimensional()
        {
            // Arrange
            var expected = "test__test_counter,host=server1,env=staging,mtype=counter,unit=none value=1i 1483232461000000000\n";
            var counter  = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(counter.Value),
                Unit.None,
                _tags);

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void Can_report_counters()
        {
            // Arrange
            var expected = "test__test_counter,mtype=counter,unit=none value=1i 1483232461000000000\n";
            var counter  = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty);

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public async Task Can_report_counters__when_multidimensional()
        {
            // Arrange
            var expected = "{\"series\":[{\"metric\":\"test.test_counter.counter.value\",\"points\":[[1483232461,1]],\"type\":\"count\",\"interval\":10,\"tags\":[\"host:server1\",\"env:staging\",\"unit:none\"]}]}";
            var counter  = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(counter.Value),
                Unit.None,
                _tags);

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), FlushInterval, expected);
        }
示例#24
0
        public async Task Can_report_counters()
        {
            // Arrange
            var expected = "test.test_counter.counter.value:1|c|#unit:none,timestamp:1483232461";
            var counter  = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty);

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
示例#25
0
        public async Task Can_report_counters__when_multidimensional()
        {
            // Arrange
            var expected = "env.staging.counter.test.test_counter.host.server1.Value 1 1483232461\n";
            var counter  = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(counter.Value),
                Unit.None,
                _tags);

            // Act
            var valueSource = CreateValueSource("test", counters: counterValueSource);

            // Assert
            await AssertExpectedLineProtocolString(new MetricsDataValueSource(_timestamp, new[] { valueSource }), expected);
        }
        public void can_report_counters__when_multidimensional()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(counter.Value),
                Unit.None,
                _tags);
            var payloadBuilder = new LineProtocolPayloadBuilder();
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", counterValueSource);

            payloadBuilder.PayloadFormatted().Should().Be("test__test_counter,host=server1,env=staging value=1i\n");
        }
        public void can_report_counters()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty);
            var payloadBuilder = new LineProtocolPayloadBuilder();
            var reporter       = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", counterValueSource);

            payloadBuilder.PayloadFormatted().Should().Be("test__test_counter value=1i\n");
        }
        public void can_report_counters__when_multidimensional()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter" + MultidimensionalMetricNameSuffix,
                ConstantValue.Provider(counter.Value),
                Unit.None,
                _tags);
            var payloadBuilder = new GraphitePayloadBuilder(_settings.GraphiteSettings.MetricNameFormatter, _settings.DataKeys, Origin);

            var reporter = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", counterValueSource);

            payloadBuilder.PayloadFormatted().Should().Be("env.staging.counter.test.test_counter.host.server1.value 1 0\n");
        }
        public void can_report_counters()
        {
            var metricsMock = new Mock <IMetrics>();
            var counter     = new DefaultCounterMetric();

            counter.Increment(1);
            var counterValueSource = new CounterValueSource(
                "test counter",
                ConstantValue.Provider(counter.Value),
                Unit.None,
                MetricTags.Empty);
            var payloadBuilder = new GraphitePayloadBuilder(_settings.GraphiteSettings.MetricNameFormatter, _settings.DataKeys, Origin);

            var reporter = CreateReporter(payloadBuilder);

            reporter.StartReportRun(metricsMock.Object);
            reporter.ReportMetric("test", counterValueSource);

            payloadBuilder.PayloadFormatted().Should().Be("counter.test.test_counter.value 1 0\n");
        }
示例#30
0
        public void Can_be_incremented_on_multiple_threads()
        {
            const int  threadCount = 16;
            const long iterations  = 1000 * 100;

            var threads = new List <Thread>();
            var tcs     = new TaskCompletionSource <int>();

            for (var i = 0; i < threadCount; i++)
            {
                threads.Add(
                    new Thread(
                        s =>
                {
                    tcs.Task.Wait();
                    for (long j = 0; j < iterations; j++)
                    {
                        _counter.Increment();
                    }
                }));
            }

            threads.ForEach(t => t.Start());
            tcs.SetResult(0);
            threads.ForEach(t => t.Join());

            _counter.Value.Count.Should().Be(threadCount * iterations);
        }