数据模型
时间序列术语
术语 | 描述 |
---|---|
Namespace | 命名空间,类似database name |
Metric Name | 指标名 |
Tags | 每个指标名下面可以加多个 Key/Value 类型的 Tag |
Time Series | 时间线,Metric Name + Tags 的组合对应一条时间线 |
Field | 一个指标下面可以有多个字段 |
Data Point | 一个字段在相应时间点的数据点 |
时间序列唯一标识
每一个时间序列都由指标名
与标签
的键值对以及字段
来唯一标识。 指标名记录了监控对象的具体意义(例如,cpu,即监控对象为cpu的资源使用情况),由于我们采用pb
进行metric传输,无需进行正则检查,仅对该文本数据作长度检查。
标签记录的是可枚举的文本数据(例如,ip=1.1.1.1,zone=sh,即该机器的ip地址为1.1.1.1,生产区为上海)。在查询时,我们可以对这些标签来做过滤和聚合操作,比如查找单条ip地址的机器、查找多条ip地址的机器、前缀搜索50条ip地址的机器、搜索sh上产区的所有机器等。对于任一标签的修改及删除都会产生另外一条时间序列。
标签名称同样没有特别的限制,LinDB 默认限制 tag-key 的数量为32,标签组合数限制为10K;
字段对应的是文本到数值的键值对(例如,idle=32,system=10,user=20,即该条时间序列的空闲利用率为32、系统态用户态的利用率分别为10、20)。
除字段名之外,LinDB 中的字段存在字段类型的定义,不同的字段类型会在存储时进行聚合存放。详细内容可参考下一节。