public bool Send(IEnumerable <string> metrics) { var data = EventArgsPool.Pop(); //firehose alert! -- keep it moving! if (data == null) { return(false); } try { data.RemoteEndPoint = _endpointSource.GetEndpoint(); 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); }
public bool Send(IEnumerable <string> metrics) { try { var endpoint = _endpointSource.GetEndpoint(); var packets = metrics.ToMaximumBytePackets(); using (var socket = MakeIpDatagramSocket()) { foreach (var packet in packets) { socket.SendTo(packet, endpoint); } } 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); }
public IPEndPoint GetEndpoint() { if (NeedsRead()) { _cachedValue = _inner.GetEndpoint(); _expiry = DateTime.UtcNow.Add(_cacheDuration); } return(_cachedValue); }
public void Send(string metric) { var endpoint = _endpointSource.GetEndpoint(); var bytes = Encoding.UTF8.GetBytes(metric); using (var socket = CreateSocket()) { socket.SendTo(bytes, endpoint); } }
public void Send(IEnumerable <string> metrics) { var endpoint = _endpointSource.GetEndpoint(); var packets = metrics.ToMaximumBytePackets(); using (var socket = MakeIpDatagramSocket()) { foreach (var packet in packets) { socket.SendTo(packet, endpoint); } } }
public void Send(string metric) { if (string.IsNullOrWhiteSpace(metric)) { return; } var endpoint = _endpointSource.GetEndpoint(); var bytes = Encoding.UTF8.GetBytes(metric); using (var socket = CreateSocket()) { socket.SendTo(bytes, endpoint); } }
public void Send(IEnumerable <string> metrics) { var data = EventArgsPool.Pop(); //firehose alert! -- keep it moving! if (data == null) { return; } data.RemoteEndPoint = _endpointSource.GetEndpoint(); 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); } }
/// <inheritdoc /> public void Send(string metric) { if (string.IsNullOrWhiteSpace(metric)) { return; } var bytes = Encoding.UTF8.GetBytes(metric); var endpoint = _endpointSource.GetEndpoint(); var socket = _socketPool.PopOrCreate(); try { socket.SendTo(bytes, endpoint); } catch (Exception) { socket.Dispose(); throw; } _socketPool.Push(socket); }