Python 与Grafana一起使用的XDB的正确模式设计?
我设置了各种安全摄像头,当检测到运动时触发。然后,一个程序从相机上抓取一幅静止图像,运行它进行一些深入的学习,并尝试对图像中的各种对象进行分类。然后,我将对象分类的结果记录到InfluxDB中,这样我就可以使用Grafana浏览各种对象被检测的频率、不同对象的分类可信度等。相机每天处理和分类数千个运动事件 下面是演示我的模式的Python代码片段:Python 与Grafana一起使用的XDB的正确模式设计?,python,grafana,influxdb,Python,Grafana,Influxdb,我设置了各种安全摄像头,当检测到运动时触发。然后,一个程序从相机上抓取一幅静止图像,运行它进行一些深入的学习,并尝试对图像中的各种对象进行分类。然后,我将对象分类的结果记录到InfluxDB中,这样我就可以使用Grafana浏览各种对象被检测的频率、不同对象的分类可信度等。相机每天处理和分类数千个运动事件 下面是演示我的模式的Python代码片段: event_name = "object_detection" camera_name = "front"
event_name = "object_detection"
camera_name = "front"
label = "person"
json_body = [{
'measurement': event_name,
'tags': {
'camera': camera_name,
'label': label,
},
'time': data['timestamp'],
'fields': {
'confidence': prediction['confidence'],
'min_confidence': prediction['min_confidence'],
'alert': prediction['alert'],
'y_min': prediction['y_min'],
'x_min': prediction['x_min'],
'y_max': prediction['y_max'],
'x_max': prediction['x_max'],
}
}]
我遇到的问题是,我不能(轻松地)在Grafana中查询这些数据——我只得到一个空数据集。但是如果我深入查询检查器,我确实看到了数据。它只是嵌套得很重
我不知道我是在XDB还是在格拉法纳做错了什么?有趣的是,XDB Python库使用以下内容:
所以我现在很困惑?我是否应该将每个字段值分解为它自己的数据点?这将使Grafana中的查询更容易,但似乎是一个低效的解决方案。最好的选择是什么?数据模式看起来很完美。只有Grafana查询可能是个问题。但我不确定你想问什么。看起来你正试图找到每小时最大的自信。所以,在没有任何匹配记录的情况下,XDB在一小时内返回
null
,这是正常的。如果要自定义该行为,请使用“填充”。文档:数据模式看起来很完美。只有Grafana查询可能是个问题。但我不确定你想问什么。看起来你正试图找到每小时最大的自信。所以,在没有任何匹配记录的情况下,XDB在一小时内返回null
,这是正常的。如果要自定义该行为,请使用“填充”。文件:
>>> json_body = [
{
"measurement": "cpu_load_short",
"tags": {
"host": "server01",
"region": "us-west"
},
"time": "2009-11-10T23:00:00Z",
"fields": {
"value": 0.64
}
}
]