因在物联网项目中,使用influxdb作为存储硬件设备实时上报指标数据的存储数据库,支持实时统计生成相关统计报表的功能。

线上生产环境经过小一个月的运行后,某天线上消息中间件告警,消息队列阻塞,出现慢消费的相关问题,线上排查,发小无法将上报的设备相关数据存储到influxdb当中,数据库操作超时。经过排查发现,存储时序数据库时,数据结构设计时将数据存储的时间也作为tag,导致influxdb的时间线基数超过默认上线,influxdb 2.x TSM引擎(线上环境)默认环境配置。在 InfluxDB 2.x (TSM引擎) 中,针对单个 Tag(标签) 的数量限制,其实主要体现在每个 Tag Key 能关联的唯一值的数量上,而不是 Tag Key 本身的个数。

Tag Value 的数量每个 Tag Key 默认最多只能有 10万个 唯一值

多个维度的tag 的value 组合生成的时间线不能超过100万。

而将数据的落库时间也作为tag,显然不合理,经修改去掉此tag,并将bucket 设置了数据的有效期。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐