public void can_clear_payload() { 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); var sr = new StringWriter(); payloadBuilder.Payload().Format(sr); sr.ToString().Should().NotBeNullOrWhiteSpace(); payloadBuilder.Clear(); payloadBuilder.Payload().Should().BeNull(); }
public void MeterCanCount() { var meter = new MeterMetric(); meter.Mark(); meter.Value.Count.Should().Be(1L); meter.Mark(); meter.Value.Count.Should().Be(2L); meter.Mark(8L); meter.Value.Count.Should().Be(10L); }
public void MeterCanComputeRates() { TestClock clock = new TestClock(); TestScheduler scheduler = new TestScheduler(clock); var meter = new MeterMetric(clock, scheduler); meter.Mark(); clock.Advance(TimeUnit.Seconds, 10); meter.Mark(2); var value = meter.Value; value.MeanRate.Should().BeApproximately(0.3, 0.001); value.OneMinuteRate.Should().BeApproximately(0.1840, 0.001); value.FiveMinuteRate.Should().BeApproximately(0.1966, 0.001); value.FifteenMinuteRate.Should().BeApproximately(0.1988, 0.001); }
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 expected = StringReporterSamples.Meters.ExtractStringReporterSampleFromResourceFile(); var clock = new TestClock(); var sr = new StringReporter(); var metric = new MeterMetric(clock, new TestTaskScheduler(clock)); metric.Mark(1); sr.ReportMetric("test", new MeterValueSource("meter_name", metric, Unit.None, TimeUnit.Milliseconds, MetricTags.None)); AssertReportResult(sr.Result, expected); }
public void MeterCanCalculateMeanRate() { TestClock clock = new TestClock(); TestScheduler scheduler = new TestScheduler(clock); var meter = new MeterMetric(clock, scheduler); meter.Mark(); clock.Advance(TimeUnit.Seconds, 1); meter.Value.MeanRate.Should().Be(1); clock.Advance(TimeUnit.Seconds, 1); meter.Value.MeanRate.Should().Be(0.5); }
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 RegisterBytesSent(long bytesAmount) { _bytesSentMetric.Mark(bytesAmount); }
public void RegisterBytesReceived(long bytesAmount) { _bytesReceivedMetric.Mark(bytesAmount); }
public void MeterMetric_CanCount() { meter.Mark(); meter.Value.Count.Should().Be(1L); meter.Mark(); meter.Value.Count.Should().Be(2L); meter.Mark(8L); meter.Value.Count.Should().Be(10L); }
private static void RegisterJsonStreamSerializationMetrics(int size) { JsonStreamSerializationsPerSecond.Mark(); JsonStreamSerializedBytesPerSecond.Mark(size); }
static void Main(string[] args) { var options = new Options(); if (!Parser.Default.ParseArguments(args, options, (t, o) => { target = t; targetOptions = o as CommonOptions; })) { Console.WriteLine(new CommonOptions().GetUsage()); Environment.Exit(CommandLine.Parser.DefaultExitCodeFail); } BenchmarkRunner.DefaultTotalSeconds = targetOptions.Seconds; BenchmarkRunner.DefaultMaxThreads = targetOptions.MaxThreads; //Metric.Config.WithHttpEndpoint("http://localhost:1234/"); switch (target) { case "noop": BenchmarkRunner.Run("Noop", () => { }); break; case "counter": var counter = new CounterMetric(); BenchmarkRunner.Run("Counter", () => counter.Increment()); break; case "meter": var meter = new MeterMetric(); BenchmarkRunner.Run("Meter", () => meter.Mark()); break; case "histogram": var histogram = new HistogramMetric(); BenchmarkRunner.Run("Histogram", () => histogram.Update(137)); break; case "timer": var timer = new TimerMetric(); BenchmarkRunner.Run("Timer", () => timer.Record(1, TimeUnit.Milliseconds)); break; case "hdrtimer": var hdrTimer = new TimerMetric(new HdrHistogramReservoir()); BenchmarkRunner.Run("HDR Timer", () => hdrTimer.Record(1, TimeUnit.Milliseconds)); break; case "ewma": var ewma = EWMA.OneMinuteEWMA(); BenchmarkRunner.Run("EWMA", () => ewma.Update(1)); break; case "edr": var edr = new ExponentiallyDecayingReservoir(); BenchmarkRunner.Run("EDR", () => edr.Update(1)); break; case "hdr": var hdrReservoir = new HdrHistogramReservoir(); BenchmarkRunner.Run("HDR Recorder", () => hdrReservoir.Update(1)); break; case "uniform": var uniform = new UniformReservoir(); BenchmarkRunner.Run("Uniform", () => uniform.Update(1)); break; case "sliding": var sliding = new SlidingWindowReservoir(); BenchmarkRunner.Run("Sliding", () => sliding.Update(1)); break; case "timerimpact": var load = new WorkLoad(); BenchmarkRunner.Run("WorkWithoutTimer", () => load.DoSomeWork(), iterationsChunk: 10); BenchmarkRunner.Run("WorkWithTimer", () => load.DoSomeWorkWithATimer(), iterationsChunk: 10); break; } }
private static void RegisterJsonStreamDeserializationMetrics(int numberOfReadBytes) { JsonStreamDeserializationsPerSecond.Mark(); JsonStreamDeserializedBytesPerSecond.Mark(numberOfReadBytes); }
public void can_calculate_mean_rate() { _meter.Mark(); _clock.Advance(TimeUnit.Seconds, 1); _meter.Value.MeanRate.Should().Be(1); _clock.Advance(TimeUnit.Seconds, 1); _meter.Value.MeanRate.Should().Be(0.5); }