我正在尝试使用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"
)? - larsksclose()
关闭套接字,以确保输出缓冲区最终被刷新。 - moooeeeep