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 Jul 25, 2023
1 parent 19a7df4 commit 6842d12
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 6842d12

Please sign in to comment.