Я пытаюсь использовать сокет python вместо netcat для отправки метрических данных в OpenTSDB, но мне не повезло. Может ли кто-нибудь сообщить мне, возможно ли это сделать?
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("hostname", port))
s.send("put foo 123456789 12.9 host=dummy")
s.send(...)
возвращает ненулевое значение, поэтому я предполагаю, что строка действительно была отправлена, просто OpenTSDB ее не распознает. Я попытался использовать netcat для отправки той же строки, и это работает.
netcat -l <port>
и указав там свой код Python. Вам нужно добавить новую строку в конец команды (например,"...host=dummy\n"
)? - person larsks   schedule 21.03.2012close()
сокет, чтобы убедиться, что буферы вывода в конечном итоге сбрасываются. - person moooeeeep   schedule 21.03.2012