public void can_report_gauges() { var metricsMock = new Mock <IMetrics>(); var gauge = new FunctionGauge(() => 1); var gaugeValueSource = new GaugeValueSource( "test gauge", ConstantValue.Provider(gauge.Value), Unit.None, MetricTags.Empty); var payloadBuilder = new LineProtocolPayloadBuilder(); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", gaugeValueSource); payloadBuilder.PayloadFormatted().Should().Be("test__test_gauge value=1\n"); }
public void can_report_meters() { var metricsMock = new Mock <IMetrics>(); var clock = new TestClock(); var meter = new MeterMetric(clock); meter.Mark(1); var meterValueSource = new MeterValueSource("test meter", ConstantValue.Provider(meter.Value), Unit.None, TimeUnit.Milliseconds, MetricTags.None); var payloadBuilder = new LineProtocolPayloadBuilder(); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", meterValueSource); payloadBuilder.PayloadFormatted().Should().Be("test__test_meter count.meter=1i,rate1m=0,rate5m=0,rate15m=0,rate.mean=Infinity\n"); }
public void can_report_counters() { var metricsMock = new Mock <IMetrics>(); var counter = new CounterMetric(); counter.Increment(1); var counterValueSource = new CounterValueSource("test counter", ConstantValue.Provider(counter.Value), Unit.None, MetricTags.None); 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_apdex() { var metricsMock = new Mock <IMetrics>(); var clock = new TestClock(); var gauge = new DefaultApdexMetric(_defaultReservoir, clock, false); var apdexValueSource = new ApdexValueSource( "test apdex", ConstantValue.Provider(gauge.Value), MetricTags.Empty, false); var payloadBuilder = new LineProtocolPayloadBuilder(); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", apdexValueSource); payloadBuilder.PayloadFormatted().Should().Be("test__test_apdex samples=0i,score=0,satisfied=0i,tolerating=0i,frustrating=0i\n"); }
public IMetricReporter CreateMetricReporter(string name, ILoggerFactory loggerFactory) { var lineProtocolClient = new DefaultLineProtocolClient( loggerFactory, _settings.InfluxDbSettings, _settings.HttpPolicy); var payloadBuilder = new LineProtocolPayloadBuilder(_settings.DataKeys, _settings.MetricNameFormatter); return(new ReportRunner <LineProtocolPayload>( async p => { var result = await lineProtocolClient.WriteAsync(p.Payload()); return result.Success; }, payloadBuilder, _settings.ReportInterval, name, loggerFactory)); }
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(_settings.DataKeys, _settings.MetricNameFormatter); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", counterValueSource); payloadBuilder.PayloadFormatted(false).Should().Be("test__test_counter,mtype=counter,unit=none value=1i\n"); }
public void can_report_histograms() { var metricsMock = new Mock <IMetrics>(); var histogram = new HistogramMetric(SamplingType.ExponentiallyDecaying, 1028, 0.015); histogram.Update(1000, "client1"); var histogramValueSource = new HistogramValueSource("test histogram", ConstantValue.Provider(histogram.Value), Unit.None, MetricTags.None); var payloadBuilder = new LineProtocolPayloadBuilder(); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", histogramValueSource); payloadBuilder.PayloadFormatted() .Should() .Be( "test__test_histogram samples=1i,last=1000,count.hist=1i,min=1000,max=1000,mean=1000,median=1000,stddev=0,p999=1000,p99=1000,p98=1000,p95=1000,p75=1000,user.last=\"client1\",user.min=\"client1\",user.max=\"client1\"\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 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_apdex__when_multidimensional() { var metricsMock = new Mock <IMetrics>(); var clock = new TestClock(); var gauge = new DefaultApdexMetric(_defaultReservoir, clock, false); var apdexValueSource = new ApdexValueSource( "test apdex" + MultidimensionalMetricNameSuffix, ConstantValue.Provider(gauge.Value), _tags, resetOnReporting: false); var payloadBuilder = new LineProtocolPayloadBuilder(); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", apdexValueSource); payloadBuilder.PayloadFormatted(). Should(). Be("test__test_apdex,host=server1,env=staging samples=0i,score=0,satisfied=0i,tolerating=0i,frustrating=0i\n"); }
public void can_report_apdex_with_tags() { var metricsMock = new Mock <IMetrics>(); var clock = new TestClock(); var gauge = new DefaultApdexMetric(_defaultReservoir, clock, false); var apdexValueSource = new ApdexValueSource( "test apdex", ConstantValue.Provider(gauge.Value), new MetricTags(new[] { "key1", "key2" }, new[] { "value1", "value2" }), false); var payloadBuilder = new LineProtocolPayloadBuilder(_settings.DataKeys, _settings.MetricNameFormatter); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", apdexValueSource); payloadBuilder.PayloadFormatted(false). Should(). Be("test__test_apdex,key1=value1,key2=value2,mtype=apdex,unit=result samples=0i,score=0,satisfied=0i,tolerating=0i,frustrating=0i\n"); }
public void can_report_timers() { var metricsMock = new Mock <IMetrics>(); var clock = new TestClock(); var timer = new TimerMetric(SamplingType.ExponentiallyDecaying, 1028, 0.015, clock); timer.Record(1000, TimeUnit.Milliseconds, "client1"); var timerValueSource = new TimerValueSource("test timer", ConstantValue.Provider(timer.Value), Unit.None, TimeUnit.Milliseconds, TimeUnit.Milliseconds, MetricTags.None); var payloadBuilder = new LineProtocolPayloadBuilder(); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", timerValueSource); payloadBuilder.PayloadFormatted() .Should() .Be( "test__test_timer count.meter=1i,rate1m=0,rate5m=0,rate15m=0,rate.mean=Infinity,samples=1i,last=1000,count.hist=1i,min=1000,max=1000,mean=1000,median=1000,stddev=0,p999=1000,p99=1000,p98=1000,p95=1000,p75=1000,user.last=\"client1\",user.min=\"client1\",user.max=\"client1\"\n"); }
public void can_report_meters_with_items() { var metricsMock = new Mock <IMetrics>(); var clock = new TestClock(); var meter = new MeterMetric(clock); meter.Mark(new MetricItem().With("item1", "value1"), 1); meter.Mark(new MetricItem().With("item2", "value2"), 1); var meterValueSource = new MeterValueSource("test meter", ConstantValue.Provider(meter.Value), Unit.None, TimeUnit.Milliseconds, MetricTags.None); var payloadBuilder = new LineProtocolPayloadBuilder(); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", meterValueSource); payloadBuilder.PayloadFormatted() .Should() .Be( "test__test_meter__items,item=item1:value1 count.meter=1i,rate1m=0,rate5m=0,rate15m=0,rate.mean=Infinity,percent=50\ntest__test_meter__items,item=item2:value2 count.meter=1i,rate1m=0,rate5m=0,rate15m=0,rate.mean=Infinity,percent=50\ntest__test_meter count.meter=2i,rate1m=0,rate5m=0,rate15m=0,rate.mean=Infinity\n"); }
public void can_report_meters() { var metricsMock = new Mock <IMetrics>(); var clock = new TestClock(); var meter = new DefaultMeterMetric(clock); meter.Mark(1); var meterValueSource = new MeterValueSource( "test meter", ConstantValue.Provider(meter.Value), Unit.None, TimeUnit.Milliseconds, MetricTags.Empty); var payloadBuilder = new LineProtocolPayloadBuilder(_settings.DataKeys, _settings.MetricNameFormatter); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", meterValueSource); payloadBuilder.PayloadFormatted(false).Should().Be("test__test_meter,mtype=meter,unit=none,unit_rate=ms count.meter=1i,rate1m=0,rate5m=0,rate15m=0\n"); }
public void can_report_apdex_with_tags_when_multidimensional() { var metricsMock = new Mock <IMetrics>(); var clock = new TestClock(); var gauge = new DefaultApdexMetric(_defaultReservoir, clock, false); var apdexValueSource = new ApdexValueSource( "test apdex" + MultidimensionalMetricNameSuffix, ConstantValue.Provider(gauge.Value), MetricTags.Concat(_tags, new MetricTags("anothertag", "thevalue")), resetOnReporting: false); var payloadBuilder = new LineProtocolPayloadBuilder(_settings.DataKeys, _settings.MetricNameFormatter); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", apdexValueSource); payloadBuilder.PayloadFormatted(false). Should(). Be( "test__test_apdex,host=server1,env=staging,anothertag=thevalue,mtype=apdex,unit=result samples=0i,score=0,satisfied=0i,tolerating=0i,frustrating=0i\n"); }
public void can_report_counter_with_items_with_option_not_to_report_percentage() { var metricsMock = new Mock <IMetrics>(); var counter = new CounterMetric(); counter.Increment(new MetricItem().With("item1", "value1"), 1); counter.Increment(new MetricItem().With("item2", "value2"), 1); var counterValueSource = new CounterValueSource("test counter", ConstantValue.Provider(counter.Value), Unit.None, MetricTags.None, 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"); }
public void can_report_histograms_when_multidimensional() { var metricsMock = new Mock <IMetrics>(); var histogram = new DefaultHistogramMetric(_defaultReservoir); histogram.Update(1000, "client1"); var histogramValueSource = new HistogramValueSource( "test histogram" + MultidimensionalMetricNameSuffix, ConstantValue.Provider(histogram.Value), Unit.None, _tags); var payloadBuilder = new LineProtocolPayloadBuilder(); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", histogramValueSource); payloadBuilder.PayloadFormatted(). Should(). Be( "test__test_histogram,host=server1,env=staging samples=1i,last=1000,count.hist=1i,min=1000,max=1000,mean=1000,median=1000,stddev=0,p999=1000,p99=1000,p98=1000,p95=1000,p75=1000,user.last=\"client1\",user.min=\"client1\",user.max=\"client1\"\n"); }
public void can_report_histograms() { var metricsMock = new Mock <IMetrics>(); var histogram = new DefaultHistogramMetric(_defaultReservoir); histogram.Update(1000, "client1"); var histogramValueSource = new HistogramValueSource( "test histogram", ConstantValue.Provider(histogram.Value), Unit.None, MetricTags.Empty); var payloadBuilder = new LineProtocolPayloadBuilder(_settings.DataKeys, _settings.MetricNameFormatter); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", histogramValueSource); payloadBuilder.PayloadFormatted(false). Should(). Be( "test__test_histogram,mtype=histogram,unit=none samples=1i,last=1000,count.hist=1i,sum=1000,min=1000,max=1000,mean=1000,median=1000,stddev=0,p999=1000,p99=1000,p98=1000,p95=1000,p75=1000,user.last=\"client1\",user.min=\"client1\",user.max=\"client1\"\n"); }
public void can_report_meters_when_multidimensional() { var metricsMock = new Mock <IMetrics>(); 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); var payloadBuilder = new LineProtocolPayloadBuilder(); var reporter = CreateReporter(payloadBuilder); reporter.StartReportRun(metricsMock.Object); reporter.ReportMetric("test", meterValueSource); payloadBuilder.PayloadFormatted(). Should(). Be("test__test_meter,host=server1,env=staging count.meter=1i,rate1m=0,rate5m=0,rate15m=0\n"); }
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"); }
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"); }
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"); }