? ?以下是使用示例数据集合的查询示例列表。我们将说明可能遇到的一些常见查询类型,以便了解查询系统的工作原理。示例集合中的每个时间序列都只存储一个数据点,并且UID已被截断为单个字节,以便于阅读。示例查询都是来自HTTP API的指标查询,并且仅显示m=组件。有关详细信息,请参阅/API/查询。如果使用的是CLI工具,查询格式会略有不同,请阅读特定命令的文档。
时间序列 指标 标签 TSUID 1 sys.cpu.system dc=dal主机=web01 0102040101 2 sys.cpu.system dc=dal主机=web02 0102040102 3. sys.cpu.system dc=dal主机=web03 0102040103 4 sys.cpu.system 主机=web01 010101 5 sys.cpu.system 主机==jdoe web01所有者 0101010306 6 sys.cpu.system dc=主机=web01松懈 010102050101 7 sys.cpu.system dc=主机=web02松懈 010102050102 8 sys.cpu.system dc=dal主机=web01 020202040101 9 sys.cpu.system dc=dal主机=web02 020202040102 uid的名字 UID 指标 ? cpu.system 01 cpu.user 02 Tagks ? 宿主 01 直流 02 老板 03 Tagvs ? web01 01 web02 02 web03 03 木豆 04 宽松的 05 jdoe 06
<>强警告:强>
? ?这并不是设置指标和标签的最佳方式,而是为了说明查询系统的工作原理。特别是,TS # 4和5,虽然是合法的时间序列,但可能会搞砸你的查询,除非你知道它们是如何工作的。一般来说,尽量为每个时间序列保留<强>相同数量和类型>强劲的标签。
的
? ?您可能想了解OpenTSDB如何在这里存储时间序列数据:存储。否,则请记住存储器中的每一行都有一个唯一的格式化的键:
<代码> & lt; metricID>& lt; normalized_timestamp>& lt; tagkID1>& lt; tagvID1>[…& lt; tagkIDN>& lt; tagvIDN>] 代码>
上面的数据表将被存储为
<代码> 01 & lt;TS祝辞0101 01 & lt;TS祝辞01010306 01 & lt;TS祝辞02040101 01 & lt;TS祝辞02040102 01 & lt;TS祝辞02040103 01 & lt;TS祝辞02050101 01 & lt;TS祝辞02050102 02年& lt;TS祝辞02040101 02年& lt;TS祝辞02040102 代码>
? ?当你查询OpenTSDB时:
-
<李>查询将被解析并进行验证,以确保格式正确,并且存在指标,标签名称和标签值。如果系统中不存在单个指标,标签名称或值,则会返回错误。李>
<李>然后它为底层存储系统设置扫描程序。
-
<李>如果查询没有任何标签或标签值,那么它将抓取任何匹配的数据行& lt; metricID> & lt; timestamp>,因此如果您有特定度量标准的大量时间序列,则这可能是许多行。李>
<李>如果查询确实定义了一个或多个标记,则它仍将扫描匹配的所有行& lt; metricID> & lt; timestamp>,但也会执行正则表达式以仅返回包含所请求标记的行。李>
李