public void TestRecorders() { var collector = new MetricsCollector(); collector.Record("Recorder1", 1.0M, Unit.MilliSecond); collector.Record("Recorder1", 11.0M, Unit.MilliSecond); collector.Record("Recorder2", 2.0M, Unit.Second); collector.Record("Recorder2", 22.0M, Unit.Second); var metrics = collector.GetMetrics(); Assert.Equal(2, metrics.Count); RecorderUtils.AssertRecorderOutput(new[] { 1.0M, 11.0M }, Unit.MilliSecond, metrics["Recorder1"].FlushToString()); RecorderUtils.AssertRecorderOutput(new[] { 2.0M, 22.0M }, Unit.Second, metrics["Recorder2"].FlushToString()); }
public void FlushedMetricDoesNotHaveData() { var collector = new MetricsCollector(); collector.Record("counter", 10M, Unit.Minute); collector.FlushToString(); Assert.Equal(string.Empty, collector.GetMetrics()["counter"].FlushToString()); }
public void CrossMetricMergesAreNotAllowed() { var collector = new MetricsCollector(); collector.IncrementCounter("Counter", 1); var collector2 = new MetricsCollector(); collector2.Record("Counter", 10M, Unit.Second); collector.Merge(collector2); }
public void CollectorShouldIgnoreInvalidMetricNames() { var collector = new MetricsCollector(); const string invalidName = "Invalid@Name"; collector.IncrementCounter(invalidName, 1); using (collector.StartTimer(invalidName)) { collector.Record(invalidName, 0, Unit.None); } Assert.Equal(string.Empty, collector.FlushToString()); }