我有一个用Graphite / Carbon运行的Grafana码头工人图像。使用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码头工人图像正在接受数据。
我想让它在Python 3中工作,但是sendall
函数需要字节作为参数。代码更改为:
sock = socket.socket()
sock.connect((CARBON_SERVER, CARBON_PORT))
sock.sendall(str.encode(message))
sock.close()
现在没有插入数据,我不知道为什么。我在远程计算机(相同的网络)和本地服务器上尝试了此操作。我还尝试了几种软件包(graphiti,graphiteudp),但它们似乎都无法插入数据。它们也不会显示任何错误消息。
graphiteudp
的简单示例在Github page上都不起作用
知道我在做什么错吗?
答案 0 :(得分:0)
您可以在发送的邮件中添加\n
。我已经在Python 3上尝试过了,而且行得通。