kubernetes 集群
在本系列的最后一篇文章中,我介绍了Prometheus的监视功能,Prometheus是领先的开源度量工具,收集和存储工具包。 虽然Prometheus已成为许多用户监视Kubernetes的事实上的标准,但您可能出于某些原因选择了另一种度量标准遥测方法。
一个原因是使用Prometheus会在群集中引入另一个组件,该组件需要维护和更新,并且需要进行额外的管理以确保长期数据持久性。 另一个原因是,普罗米修斯开箱即用地收集了非常多的度量标准,在度量标准量是您的总体可观察性成本的输入的情况下,这可能会导致成本过高。
本文将向您介绍OpenCensus ,这是一组用于可观察性测试的开源库。 OpenCensus是当前推荐的库,可用于检测服务以收集跟踪和度量。 OpenTracing和OpenCensus项目已合并到OpenTelemetry中 ,它将成为推荐的库。
虽然OpenCensus启用了指标和分布式跟踪,但本文通过以下方式重点介绍指标:
- 描述OpenCensus仪器方法及其数据模型
- 遍历教程以解释如何对应用程序进行检测,部署示例应用程序以及查看可使用OpenCensus创建的指标
我将在以后的文章中回顾跟踪。
OpenCensus基础
OpenCensus的实现取决于三个核心组件:
- 该仪器创建指标和记录的数据点(因语言而异)
- 导出器,用于将度量标准数据发送到存储后端(因语言而异)
- 后端用于存储指标并启用查询指标数据(因数据库而异)
要在应用程序中使用OpenCensus记录自定义指标,您将需要了解特定编程语言和基础结构的这些元素。
仪器仪表
要了解如何对应用程序进行检测,首先需要了解OpenCensus的原语,即度量 , 度量 , 视图和聚合 。
- 度量:度量是最基本的实体。 它是收集的单个数据点,表示某个时间点的值。 例如,对于以毫秒(ms)为单位的延迟度量,度量值为100可能表示一个延迟为100ms的事件。
- 度量:度量表示要记录的度量。 例如,您可以使用“延迟”度量来记录服务的HTTP响应延迟。 度量由名称,描述和度量使用的单位组成。 例如,要测量延迟,您可以指定:
- 名称:response_latency
- 说明:服务器响应的延迟(以毫秒为单位)
- 单位:毫秒
- 视图:视图是度量,聚合和可选标签的组合。 视图是用于连接到导出器以将捕获的值发送到存储后端的机制。 视图包括:
- 名称
- 描述
- 将为此集合生成度量的度量
- TagKeys(如果使用标签)
- 聚合:还需要每个视图指定一个聚合; 也就是说,视图将如何处理多种措施。 聚合可以是以下之一:
- 计数:视图中测量点数的计数
- 分布:视图中点的直方图分布
- 求和:测量点的值之和
- LastValue:仅测量中的最后记录的值
您还可以参考OpenCensus的源,以获取有关基元的其他信息。
出口商
一旦编写了用于创建度量,捕获度量并将它们聚合到视图中的工具,就需要导出器将记录的度量数据发送到所选的存储后端。 与Prometheus不同,在Prometheus中公开要刮擦的专用度量标准终结点,而OpenCensus在推模型上工作-导出器将您收集的数据推到指定的后端。 您需要根据以下条件选择出口商 :
- 您的应用程序和工具所使用的语言
- 可用的统计信息(指标)
- 可用的后端选项
使用导出器需要在代码中实例化,注册它,然后注册视图,以使导出器将收集的数据发送到后端。
利用OpenCensus中的指标
在Prometheus中 ,您必须预先定义度量标准种类,OpenCensus仅要求您 收集度量,然后 将其 汇总到 视图中 ,然后再将其发送到 导出器 。
测量支持整数和浮点值。
在这里,您可以使用 分布聚合来创建直方图,使用 计数聚合来加总样本 数量 ,或者使用 总和来合计收集的值。
现在,您对OpenCensus是什么,它如何工作以及可以收集和存储的数据类型有了基本的了解。 下载您喜欢的工具(或在此处使用我的教程和快速入门实验室 ),并试用OpenCensus。
翻译自: https://opensource.com/article/20/2/kubernetes-opencensus
kubernetes 集群
|