InfluxDB:空标签导致字段为0

问题描述

我有一个python worker,只要存在该值,它就会使用tags值将度量发送到influxDB。当此tags值不存在时,我将tags设置为空字典。

def emit_measurements(self,values: Dict,tags: Optional[Dict[str,str]] = None):

    if tags is None:
        tags = {}
    
    measurement = {
        "measurement": "some_name","tags": tags,"time": datetime.Now(tz=pytz.UTC).isoformat(),"fields": values,}

    self._influx_client.write_points([measurement])

在我的流量数据库中,每当tags不存在时,我都会看到这些字段的正确值,但是一旦tags发出一个事件,所有字段就会变成0并保持原样。

(我假设只要存在tags,测量表就会损坏,这会导致每个字段的值均为0)

在某些事件不发出此信号的情况下,此tags是否可以是可选的?

解决方法

是的,标签是用于测量的可选元数据。

引用tags documentation

记录的InfluxDB数据结构中的键值对 元数据。标签是数据结构的可选部分,但它们 可用于存储常用查询的元数据;标签被索引所以 标签查询表现出色。查询提示:将标签与字段进行比较; 字段未编制索引。