public bool Send(TraceMetric metric)
        {
            var ns = _tcpClient.GetStream();

            using (var cod = new CodedOutputStream(ns))
            {
                metric.WriteTo(cod);
            }

            return(true);
        }
Пример #2
0
        public bool Send(TraceMetric metric)
        {
            var ms = new MemoryStream();

            using (var cod = new CodedOutputStream(ms))
            {
                metric.WriteTo(cod);
                ms.Flush();
            }

            var ar = ms.ToArray();

            _socket.SendTo(ar, 0, ar.Length, SocketFlags.None, _endPoint);

            return(true);
        }
Пример #3
0
        public bool Send(TraceMetric metric)
        {
            if (!File.Exists(_uds))
            {
                _logger.LogError("Metric proxy socket not found");
                return(false);
            }

            using (var socket = new Socket(AddressFamily.Unix, SocketType.Stream, ProtocolType.Unspecified))
            {
                try
                {
                    socket.Connect(new UnixDomainSocketEndPoint(_uds));
                }
                catch (Exception e)
                {
                    _logger.LogError(e, "Cannot connect to a metric proxy");
                    return(false);
                }

                var ns = new NetworkStream(socket);
                using (var cod = new CodedOutputStream(ns))
                {
                    try
                    {
                        metric.WriteTo(cod);
                    }
                    catch (Exception e)
                    {
                        _logger.LogError(e, "Cannot send to a metric proxy");
                        return(false);
                    }
                }

                return(true);
            }
        }