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