public void FetchAllLatencyMetricsSuccessfully() { //Arrange var timers = new ConcurrentDictionary <string, ILatencyTracker>(); var cache = new InMemoryMetricsCache(null, timers); cache.SetLatency("time_test", 1); cache.SetLatency("time_test", 9); cache.SetLatency("time_test", 8); cache.SetLatency("time_test_2", 8); //Act var result = cache.FetchAllLatencyTrackersAndClear(); //Assert Assert.IsNotNull(result); var result1 = result.First(x => x.Key == "time_test"); Assert.IsNotNull(result1); Assert.AreEqual(1, result1.Value.GetLatency(0)); Assert.AreEqual(2, result1.Value.GetLatency(6)); long[] latencies = result1.Value.GetLatencies(); Assert.AreEqual(3, latencies.Sum()); var result2 = result.First(x => x.Key == "time_test_2"); Assert.IsNotNull(result2); Assert.AreEqual(1, result2.Value.GetLatency(6)); Assert.AreEqual(0, timers.Count()); }
public void FetchAllCountMetricsSuccessfully() { //Arrange var counters = new ConcurrentDictionary <string, Counter>(); var cache = new InMemoryMetricsCache(counters); cache.IncrementCount("counter_test", 150); cache.IncrementCount("counter_test_2", 123); cache.IncrementCount("counter_test_2", 1); //Act var result = cache.FetchAllCountersAndClear(); //Assert Assert.IsNotNull(result); var result1 = result.First(x => x.Key == "counter_test"); Assert.IsNotNull(result1); Assert.AreEqual(150, result1.Value.GetDelta()); var result2 = result.First(x => x.Key == "counter_test_2"); Assert.IsNotNull(result2); Assert.AreEqual(124, result2.Value.GetDelta()); Assert.AreEqual(0, counters.Count()); }
public void SendGaugeMetricsSuccessfully() { //Arrange var gauges = new ConcurrentDictionary <string, long>(); var metricsApiClientMock = new Mock <IMetricsSdkApiClient>(); var cache = new InMemoryMetricsCache(null, null, gauges); var metricsLog = new InMemoryMetricsLog(metricsApiClientMock.Object, cache, 1); //Act metricsLog.Gauge("gauge_test", 1234); //Assert metricsApiClientMock.Verify(x => x.SendGaugeMetrics(It.IsAny <string>())); }
public void SendCountMetricsSuccessfully() { //Arrange var counters = new ConcurrentDictionary <string, Counter>(); var metricsApiClientMock = new Mock <IMetricsSdkApiClient>(); var cache = new InMemoryMetricsCache(counters); var metricsLog = new InMemoryMetricsLog(metricsApiClientMock.Object, cache, 1); //Act metricsLog.Count("counter_test", 150); //Assert metricsApiClientMock.Verify(x => x.SendCountMetrics(It.IsAny <string>())); }
public void SendTimeMetricsSuccessfully() { //Arrange var timers = new ConcurrentDictionary <string, ILatencyTracker>(); var metricsApiClientMock = new Mock <IMetricsSdkApiClient>(); var cache = new InMemoryMetricsCache(null, timers); var metricsLog = new InMemoryMetricsLog(metricsApiClientMock.Object, cache, 1, -1); //Act metricsLog.Time("time_test", 1); //Assert metricsApiClientMock.Verify(x => x.SendTimeMetrics(It.IsAny <string>())); }
public void TimeShouldNotUpdateMetricIfDeltaIsLessThanZero() { //Arrange var timers = new ConcurrentDictionary <string, ILatencyTracker>(); var cache = new InMemoryMetricsCache(null, timers); var metricsLog = new InMemoryMetricsLog(null, cache); //Act metricsLog.Time("time_test", -1); //Assert ILatencyTracker timer = cache.GetLatencyTracker("time_test"); Assert.IsNull(timer); }
public void CountShouldNotAddMetricIfNoNameSpecified() { //Arrange var counters = new ConcurrentDictionary <string, Counter>(); var cache = new InMemoryMetricsCache(counters); var metricsLog = new InMemoryMetricsLog(null, cache); //Act metricsLog.Count("", 1); //Assert Counter counter = cache.GetCount(""); Assert.IsNull(counter); }
public void GaugeShouldNotAddMetricIfNoNameSpecified() { //Arrange var gauges = new ConcurrentDictionary <string, long>(); var cache = new InMemoryMetricsCache(null, null, gauges); var metricsLog = new InMemoryMetricsLog(null, cache); //Act metricsLog.Gauge("", 1000); //Assert long gauge = cache.GetGauge(""); Assert.AreEqual(0, gauge); }
public void GaugeShouldNotUpdateMetricIfDeltaIsLessThanZero() { //Arrange var gauges = new ConcurrentDictionary <string, long>(); var cache = new InMemoryMetricsCache(null, null, gauges); var metricsLog = new InMemoryMetricsLog(null, cache); //Act metricsLog.Gauge("gauge_test", -1); //Assert long gauge = cache.GetGauge("gauge_test"); Assert.AreEqual(0, gauge); }
public void TimeShouldNotAddMetricIfNoNameSpecified() { //Arrange var timers = new ConcurrentDictionary <string, ILatencyTracker>(); var cache = new InMemoryMetricsCache(null, timers); var metricsLog = new InMemoryMetricsLog(null, cache); //Act metricsLog.Time("", 1000); //Assert ILatencyTracker timer = cache.GetLatencyTracker(""); Assert.IsNull(timer); }
public void SetGaugeShouldUpdateMetricWhenExisting() { //Arrange var gauges = new ConcurrentDictionary <string, long>(); var cache = new InMemoryMetricsCache(null, null, gauges); //Act cache.SetGauge("gauge_test", 1234); cache.SetGauge("gauge_test", 4567); //Assert long gauge = cache.GetGauge("gauge_test"); Assert.AreEqual(4567, gauge); }
public void SetGaugeShouldAddNewMetricWhenNotExisting() { //Arrange var gauges = new ConcurrentDictionary <string, long>(); var cache = new InMemoryMetricsCache(null, null, gauges); //Act cache.SetGauge("gauge_test", 1234); //Assert long gauge = cache.GetGauge("gauge_test"); Assert.IsNotNull(gauge); Assert.AreEqual(1234, gauge); }
public void IncrementCountShouldUpdateMetricWhenExisting() { //Arrange var counters = new ConcurrentDictionary <string, Counter>(); var cache = new InMemoryMetricsCache(counters); //Act cache.IncrementCount("counter_test", 150); cache.IncrementCount("counter_test", 10); //Assert Counter counter = cache.GetCount("counter_test"); Assert.AreEqual(2, counter.GetCount()); Assert.AreEqual(160, counter.GetDelta()); }
public void IncrementCountShouldAddNewMetricWhenNotExisting() { //Arrange var counters = new ConcurrentDictionary <string, Counter>(); var cache = new InMemoryMetricsCache(counters); //Act cache.IncrementCount("counter_test", 150); //Assert Counter counter = cache.GetCount("counter_test"); Assert.IsNotNull(counter); Assert.AreEqual(1, counter.GetCount()); Assert.AreEqual(150, counter.GetDelta()); }
public void CountShouldNotUpdateMetricIfDeltaIsLessOrEqualThanZero() { //Arrange var counters = new ConcurrentDictionary <string, Counter>(); var cache = new InMemoryMetricsCache(counters); var metricsLog = new InMemoryMetricsLog(null, cache); //Act metricsLog.Count("counter_test", 0); metricsLog.Count("counter_test", -1); //Assert Counter counter = cache.GetCount("counter_test"); Assert.IsNull(counter); }
public void SetLatencyShouldAddNewMetricWhenNotExisting() { //Arrange var timers = new ConcurrentDictionary <string, ILatencyTracker>(); var cache = new InMemoryMetricsCache(null, timers); //Act cache.SetLatency("time_test", 1); //Assert ILatencyTracker timer = cache.GetLatencyTracker("time_test"); Assert.IsNotNull(timer); Assert.AreEqual(1, timer.GetLatency(0)); long[] latencies = timer.GetLatencies(); Assert.AreEqual(1, latencies.Sum()); }
public void GaugeSucessfully() { //Arrange var gauges = new ConcurrentDictionary <string, long>(); var metricsCache = new InMemoryMetricsCache(null, null, gauges); var metricsLog = new AsyncMetricsLog(null, metricsCache, 10, 3000); //Act metricsLog.Gauge("gauge_test", 1234); //Assert Thread.Sleep(2000); long gauge = metricsCache.GetGauge("gauge_test"); Assert.IsNotNull(gauge); Assert.AreEqual(1234, gauge); }
public void CountSucessfully() { //Arrange var counters = new ConcurrentDictionary <string, Counter>(); var metricsCache = new InMemoryMetricsCache(counters); var metricsLog = new AsyncMetricsLog(null, metricsCache, 10, 3000); //Act metricsLog.Count("counter_test", 150); //Assert Thread.Sleep(2000); Counter counter = metricsCache.GetCount("counter_test"); Assert.IsNotNull(counter); Assert.AreEqual(1, counter.GetCount()); Assert.AreEqual(150, counter.GetDelta()); }
public void TimeSucessfully() { //Arrange var timers = new ConcurrentDictionary <string, ILatencyTracker>(); var metricsCache = new InMemoryMetricsCache(null, timers); var metricsLog = new AsyncMetricsLog(null, metricsCache, 10, 3000); //Act metricsLog.Time("time_test", 1); //Assert Thread.Sleep(2000); ILatencyTracker timer = metricsCache.GetLatencyTracker("time_test"); Assert.IsNotNull(timer); Assert.AreEqual(1, timer.GetLatency(0)); long[] latencies = timer.GetLatencies(); Assert.AreEqual(1, latencies.Sum()); }
public void TimeShouldUpdateMetricWhenExisting() { //Arrange var timers = new ConcurrentDictionary <string, ILatencyTracker>(); var cache = new InMemoryMetricsCache(null, timers); var metricsLog = new InMemoryMetricsLog(null, cache); //Act metricsLog.Time("time_test", 1); metricsLog.Time("time_test", 9); metricsLog.Time("time_test", 8); //Assert ILatencyTracker timer = cache.GetLatencyTracker("time_test"); Assert.AreEqual(1, timer.GetLatency(0)); Assert.AreEqual(2, timer.GetLatency(6)); long[] latencies = timer.GetLatencies(); Assert.AreEqual(3, latencies.Sum()); }
public void FetchAllGaugeMetricsSuccessfully() { //Arrange var gauges = new ConcurrentDictionary <string, long>(); var cache = new InMemoryMetricsCache(null, null, gauges); cache.SetGauge("gauge_test", 1234); cache.SetGauge("gauge_test_1", 4567); //Act var result = cache.FetchAllGaugesAndClear(); //Assert Assert.IsNotNull(result); var result1 = result.First(x => x.Key == "gauge_test"); Assert.IsNotNull(result1); Assert.AreEqual(1234, result1.Value); var result2 = result.First(x => x.Key == "gauge_test_1"); Assert.IsNotNull(result2); Assert.AreEqual(4567, result2.Value); Assert.AreEqual(0, gauges.Count()); }
private void BuildMetricsLog() { metricsCache = new InMemoryMetricsCache(new ConcurrentDictionary <string, Counter>(), new ConcurrentDictionary <string, ILatencyTracker>(), new ConcurrentDictionary <string, long>()); metricsLog = new AsyncMetricsLog(metricsSdkApiClient, metricsCache, MaxCountCalls, MaxTimeBetweenCalls); }