This is yet another implementation of a collectd binary protocol parser in Go, heavenly inspired by gocollectd.
go get github.com/kimor79/gollectd
import (
collectd github.com/kimor79/gollectd
)
types, err := collectd.TypesDBFile("/path/to/types.db")
buffer := make([]byte, 1452)
n, _, err := socket.ReadFromUDP(buffer)
packets, err := collectd.Packets(buffer[:n], types)