JustEat.StatsD.StatsDUdpClient.Send C# (CSharp) Method

Send() private method

private Send ( IEnumerable metrics ) : bool
metrics IEnumerable
return bool
        public bool Send(IEnumerable<string> metrics)
        {
            var data = EventArgsPool.Pop();
            //firehose alert! -- keep it moving!
            if (null == data)
            {
                return false;
            }

            try
            {
                data.RemoteEndPoint = GetIPEndPoint();
                data.SendPacketsElements = metrics.ToMaximumBytePackets()
                    .Select(bytes => new SendPacketsElement(bytes, 0, bytes.Length, true))
                    .ToArray();

                using (var udpClient = GetUdpClient())
                {
                    udpClient.Client.Connect(data.RemoteEndPoint);
                    udpClient.Client.SendPacketsAsync(data);
                }

                Trace.TraceInformation("statsd: {0}", string.Join(",", metrics));

                return true;
            }
            //fire and forget, so just eat intermittent failures / exceptions
            catch (Exception e)
            {
                Trace.TraceError("General Exception when sending metric data to statsD :- Message : {0}, Inner Exception {1}, StackTrace {2}.", e.Message, e.InnerException, e.StackTrace);
            }

            return false;
        }

Same methods

StatsDUdpClient::Send ( string metric ) : bool

Usage Example

Esempio n. 1
0
        private static void Main(string[] args)
        {
            var iterations = Enumerable.Range(1, 500000);
            var client = new StatsDUdpClient(10, "localhost", 3128);
            var formatter = new StatsDMessageFormatter();
            var watch = new Stopwatch();

            Console.WriteLine("To start - hit ENTER.");
            Console.ReadLine();
            Console.WriteLine("start");
            watch.Start();

            Parallel.ForEach(iterations, x => client.Send(formatter.Gauge(x, "bucket_sample" + "number-of-messages-to-be-sent")));

            watch.Stop();
            Console.WriteLine("end - " + watch.ElapsedMilliseconds);
            Console.ReadLine();
        }