public void Sends_a_counter() { try { var client = new StatsdUDP(_serverName, _serverPort); client.Send("socket2:1|c"); } catch (SocketException ex) { Assert.Fail("Socket Exception, have you setup your Statsd name and port? It's currently '{0}:{1}'. Error: {2}", _serverName, _serverPort, ex.Message); } }
public void SetUpUdpListenerAndStatsd() { _udpListener = new UdpListener(_serverName, _serverPort); var metricsConfig = new StatsdConfig { StatsdServerName = _serverName }; _dogStatsdService = new DogStatsdService(); _dogStatsdService.Configure(metricsConfig); _udp = new StatsdUDP(_serverName, _serverPort); _statsd = new Statsd(_udp); }
public void Sends_a_counter() { try { var client = new StatsdUDP(ServerName, ServerPort); client.Send("socket2:1|c"); } catch (SocketException ex) { Assert.Fail("Socket Exception, have you set up your Statsd name and port? Error: {0}", ex.Message); } }
/// <summary> /// Construct a sink that uses datadog with the specified details. /// </summary> /// <param name="datadogConfiguration">Connection information used to construct the Datadog client.</param> /// <param name="batchSizeLimit">The maximum number of events to post in a single batch.</param> /// <param name="period">The time to wait between checking for event batches.</param> /// <param name="textFormatter">Supplies culture-specific formatting information, or null.</param> public DatadogSink(DatadogConfiguration datadogConfiguration, int batchSizeLimit, TimeSpan period, ITextFormatter textFormatter) : base(batchSizeLimit, period) { if (datadogConfiguration == null) { throw new ArgumentNullException("datadogConfiguration"); } _datadogConfiguration = datadogConfiguration; _textFormatter = textFormatter; _statsdUdp = new StatsdUDP(datadogConfiguration.StatsdServer, datadogConfiguration.StatsdPort); _statsd = new Statsd(_statsdUdp); }
public void SetUpUdpListenerAndStatsd() { _udpListener = new UdpListener(_serverName, _serverPort); var metricsConfig = new StatsdConfig { StatsdServerName = _serverName }; metricsConfig.Advanced.TelemetryFlushInterval = TimeSpan.FromDays(1); _dogStatsdService = new DogStatsdService(); _dogStatsdService.Configure(metricsConfig); _udp = new StatsdUDP(_serverName, _serverPort); _statsd = new Statsd(_udp); }
public void set_max_udp_packet_size() { // Make sure that we can set the max UDP packet size udp = new StatsdUDP(serverName, serverPort, 10); statsd = new Statsd(udp); var msg = new String('f', 5); listenThread.Start(2); statsd.Add<Statsd.Counting>(msg, 1); statsd.Add<Statsd.Timing>(msg, 2); statsd.Send(); // Since our packet size limit is now 10, this (short) message should still be split AssertWasReceived(String.Format("{0}:1|c", msg), 0); AssertWasReceived(String.Format("{0}:2|ms", msg), 1); }
public void Publish <T>(IExperimentResult <T> results) { // How can we Unit Test this? Could do integration test but would be overkill using (var udp = new StatsdUDP(hostName, port)) { var statsd = new Statsd(udp, prefix); AddObservationStats(results.Name, results.Control, statsd); foreach (var kvp in results.Candidates) { AddObservationStats(results.Name, kvp.Value, statsd); } statsd.Send(); } }
//public StatsDPublisher(string hostName, int port, string prefix, IStopWatchFactory swFactory) //{ #region Public Methods //} /// <summary> /// Sends properly formatted StatsD messages prefixed by "[Experiment Name].[Current Name].[Current Step]." /// </summary> /// <example> /// state = new ExperimentState { Name = "Candidate 1", ExperimentName = "Science!", /// CurrentStep = Operations.OnMismatch }; Publish("gaugor:333|g", state) --> Sends /// StatsD with: Name: "Science!.Candidate_1.OnMismatch.gaugor", Value: 333, Type: Gauge /// </example> /// <remarks> /// see https://github.com/etsy/statsd/blob/master/docs/metric_types.md for formatting /// </remarks> /// <param name="message"></param> /// <param name="state"></param> public void Publish(string message, IExperimentState state) { // Do nothing for now gaugor:333|g if (!string.IsNullOrEmpty(message)) { using (var udp = new StatsdUDP(hostName, port)) { var statsd = new Statsd(udp, prefix); TrySendMessage(message, string.Format("{0}.{1}.{2}.", ReplaceWhitespace(state.ExperimentName), ReplaceWhitespace(state.Name), state.CurrentStep), statsd); } } }
private static IStatsd CreateDogStatsdClient(TracerSettings settings) { var frameworkDescription = FrameworkDescription.Create(); string[] constantTags = { "lang:.NET", $"lang_interpreter:{frameworkDescription.Name}", $"lang_version:{frameworkDescription.ProductVersion}", $"tracer_version:{TracerConstants.AssemblyVersion}" }; var statsdUdp = new StatsdUDP(settings.AgentUri.DnsSafeHost, settings.DogStatsdPort, StatsdConfig.DefaultStatsdMaxUDPPacketSize); return(new Statsd(statsdUdp, new RandomGenerator(), new StopWatchFactory(), prefix: string.Empty, constantTags)); }
private bool disposedValue = false; // To detect redundant calls protected virtual void Dispose(bool disposing) { Flush(); if (!disposedValue) { if (disposing) { statsdUDP?.Dispose(); } // TODO: free unmanaged resources (unmanaged objects) and override a finalizer below. // TODO: set large fields to null. statsdUDP = null; dog = null; disposedValue = true; } }
private static IStatsd CreateDogStatsdClient(TracerSettings settings, string serviceName, int port) { try { var frameworkDescription = FrameworkDescription.Create(); string[] constantTags = { "lang:.NET", $"lang_interpreter:{frameworkDescription.Name}", $"lang_version:{frameworkDescription.ProductVersion}", $"tracer_version:{TracerConstants.AssemblyVersion}", $"service_name:{serviceName}" }; var statsdUdp = new StatsdUDP(settings.AgentUri.DnsSafeHost, port, StatsdConfig.DefaultStatsdMaxUDPPacketSize); return(new Statsd(statsdUdp, new RandomGenerator(), new StopWatchFactory(), prefix: string.Empty, constantTags)); } catch (Exception ex) { Log.Error(ex, $"Unable to instantiate {nameof(Statsd)} client."); return(new NoOpStatsd()); } }
public void Ipv4_parsing_works_with_ip() { StatsdUDP statsdUDP = new StatsdUDP("127.0.0.1", RandomUnusedLocalPort); Assert.That(statsdUDP.IPEndpoint.Address.ToString(), Does.Contain("127.0.0.1")); }
public void ipv4_parsing_works_with_hostname() { StatsdUDP statsdUDP = new StatsdUDP("localhost", RandomUnusedLocalPort); Assert.That(statsdUDP.IPEndpoint.Address.ToString(), Is.StringContaining("127.0.0.1")); }
public void ipv4_parsing_works_with_ip() { var statsdUdp = new StatsdUDP("127.0.0.1", RandomUnusedLocalPort); Assert.That(statsdUdp.IPEndpoint.Address.ToString(), Is.StringContaining("127.0.0.1")); }
public void SetUpUdpListenerAndStatsd() { udpListener = new UdpListener(serverName, serverPort); udp = new StatsdUDP(serverName, serverPort); }
public void Ipv4_parsing_works_with_hostname() { var ipAddress = StatsdUDP.GetIpv4Address("localhost"); Assert.That(ipAddress.ToString(), Does.Contain("127.0.0.1")); }