private static void CheckReconnection(StatsdConfig config)
        {
            SocketServer server = null;

            try
            {
                server = new SocketServer(config);
                using (var service = new DogStatsdService())
                {
                    service.Configure(config);
                    service.Increment("test1");
                    Assert.AreEqual("test1:1|c", server.Stop().Single());
                    server.Dispose();

                    // Send a metric when the server is not running.
                    service.Increment("test2");
                    Task.Delay(TimeSpan.FromMilliseconds(500)).Wait();

                    // Restart the server
                    server = new SocketServer(config, removeUDSFileBeforeStarting: true);
                    service.Increment("test3");
                    service.Dispose();
                    Assert.AreEqual("test3:1|c", server.Stop().Last());
                }
            }
            finally
            {
                server?.Dispose();
            }
        }
        private static void CheckReconnection(
            Func <StatsdConfig, AbstractServer> serverFactory,
            StatsdConfig config)
        {
            AbstractServer server = null;

            try
            {
                server = serverFactory(config);
                using (var service = new DogStatsdService())
                {
                    service.Configure(config);
                    service.Increment("test1");
                    Assert.AreEqual("test1:1|c", server.Stop().Single());
                    server.Dispose();

                    // Send a metric when the server is not running.
                    service.Increment("test2");
                    Task.Delay(TimeSpan.FromMilliseconds(500)).Wait();

                    // Restart the server
                    server = serverFactory(config);
                    service.Increment("test3");
                    service.Dispose();
                    Assert.AreEqual("test3:1|c", server.Stop().Last());
                }
            }
            finally
            {
                server?.Dispose();
            }
        }
コード例 #3
0
 public void Dispose()
 {
     if (dogStatsdService != null)
     {
         dogStatsdService.Flush();
         dogStatsdService.Dispose();
     }
 }
        private List <string> ReceiveData(DogStatsdService dogstasdService, string testServerName, int testPort, Action sendData)
        {
            using (var udpListener = new UdpListener(testServerName, testPort))
            {
                var listenThread = new Thread(udpListener.ListenAndWait);
                listenThread.Start();

                sendData();

                dogstasdService.Dispose();
                udpListener.Shutdown();
                listenThread.Join();

                return(udpListener.GetAndClearLastMessages());
            }
        }
コード例 #5
0
        private void TestReceive(
            string testServerName,
            int testPort,
            string testCounterName,
            string expectedOutput,
            DogStatsdService dogStatsdService)
        {
            using (UdpListener udpListener = new UdpListener(testServerName, testPort))
            {
                Thread listenThread = new Thread(udpListener.ListenAndWait);
                listenThread.Start();

                dogStatsdService.Increment(testCounterName);

                dogStatsdService.Dispose();
                udpListener.Shutdown();
                listenThread.Join();

                Assert.AreEqual(expectedOutput, udpListener.GetAndClearLastMessages()[0]);
            }
        }
コード例 #6
0
        private static void SendAndCheckMetricsAreReceived(StatsdConfig config, int metricToSendCount)
        {
            using (var service = new DogStatsdService())
            {
                using (var server = new SocketServer(config))
                {
                    service.Configure(config);
                    for (int i = 0; i < metricToSendCount; ++i)
                    {
                        service.Increment($"test{i}", tags: new[] { "KEY:VALUE" });
                    }

                    service.Dispose();
                    var metricsReceived = server.Stop();
                    Assert.AreEqual(metricToSendCount, metricsReceived.Count);
                    for (int i = 0; i < metricToSendCount; ++i)
                    {
                        Assert.AreEqual($"test{i}:1|c|#KEY:VALUE", metricsReceived[i]);
                    }
                }
            }
        }
 public void Cleanup()
 {
     _service.Dispose();
 }
コード例 #8
0
 public void TearDownUdpListener()
 {
     _dogStatsdService.Dispose();
     _udpListener.Dispose();
     _udp.Dispose();
 }
コード例 #9
0
 public void ClearUdpListenerMessages()
 {
     _udpListener.GetAndClearLastMessages(); // just to be sure that nothing is left over
     _dogStatsdService.Dispose();
 }
コード例 #10
0
 public void Dispose() => _service.Dispose();