我有一个使用 Graphite/Carbon 运行的 Grafana docker 映像。使用 CLI 获取数据有效,例如:
echo "local.random.diceroll $(((RANDOM%6)+1)) `date +%s`" | nc localhost 2003;
以下 Python 2 代码也适用:
sock = socket.socket()
sock.connect((CARBON_SERVER, CARBON_PORT))
sock.sendall(message)
sock.close()
message
是一个包含的字符串,key value timestamp
并且这个有效,可以找到数据。所以 Grafana docker 镜像正在接受数据。
我想让它在 Python 3 中工作,但该sendall
函数需要字节作为参数。代码更改为:
sock = socket.socket()
sock.connect((CARBON_SERVER, CARBON_PORT))
sock.sendall(str.encode(message))
sock.close()
现在数据没有插入,我不知道为什么。我在远程机器(同一网络)和本地服务器上尝试了这个。我还尝试了几个包(graphiti、graphiteudp),但它们似乎都无法插入数据。它们也不显示任何错误消息。
的简单示例在Github 页面graphiteudp
上也不起作用
知道我做错了什么吗?