按照时间戳和值的序列存放的标签与向量
本帖最后由 FYIRH 于 2020-12-6 23:39 编辑正如图10-2的示范数据所示,time-series 是按照时间戳和值的序列存放的,我们称之为向量(vector)。就像线性代数中的向量一样,这些向量是一个存放在time-series存放区中的多维矩阵中的某一列,或者是某一个对角线数值串。理论上来说,我们可以在描述这个数据结构时,忽略时间戳。因为序列中的每个值都是按照固定间隔插入的,不管是1s,还是10s,相邻的值的时间差是固定的。
time-series的名字称为标签集合(labelset),因为它的实现方式就是一个标签(key=value)的集合。其中一个标签是变量名称,也就是 varz 页面中显示的键名。
在实现中,有一些标签被标记为重要的(important)标签(这里更多的是指代码中的一个分类,重要的标签会建有特殊索引,可加快查找速度)。在time-series数据库中,标识一个time-series 的标签必须同时有以下几个标签∶
var代表变量名称。
job被监控的软件服务器类型名。
service一个松散定义的软件服务器类型组名,可以按对外名称分类,也可以按对内名称分类。
zoneGoogle定义的一个惯例名称,代表收集该条信息的Borgmon所在的位置(一般以数据中心名称赋值)。
这 4条综合起来形成了一个完整的变量表达式(variableexpression)∶{var=http_requests,job=webserver,instance=host0;80,service-web,zone-us-west}
当对time-series进行查询时,不一定要指定所有的标签。如果查询中指定了一个标签集合,那么所有符合这个标签集合的time-series都会被查询出来,形成一个向量返回。举例说明,如果在一个集群中,有超过一个任务实例,那么下面的查询会返回多个结果∶
{var=http_requests,job=webserver,service=web,zone=us-west}
查询结果将会是一个向量,其中包含了每个符合条件的 time-series 的最后一个数值∶{var-http_requests,job=webserver,instance=host0;80,service=web,zone=us-west}10{var=http_requests,job=webserver,instance=host1:80,service=web,zone=us-west}9{var=http_requests,job=webserver,instance=host2:80,service=web,zone=us-west}11{var=http_requests,job=webserver,instance=host3:80,service=web,zone=us-west}0{var=http_requests,job=webserver,,instance=host4:80,service=web,zone=us-west}10
标签的来源有∶● 监控目标的名称,如job 和 instance 来源于任务名和实例地址。● 监控目标自行提供,如提供的Map 类型变量。● Borgmon 配置文件,其中可以添加和替换标签。● Borgmon 规则。
同时,通过在变量表达式后面增加一个时间参数,可以查询一段时间内的全部 time-series 值;
{var=http_requests,job=webserver,service=web,zone=us-west}
该条查询返回过去10分钟内,所有满足条件的time-series。如果每分钟收集一次监控指标,那么应该每条记录获得 10 个数值点∶
{var=http_requests,job=webserver,instance=host0:80,..}01 2 3 4 5 6 7 8 9 10 {var=http_requests,job=webserver,instance=host1:80,..}01 2 3 4 4 5 6 7 8 9{var=http_requests,job=webserver,instance=host2:80,..}01 2 3 5 6 7 8 9 9 11{var=http_requests,job=webserver,instance=host3:80,..}00 0 0 0 0 0 0 0 0 0{var=http_requests,job=webserver,instance=host4:80,..}01 2 3 4 5 6 7 8 9 10
Borg 规则计算Borgmon从本质上来说,是一个可编程计算器,并且加入了一些语法糖,从而可以让它产生报警信息。数据收集部分和存储部分都是为这个可编程计算器而服务的。
:)
页:
[1]