Ich versuche, eine kleine Zeichenfolge innerhalb eines Leseblocks über nc an statsd zu senden:
while read line; do
printf "folder.counter:value|1c" | nc -q 0 -u $host $port
done
Leider scheint nc im UDP-Modus auf unbestimmte Zeit warten zu wollen, obwohl ich angegeben habe -q 0
, dass die Manpage besagt, dass das Programm sofort nach EOF beendet wird.
Ich habe versucht zu übergeben -w 1
, aber wenn die Daten, die ich sende, mit mehr als einer Zeile pro Sekunde eingehen, werden die Daten gepuffert und ich verliere meine Echtzeit-Statistiken (ganz zu schweigen von dem Risiko eines Pufferüberlaufs).
Ist es möglich, das zu tun, was ich mit Netcat versuche, oder muss ich etwas in einer Sprache schreiben, die eine statsd-Bibliothek hat?