Esempio n. 1
0
 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);
     }
 }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
 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);
     }
 }
Esempio n. 4
0
        /// <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);
        }
Esempio n. 6
0
 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) --&gt; 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);
                }
            }
        }
Esempio n. 9
0
        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));
        }
Esempio n. 10
0
        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;
            }
        }
Esempio n. 11
0
        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());
            }
        }
Esempio n. 12
0
        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"));
        }
Esempio n. 14
0
        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"));
        }