了解 Kubernetes 集群中的 OpenCensus 和检测

了解如何使用 OpenCensus,这是一组用于可观测性检测和指标跟踪的开源库。
117 位读者喜欢这篇文章。
Ship captain sailing the Kubernetes seas

在本系列的上一篇文章中,我介绍了使用 Prometheus 进行监控,Prometheus 是领先的开源指标检测、收集和存储工具包。虽然 Prometheus 已成为许多用户监控 Kubernetes 的事实标准,但您可能出于某些原因选择另一种指标遥测方法。

一个原因是使用 Prometheus 会在您的集群中引入另一个需要维护和更新的组件,并且需要额外的管理来确保数据的长期持久性。另一个原因是 Prometheus 开箱即用地收集了数量非常庞大的指标集,在指标量是您整体可观测性成本的输入的情况下,这可能会导致成本过高。

本文将向您介绍 OpenCensus,这是一组用于可观测性检测的开源库。OpenCensus 是目前推荐用于检测服务以收集跟踪和指标的库。OpenTracing 和 OpenCensus 项目已合并到 OpenTelemetry 中,后者将成为推荐的库。

虽然 OpenCensus 同时支持指标和分布式跟踪,但本文重点介绍指标,具体包括:

  • 描述 OpenCensus 的检测方法及其数据模型
  • 通过一个教程来解释如何检测应用程序、部署示例应用程序,并查看您可以使用 OpenCensus 创建的指标

我将在以后的文章中重新讨论跟踪。

OpenCensus 基础知识

OpenCensus 的实现依赖于三个核心组件:

  • 检测以创建指标和记录数据点(因语言而异)
  • 导出器以将指标数据发送到存储后端(因语言而异)
  • 后端以存储指标并启用指标数据查询(因数据库而异)

要在您的应用程序中使用 OpenCensus 记录自定义指标,您需要了解特定编程语言和基础设施的这些元素。

检测

要了解如何检测您的应用程序,您首先需要了解 OpenCensus 的原语,即测量值度量视图聚合

  • 测量值: 测量值是最基本的实体;它是收集的单个数据点,表示某个时间点的值。例如,对于以毫秒 (ms) 为单位测量的延迟指标,100 的测量值可以表示延迟为 100 毫秒的事件。
  • 度量: 度量表示要记录的指标。例如,您可以使用“延迟”度量来记录来自您服务的 HTTP 响应延迟。度量由名称、描述和指标使用的单位组成。例如,要测量延迟,您可以指定:
    • 名称:response_latency
    • 描述:服务器响应延迟,单位为毫秒
    • 单位:毫秒
  • 视图: 视图是度量、聚合和可选标签的组合。视图是您将用来连接到导出器以将捕获的值发送到存储后端的机制。视图包括:
    • 名称
    • 描述
    • 将为此集合生成测量值的度量
    • TagKeys,如果您使用标签
  • 聚合: 每个视图还需要指定一个聚合;也就是说,视图将如何处理多个度量。聚合可以是以下之一:
    • 计数:视图中测量点数量的计数
    • 分布:视图中点的直方图分布
    • 总和:测量点值的总和
    • LastValue:仅测量值中最后记录的值

您还可以参考 OpenCensus 的 来源 以获取有关原语的更多信息。

导出器

一旦您编写了检测来创建度量、捕获测量值并将它们聚合到视图中,您就需要一个导出器将您记录的指标数据发送到您选择的存储后端。与 Prometheus 不同,Prometheus 公开一个专用的指标端点以进行抓取,OpenCensus 采用推送模型——导出器将您收集的数据推送到指定的后端。您需要根据以下内容选择导出器

  • 您的应用程序和检测编写所用的语言
  • 对统计信息(指标)的可用支持
  • 可用的后端选项

使用导出器需要在您的代码中实例化它、注册它,然后注册您的视图以使导出器将收集的数据发送到后端。

在 OpenCensus 中利用指标

现在您已经了解了 OpenCensus 如何工作以收集和导出指标的术语,接下来要学习的是 OpenCensus 中指标如何工作。与 Prometheus 不同,在 Prometheus 中,您必须预先定义指标类型,而 OpenCensus 仅要求您收集测量值,然后在视图聚合它们,然后再将它们发送到导出器。测量值支持整数和浮点值。从那里,您可以使用分布聚合创建直方图,使用计数聚合添加样本数,或使用总和聚合添加收集的值。

现在您已经基本了解了 OpenCensus 是什么、它的工作原理以及它可以收集和存储的数据类型。下载您最喜欢的工具(或使用 我的教程快速入门实验室)并试用 OpenCensus。

接下来阅读什么
标签
Yuri Grinshteyn - picture
Yuri Grinshteyn 在旧金山的 Google Cloud 工作,在那里他帮助客户构建可靠性和可观测性架构。每当有人提到 SLO 时,他都会大声欢呼。

评论已关闭。

Creative Commons License本作品根据知识共享署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.