public void Min_WhenPassed8And9_Returns9() { var underTest = new HistogramMetric(HistogramMetric.SampleType.Uniform); underTest.Update(9); underTest.Update(8); Assert.AreEqual(8, underTest.Min); }
public void HistogramCanCount() { var histogram = new HistogramMetric(new UniformReservoir()); histogram.Update(1L); histogram.Value.Count.Should().Be(1); histogram.Update(1L); histogram.Value.Count.Should().Be(2); }
public void SampleMean_UsesSample() { var underTest = new HistogramMetric(new RejectEverythingAboveTenSample()); underTest.Update(5); underTest.Update(12); Assert.AreEqual(5, underTest.SampleMin); }
public void SampleMean_WhenPassed8And9_Returns8Point5() { var underTest = new HistogramMetric(HistogramMetric.SampleType.Uniform); underTest.Update(9); underTest.Update(8); Assert.AreEqual(8.5, underTest.SampleMean); }
public void SampleCount_WhenPassed8And9_Returns2() { var underTest = new HistogramMetric(HistogramMetric.SampleType.Uniform); underTest.Update(9); underTest.Update(8); Assert.AreEqual(2, underTest.SampleCount); }
public void can_report_histograms() { var expected = StringReporterSamples.Histograms.ExtractStringReporterSampleFromResourceFile(); var sr = new StringReporter(); var metric = new HistogramMetric(SamplingType.ExponentiallyDecaying, Constants.ReservoirSampling.DefaultSampleSize, Constants.ReservoirSampling.DefaultExponentialDecayFactor); metric.Update(1000, "value1"); metric.Update(2000, "value2"); sr.ReportMetric("test", new HistogramValueSource("histogram_name", metric, Unit.None, MetricTags.None)); AssertReportResult(sr.Result, expected); }
static void Main(string[] args) { try { var metrics = new Metrics(); //DataDogReporterConfigModel dataDogReporterConfigModel = new DataDogReporterConfigModel("appdev", 8125, "ApplicationName", "DomainName", "Development"); ITransport transport = new UdpTransport.Builder().WithPort(8125) .WithStatsdHost("appdev") .Build(); string host = "hostName"; string environment = "testEnv"; string[] path = { "ApplicationName", "DomainName" }; //IMetricNameFormatter formatter = new AppendMetricNameToPathFormatter(); IMetricNameFormatter formatter = new AppendMetricNameToPathFormatter(); var reporter = new DataDogReporter(metrics, transport, formatter, environment, host, path); reporter.Start(5, TimeUnit.Seconds); CounterMetric counter = metrics.Counter("test", "CounterMetric"); HistogramMetric histogramMetric = metrics.Histogram("test", "HistogramMetric"); GaugeMetric gaugeMetric = metrics.Gauge("test", "GaugeMetric", GetNumberOfUsersLoggedIn); var rand = new Random(); int runs = 0; while (runs < 1000) { System.Console.WriteLine("Loop " + (runs++) + " of 1000"); counter.Increment(); counter.Increment(); counter.Increment(); histogramMetric.Update(rand.Next(100)); histogramMetric.Update(rand.Next(100)); histogramMetric.Update(rand.Next(100)); histogramMetric.Update(rand.Next(100)); histogramMetric.Update(rand.Next(100)); Thread.Sleep(5000); } } catch (Exception e) { throw; } }
public void can_add_histgoram_values() { var histogramMetric = new HistogramMetric(SamplingType.ExponentiallyDecaying, 1028, 0.015); histogramMetric.Update(10000, "value"); var values = new Dictionary <string, object>(); histogramMetric.Value.AddHistogramValues(values); values.Keys.Should().Contain("samples"); values.Keys.Should().Contain("last"); values.Keys.Should().Contain("count.hist"); values.Keys.Should().Contain("min"); values.Keys.Should().Contain("max"); values.Keys.Should().Contain("mean"); values.Keys.Should().Contain("median"); values.Keys.Should().Contain("stddev"); values.Keys.Should().Contain("p999"); values.Keys.Should().Contain("p99"); values.Keys.Should().Contain("p98"); values.Keys.Should().Contain("p95"); values.Keys.Should().Contain("p75"); values.Keys.Should().Contain("user.last"); values.Keys.Should().Contain("user.min"); values.Keys.Should().Contain("user.max"); }
public void can_count() { _histogram.Update(1L); _histogram.Value.Count.Should().Be(1); _histogram.Update(1L); _histogram.Value.Count.Should().Be(2); }
public void HistogramMetric_CanCount() { histogram.Update(1L); histogram.Value.Count.Should().Be(1); histogram.Update(1L); histogram.Value.Count.Should().Be(2); }
public void Update(int documentSize, string docId) { TotalSize += documentSize; _stats.Update(documentSize); _topDocs[documentSize] = docId; if (_topDocs.Count > TopDocsLimit) { _topDocs.RemoveAt(TopDocsLimit); } }
public void BiasedHistogram_UsesSample() { var underTest = new HistogramMetric(HistogramMetric.SampleType.Biased); var sampleSize = 1028; var sample = Enumerable.Range(1, sampleSize).ToList(); foreach (var s in sample) { underTest.Update(s); } Assert.AreEqual(sampleSize, underTest.SampleCount); CollectionAssert.AreEquivalent(sample, underTest.Values); }
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 HistogramPercentages() { Metrics metrics = new Metrics(); HistogramMetric histogramMetric = metrics.Histogram("test", "HealthMetrics.Test.HistogramMetrics"); for (int x = 1; x <= 100; x++) { histogramMetric.Update(x); } double[] percentials = { 0.75, 0.99, 0.999 }; double[] results = histogramMetric.Percentiles(percentials); Assert.IsNotNull(results); Assert.AreEqual(3, results.Length); Assert.AreEqual(75, results[0], 1); Assert.AreEqual(99, results[1], 1); Assert.AreEqual(99, results[2], 1); }
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; } }