编辑:
我已经成功地将Kafka数据源配置到Grafana中,但如何在面板中显示我的"温度传感器"主题的消息?这些是来自ds18x20传感器的温度值输出,如下图所示,来自Kafka控制台消费者。
卡夫卡控制台消费者
该主题能够在传感器运行时消耗所有温度值,然而,当我尝试在Grafana中可视化温度数据时,当我已经完成Kafka配置时,时间序列图没有相应地显示任何值。
Kafka仪表板
这就是我所做的-
Kafka数据源/卡夫卡主题描述
python3-中的Kafka python库
import socket
import json
from kafka import KafkaProducer
producer = KafkaProducer(value_serializer=lambda m: json.dumps(m).encode('ascii'), bootstrap_servers='kafka.develop.com.my:9092')
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind(("", 1024))
s.listen(5)
while True:
clt, adr=s.accept()
print(f"Connection to {adr} established")
while True:
data = clt.recv(1024)
f = float(data)
print('Received', data)
temp = {"temp":f}
producer.send('temp-sensor', value=temp)
clt.close()
此外,我添加了Prometheus数据源,并将Kafka Overview仪表板导入Grafana。仪表板显示,当我运行代码时,从"温度传感器"主题收到了一些消息/字节。
卡夫卡概览-普罗米修斯
所以,我想知道我错过了什么或做错了什么,我的Kafka数据源没有在图表中显示消息。
不清楚您正在使用的DataSource,但这一个在已知限制下表示它只接受JSON,而不接受单个浮点值,因此更新您的Python代码以使用value=json.dumps({"value1": data})
他们甚至有自己的Python生产者示例。