1
0
mirror of https://github.com/netsampler/goflow2.git synced 2024-05-06 15:54:52 +00:00

goflow2: add additional parameters in listen URL (#208)

Co-authored-by: Paweł Mieczkowski <pawel.mieczkowski@redge.com>
This commit is contained in:
Paweł Mieczkowski
2023-09-01 23:45:07 +02:00
committed by GitHub
parent 9f2b0806f0
commit edc306cc29

View File

@ -193,6 +193,36 @@ func main() {
numSockets = 1 numSockets = 1
} }
var numWorkers int
if listenAddrUrl.Query().Has("workers") {
if numWorkersTmp, err := strconv.ParseUint(listenAddrUrl.Query().Get("workers"), 10, 64); err != nil {
log.Fatal(err)
} else {
numWorkers = int(numWorkersTmp)
}
}
if numWorkers == 0 {
numWorkers = numSockets * 2
}
var isBlocking bool
if listenAddrUrl.Query().Has("blocking") {
if isBlocking, err = strconv.ParseBool(listenAddrUrl.Query().Get("blocking")); err != nil {
log.Fatal(err)
}
}
var queueSize int
if listenAddrUrl.Query().Has("queue_size") {
if queueSizeTmp, err := strconv.ParseUint(listenAddrUrl.Query().Get("queue_size"), 10, 64); err != nil {
log.Fatal(err)
} else {
queueSize = int(queueSizeTmp)
}
} else if !isBlocking {
queueSize = 1000000
}
hostname := listenAddrUrl.Hostname() hostname := listenAddrUrl.Hostname()
port, err := strconv.ParseUint(listenAddrUrl.Port(), 10, 64) port, err := strconv.ParseUint(listenAddrUrl.Port(), 10, 64)
if err != nil { if err != nil {
@ -201,17 +231,23 @@ func main() {
} }
logFields := log.Fields{ logFields := log.Fields{
"scheme": listenAddrUrl.Scheme, "scheme": listenAddrUrl.Scheme,
"hostname": hostname, "hostname": hostname,
"port": port, "port": port,
"count": numSockets, "count": numSockets,
"workers": numWorkers,
"blocking": isBlocking,
"queue_size": queueSize,
} }
l := log.WithFields(logFields) l := log.WithFields(logFields)
l.Info("starting collection") l.Info("starting collection")
cfg := &utils.UDPReceiverConfig{ cfg := &utils.UDPReceiverConfig{
Sockets: numSockets, Sockets: numSockets,
Workers: numWorkers,
QueueSize: queueSize,
Blocking: isBlocking,
} }
recv, err := utils.NewUDPReceiver(cfg) recv, err := utils.NewUDPReceiver(cfg)
if err != nil { if err != nil {