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(); } }
public void SampleRate() { var config = new StatsdConfig { StatsdServerName = "127.0.0.1", StatsdPort = 1234, }; config.ClientSideAggregation = new ClientSideAggregationConfig { }; using (var server = new SocketServer(config)) { using (var service = new DogStatsdService()) { service.Configure(config); for (int i = 0; i < 500; i++) { service.Increment("test1", 1, 0.5); service.Increment("test1", 1, 0.3); service.Increment("test1", 1, 0.8); } } var metric = server.Stop().Single(); var match = Regex.Match(metric, @"^test1:(.*)\|c$"); Assert.True(match.Success); var metricValue = double.Parse(match.Groups[1].Value); Assert.AreEqual(500.0 * 3, metricValue, delta: 100); } }
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(); } }
public void IncrementMetric(string name) { if (ShouldRecord(name)) { _service.Increment(FormatMetricName(name)); } }
public void MetricsSent() { _service.Configure(_config); _service.Counter("test", 1); _service.Increment("test"); _service.Decrement("test"); Assert.AreEqual(3, _service.TelemetryCounters.MetricsSent); }
public void Setting_entity_id_with_env_arg() { Environment.SetEnvironmentVariable("DD_ENTITY_ID", "foobar"); using (var nonStaticServiceInstance = new DogStatsdService()) { var metricsConfig = new StatsdConfig { StatsdServerName = "127.0.0.1", StatsdPort = 8132, }; nonStaticServiceInstance.Configure(metricsConfig); var receivedData = ReceiveData( nonStaticServiceInstance, "127.0.0.1", 8132, () => { nonStaticServiceInstance.Increment("test"); }); Assert.AreEqual(new List <string> { "test:1|c|#dd.internal.entity_id:foobar" }, receivedData); } Environment.SetEnvironmentVariable("DD_ENTITY_ID", null); }
public void Setting_tag_with_env_arg(string envVar, string tag) { Environment.SetEnvironmentVariable(envVar, "foobar"); try { using (var nonStaticServiceInstance = new DogStatsdService()) { var metricsConfig = new StatsdConfig { StatsdServerName = "127.0.0.1", StatsdPort = 8132, }; nonStaticServiceInstance.Configure(metricsConfig); var receivedData = ReceiveData( nonStaticServiceInstance, "127.0.0.1", 8132, () => { nonStaticServiceInstance.Increment("test"); }); Assert.AreEqual(new List <string> { $"test:1|c|#{tag}:foobar" }, receivedData); } } finally { Environment.SetEnvironmentVariable(envVar, null); } }
private void testReceive(string testServerName, int testPort, string testCounterName, string expectedOutput, DogStatsdService dogStatsdService) { UdpListener udpListener = new UdpListener(testServerName, testPort); Thread listenThread = new Thread(new ParameterizedThreadStart(udpListener.Listen)); listenThread.Start(); dogStatsdService.Increment(testCounterName); while (listenThread.IsAlive) { ; } Assert.AreEqual(expectedOutput, udpListener.GetAndClearLastMessages()[0]); udpListener.Dispose(); }
public async Task IncrementCounterAsync(string metricName, string[] tags) { if (dogStatsdService == null) { return; } try { dogStatsdService.Increment($"{metricName}.increment", tags: TelemetryConfig.CoreTags.Concat(tags).ToArray()); } catch (Exception ex) { logger.LogError(ex, $"Error sending telemetry to Datadog {ex.Message}"); } }
public void setting_port_listen_on_other_port_should_return_no_data() { using (var nonStaticServiceInstance = new DogStatsdService()) { var metricsConfig = new StatsdConfig { StatsdServerName = "127.0.0.1", StatsdPort = 8126 }; nonStaticServiceInstance.Configure(metricsConfig); var receivedData = ReceiveData(nonStaticServiceInstance, "127.0.0.1", 8125, () => { nonStaticServiceInstance.Increment("test"); }); Assert.AreEqual(0, receivedData.Count); } }
public void default_port_is_8125() { using (var nonStaticServiceInstance = new DogStatsdService()) { var metricsConfig = new StatsdConfig { StatsdServerName = "127.0.0.1" }; nonStaticServiceInstance.Configure(metricsConfig); var receivedData = ReceiveData(nonStaticServiceInstance, "127.0.0.1", 8125, () => { nonStaticServiceInstance.Increment("test"); }); Assert.AreEqual(new List <string> { "test:1|c" }, receivedData); } }
public void setting_prefix() { using (var nonStaticServiceInstance = new DogStatsdService()) { var metricsConfig = new StatsdConfig { StatsdServerName = "127.0.0.1", StatsdPort = 8129, Prefix = "prefix" }; nonStaticServiceInstance.Configure(metricsConfig); var receivedData = ReceiveData(nonStaticServiceInstance, "127.0.0.1", 8129, () => { nonStaticServiceInstance.Increment("test"); }); Assert.AreEqual(new List <string> { "prefix.test:1|c" }, receivedData); } }
public void setting_with_env_arg() { Environment.SetEnvironmentVariable("DD_DOGSTATSD_PORT", "8131"); Environment.SetEnvironmentVariable("DD_AGENT_HOST", "127.0.0.1"); using (var nonStaticServiceInstance = new DogStatsdService()) { var metricsConfig = new StatsdConfig { }; nonStaticServiceInstance.Configure(metricsConfig); var receivedData = ReceiveData(nonStaticServiceInstance, "127.0.0.1", 8131, () => { nonStaticServiceInstance.Increment("test"); }); Assert.AreEqual(new List <string> { "test:1|c" }, receivedData); } Environment.SetEnvironmentVariable("DD_DOGSTATSD_PORT", null); Environment.SetEnvironmentVariable("DD_AGENT_HOST", null); }
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]); } }
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 Increment() { _dogStatsdService.Increment("increment"); AssertWasReceived("increment:1|c"); }