Exemple #1
0
 public void timer_block()
 {
     using (_dogStatsdService.StartTimer("timer"))
     {
         Thread.Sleep(50);
         Thread.Sleep(60);
     }
     AssertWasReceivedMatches(@"timer:\d{3}\|ms");
 }
        public void Setting_prefix_starttimer()
        {
            using (var nonStaticServiceInstance = new DogStatsdService())
            {
                var metricsConfig = new StatsdConfig
                {
                    StatsdServerName = "127.0.0.1",
                    StatsdPort       = 8130,
                    Prefix           = "prefix",
                };
                nonStaticServiceInstance.Configure(metricsConfig);
                var receivedData = ReceiveData(
                    nonStaticServiceInstance,
                    "127.0.0.1",
                    8130,
                    () =>
                {
                    using (nonStaticServiceInstance.StartTimer("timer.test"))
                    {
                        Thread.Sleep(1000);
                    }
                });

                Assert.AreEqual(1, receivedData.Count);

                var metricResultSplit = receivedData[0].Split(':');

                Assert.AreEqual(2, metricResultSplit.Length);

                var metricNameWithPrefix = metricResultSplit[0];
                var metricTimeAndType    = metricResultSplit[1];

                Assert.AreEqual("prefix.timer.test", metricNameWithPrefix);

                var metricTimeInMsSplit = metricTimeAndType.Split('|');
                Assert.AreEqual(2, metricTimeInMsSplit.Length);

                var metricTimeInMs = Convert.ToInt32(metricTimeInMsSplit[0]);
                Assert.IsTrue((metricTimeInMs >= 1000), "Processing should have taken at least 1000ms");
                Assert.IsTrue((metricTimeInMs < 1300), $"Timer reported 30% higher than time taken in action: {metricTimeInMs} VS 1300");
            }
        }