OpenTSDB是一个可扩展的时序数据库,可以在不丢失粒度的情况下存储和提供大量时间序列数据。常用于基础监控、[]。
查询或读取数据
OpenTSDB提供了许多方法来提取、处理和分析数据。可以用CLI工具、HTTP API查询数据,并查看GnuPlot图(GnuPlot是一个命令行的交互绘图工具)。开源工具比如Grafana和Bosun也可以连接TSDB。使用 OpenTSDB 的基于标签的系统进行查询可能有点棘手,因此请通读本文档。
基本概念
TSD 时间序列守护线程
Metric 指标
tag 标签
group 组
aggregation 聚合
查询参数
参数 | 数据类型 | 必需 | 描述 | 栗子 |
---|---|---|---|---|
Start Time | String or Integer | 是 | 查询的起始时间,可以是绝对时间,也可以是相对时间 | 24h-ago |
End Time | String or Integer | 否 | 查询的结束时间,如果没有提供结束时间,则会使用TSD的当前时间作为结束时间 | 1h-ago |
Metric | String | 是 | 系统中指标的全称,且是大小写敏感的 | sys.cpu.user |
Aggregation Function | String | 是 | 一个用来合并多条时间线的计算方法 | sum |
Filter | String | 否 | 过滤标签值以减少在查询或组中选取的时间序列数量,并在各种标签上聚合 | host=*,dc=lax |
Downsampler | String | 否 | 用于减少时间段内返回的数据点数量 | 1h-avg |
Rate | String | 否 | 用于计算结果每秒变化率 | rate |
Functions | String | 否 | 数据处理功能,如附加过滤、时移等 | highestMax(…) |
Expressions | String | 否 | 时间序列间的数据操作功能 | (m2 / (m1 + m2)) * 100 |
Times
Unix格式的或人类可读的时间戳都支持。因为OpenTSDB可以以毫秒分辨率存储数据,默认情况下查询返回秒分辨率的数据以对现有的工具向后兼容。如果您每秒存储多个数据点,请确保您发出的任何查询都包含 1s-<func>
的采样器以读取正确的数据, 否则将发出不确定的值。
要以毫秒分辨率提取数据,请使用 /api/query
并指定 msResolution(ms 也可以,但不推荐)JSON 参数或查询字符串标志,它将绕过向下采样(除非指定)并返回 Unix 中的所有时间戳毫秒分辨率。 此外,scan命令返回写入存储的时间戳。
Filters
// TODO