spectator/writer/udp_writer.go (30 lines of code) (raw):

package writer import ( "github.com/Netflix/spectator-go/v2/spectator/logger" "net" ) type UdpWriter struct { conn *net.UDPConn logger logger.Logger } func NewUdpWriter(address string, logger logger.Logger) (*UdpWriter, error) { udpAddr, err := net.ResolveUDPAddr("udp", address) if err != nil { return nil, err } conn, err := net.DialUDP("udp", nil, udpAddr) if err != nil { return nil, err } return &UdpWriter{conn, logger}, nil } func (u *UdpWriter) Write(line string) { u.logger.Debugf("Sending line: %s", line) // Methods on conn are thread-safe _, err := u.conn.Write([]byte(line)) if err != nil { u.logger.Errorf("Error writing to UDP: %s", err) } } func (u *UdpWriter) Close() error { return u.conn.Close() }