OpenTsdb官方文档——理解指标和时间序列

  

? ? OpenTSDB是一个时间序列数据库。时间序列是一段时间内某个特定指标量的一系列数值数据点。每个时间序列由一个指标量加上一个或多个与此指标量相关联的标签组成(我们会稍微介绍一下标签)。指标量是您希望随时跟踪的任意特定数据(例如点击Apache主机文件)。

  

? ? OpenTSDB也是一个数据绘图系统.OpenTSDB绘制的东西与其他系统有点不同。我们将在下面更详细地讨论绘图,但现在对于OpenTSDB来说,任何给定绘图的基础都是指标,量了解这一点是很重要的。它采用该指标量,找出所选时间范围的所有时间序列,将这些时间序列聚合在一起(例如将它们累加)并绘制结果。绘图机制非常灵活且功能强大,可以做的远远不止这些,但现在让我们来谈谈时间序列的关键——指标(公制)。

  

? ?在OpenTSDB中,指标命名为一个字符串,像“http.hits”。为了能够存储该指标量存在的所有位置的不同的值,可以在将数据发送到保洁时使用一个或多个标签标记数据.TSD存储时间戳,值和标签。当您想要读取这些数据时,TSD中检索读取您提供的时间范围的所有值,可选地使用您提供的标签过滤器,按照您想要的算法聚合所有的这些值,并绘制该指标值随时间变化的图形。

  

? ?到目前为止,我们已经介绍了一些内容。为了帮助你理解它的工作方式,将从一个典型的例子开始。假设您有一堆Web服务器,并且您想跟踪两件事情:Web服务器点击量和系统负载的平均值。我们来定义指标名称来表达它们。对于平均负载,我们称之为“proc.loadavg.lmin”(因为在Linux上,你可以通过读?proc/loadavg轻易获取这些数据)。对很多Web服务器来说,有一种方法可以向Web服务器请求一个表示从服务器启动以来点击服务器次数的计数器。这是一个便利的计数器,我们称之为“http.hits”的指标量。我选择这两个例子有如下两个原因:

  
      <李>我们将看看OpenTSDB如何轻松地处理两个计数器(随着时间的推移,值会单调递增,除非通过重新启动/重新启动或溢溢出重置),以及如何处理正常值的上升和下降,如负载平均值.OpenTSDB的一大优点就是无需对计数器进行率比率的计算,它会为你做这些。   <李>我们还可以向您展示如何在同一图表上绘制两个不同比例的指标量,这是关联不同指标量非常好的一种方式。   
  

第一个数据点

  

? ?在没有详细讨论收集器如何将数据发送到TSD的过程中,您可以编写一个收集器,将每个服务器的这些数据点的当前值定期发送到TSD中。因此,TSD中可以聚合来自多个主机的数据,您可以用“主机”标签标记每个值,所以,如果有Web服务器A, B, C等,他们每个人都会定期向TSD发送这样的内容:

  
  

http。打1234567890 34877主机=
将proc.loadavg。1分钟1234567890主机=

1.35      

? ?这里的“1234567890”是以秒为单位的当前纪元(时代)时间(日期+ % s)。下一个数字是此时的指标值。这是来自主机一个的数据,因此标签标记为主机=A来自主机B的数据将被标记主机=B等等。随着时间的推移,会得到一堆存储在OpenTSDB中的时间序列。

  
 <代码>第号一个绘制点 
  

? ?现在,让我们重新回顾一下我们在开始时谈到的内容。时间序列是一段时间内某个特定指标量(及其标签)的一系列数据点。在这个例子中,每个主机都向TSD发送两个时间序列。如果你有三个箱子(主机)发送这两个时间序列,保洁将收集和存储6个时间序列。现在有数据了,我们开始绘制。
? ?要绘制HTTP点击量,您只需转到UI界面并输入http.hits为指标名称,然后输入时间范围。选中“率”复选框,因为这个特定的指标是一个速率计数器,而且,有随着时间的HTTP点击到Web服务器的比率。

  

聚合器

  

? ?UI界面上聚合函数的默认值是通过将每个主机的每个时间序列相加(总和)来聚合每个主机的时间序列。这意味着,保洁将采用这个三个时间序列(主机=A, B和C)的指标并将它们的值相加在一起,以提供给定时间内所有Web服务器的总的点击次数。请注意,您不需要在同一时间发送数据点,保洁将会找出它,因此,如果您的每个主机在某个时间点每秒提供1000次点击,则图表会显示3000。如果您想要显示每个Web服务器提供的点击次数,该怎么办?有两种方式。如果您只关心每个Web服务器的服务平均次数,只需将聚合器方法从和更改为avg即可。您也可以尝试其他(最大值,最小值)来查看最大值或最小值。更多的聚合函数正在起作用(百分位数,百分数等)。这是在每个间隔的基础上完成的,所以如果在某个时间点,您的某个网络服务器的服务时间为50每秒,其他服务器的服务时间为100个,稍迟一些另外一个网络服务器的服务时间为50每秒,而其他服务器的服务时间为100个,这两个点的最小值函数值将是50。换句话说,它不能确定哪个时间系列是总的最小值,只是告诉你主机的情节。另一种方法来查看每个Web服务器正在服务的点击数量吗?这是我们查看标签字段的地方。

OpenTsdb官方文档——理解指标和时间序列