Skip to content

Commit

Permalink
[PLA-2155] Update UDP socked to simply forward traffic instead of tai…
Browse files Browse the repository at this point in the history
…loring for InfulxDB UDP line protocol to support sending over collectd traffic over UDP

> influxdata#83
  • Loading branch information
laertis committed Aug 28, 2023
1 parent 1d71d57 commit f4c8487
Showing 1 changed file with 4 additions and 31 deletions.
35 changes: 4 additions & 31 deletions relay/udp.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ import (
"sync/atomic"
"time"

"github.com/influxdata/influxdb/models"

"github.com/strike-team/influxdb-relay/config"
)

Expand Down Expand Up @@ -166,38 +164,13 @@ func (u *UDP) Stop() error {
}

func (u *UDP) post(p *packet) {
points, err := models.ParsePointsWithPrecision(p.data.Bytes(), p.timestamp, u.precision)
if err != nil {
log.Printf("Error parsing packet in relay %q from %v: %v", u.Name(), p.from, err)
putUDPBuf(p.data)
return
}

out := getUDPBuf()
for _, pt := range points {
if _, err = out.WriteString(pt.PrecisionString(u.precision)); err != nil {
break
}
if err = out.WriteByte('\n'); err != nil {
break
}
}

putUDPBuf(p.data)

if err != nil {
putUDPBuf(out)
log.Printf("Error writing points in relay %q: %v", u.Name(), err)
return
}

// log.Printf("Got packet relay %q from %v: length %v", u.Name(), p.from, len(p.data.Bytes()))
for _, b := range u.backends {
if err := b.post(out.Bytes()); err != nil {
log.Printf("Error writing points in relay %q to backend %q: %v", u.Name(), b.name, err)
// log.Printf("Forward data from %v to %v, lengh %v", p.from, b.addr, len(p.data.Bytes()))
if err := b.post(p.data.Bytes()); err != nil {
log.Printf("Error forwarding data from %v to %v, lengh %v: %v", p.from, b.addr, len(p.data.Bytes()), err)
}
}

putUDPBuf(out)
}

type udpBackend struct {
Expand Down

0 comments on commit f4c8487

Please sign in to comment.