Я пытаюсь отправить небольшую строку в statsd через nc внутри блока чтения:
while read line; do
printf "folder.counter:value|1c" | nc -q 0 -u $host $port
done
К сожалению, когда в режиме UDP nc, кажется, хочет ждать бесконечно, хотя я и указал -q 0
, что, по словам справочной страницы, программа завершит работу сразу после EOF.
Я попытался передать -w 1
, но если данные, которые я посылаю, поступают со скоростью более одной строки в секунду, данные буферизуются, и я теряю свою статистику в реальном времени (не говоря уже о риске переполнения буфера какого-то рода).
Можно ли сделать то, что я пытаюсь сделать с netcat, или мне нужно написать что-то на языке, который имеет библиотеку statsd?