OpenTSDB调用/api/put接口,返回500错误 All Unique IDs for tagv on 3 bytes are already assigned

All Unique IDs for tagv on 3 bytes are already assigned

报错信息表明所有用于tagv的3字节唯一ID都已经被分配了,不再有可用的ID给新的tagv进行关联。
OpenTSDB在设计时默认每个tagk或tagv都分配了一个3字节的UID。然而,由于3字节UID的限制,最多只能包含167万(16,777,216)不同的UID。这意味着如果你有超过这个数量的不同tagk或tagv,你可能需要改变数据源,使其抽象出更少的tagk或tagv。

问题

tags字段的key/value对数不超过这个限制, 是所有metric下的tags吗

对的,错误信息指出的是在所有的metric下,每个tagv已经分配的唯一ID数超出了OpenTSDB的3字节限制,也就是说每个metric的tags的key/value对数加起来不能超过16777216个不同的组合。这个限制是针对整个数据库的,而不是单独的metric,因此你需要检查所有的metric,确保没有超出总的UID限制。
如果你在检查过程中找到了标签数量过多的metric,你可能需要重新考虑你的数据模式,比如合并某些metric或者重新设计标签系统,以减少唯一的tagv组合数量。这样不仅可以避免当前的问题,还能为将来可能的拓展留下空间。
希望这对你有所帮助,如果还有其他问题,或者需要进一步的讨论,请继续。

key/value 是指tags标签下任意两个tag,如
tags:
OpenTSDB旨在在查询执行期间有效地组合多个不同的时间序列。这样做的原因是,当用户查看他们的数据时,他们通常会从较高的级别开始询问诸如“数据中心的总吞吐量是多少?”之类的问题。或“按地区划分的当前用功耗是多少?”。在查看这些高级别值之后,可能会出现一个或多个值,因此用户可以深入研究更详细的数据集,例如“我的LAX数据中心主机的吞吐量是多少?”。我们希望能够轻松回答这些高级问题,但仍然可以深入了解更多细节。 但是,如何将多个单独的时间序列合并为一个系列的数据呢?聚合函数提供了将不同时间序列数学方式将不同时间序列合并为一个的方法。过滤器用于按标签对结果进行分组,然后将聚合应用于每个组。聚合类似于SQL的GROUP BY子句,其中用户选择预定义的聚合函数以将多个记录合并为单个结果。但是在TSD中,每个时间戳和组聚合一组记录。 每个聚合器都有两个组件: 功能 - 应用的数学计算,例如对所有值求和,计算平均值或选择最高值。 插值 - 一种处理缺失值的方法,例如当时间序列A的值为T1但时间序列B没有值时。 本文档重点介绍如何在一个组中按上下文使用聚合器,即将多个时间序列合并为一个时。此外,聚合器可用于下采样时间序列(即返回较低分辨率的结果集)。有关更多信息,请参阅下采样。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值