# 数据模型

# 时间序列术语

术语 描述
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 中的字段存在字段类型的定义,不同的字段类型会在存储时进行聚合存放。详细内容可参考下一节。