Google Cloud 中的可观测性

Google Cloud Observability 包含可观测性服务,可帮助您了解应用的行为、运行状况和性能。通过了解应用的行为方式以及组件的连接方式,您可以更快、更高效地预测、识别和响应意外更改。

此文档包含以下信息:

可观测性简介

可观测性是一种收集和分析遥测数据的整体方法,可帮助您了解环境的状态。遥测数据是由应用和应用基础架构生成的指标、日志、跟踪记录和其他数据,提供有关应用运行状况和性能的信息。

指标
指标是关于一段时间内定期测量的运行状况或性能的数值数据,例如 CPU 利用率和请求延迟时间。指标意外变化可能表示需要调查问题。随着时间的推移,您还可以分析指标模式,以更好地了解使用模式并预测资源需求。
日志

日志是系统或应用活动随时间生成的记录。每个日志都是一组带时间戳的日志条目,每个日志条目都描述了特定时间点的事件。

日志通常包含丰富的详细信息,可帮助您了解应用的特定部分发生的情况。但是,日志无法提供关于应用某个组件的更改与另一个组件中的活动之间关系的良好信息。跟踪记录有助于弥补差距。

跟踪

跟踪记录表示分布式应用中各部分请求的路径。一个应用组件中触发提醒通知的指标或日志条目可能是源自另一个组件的问题的体现。通过跟踪记录,您可以跟踪请求流并检查延迟时间数据,以帮助您确定问题的根本原因。

其他数据

通过分析其他数据上下文中的指标、日志和跟踪记录,您可以获得更多数据洞见。例如,与提醒的严重性标签或与日志中的请求相关联的客户 ID 的标签提供了上下文,这对问题排查和调试非常有用。

分布式应用的监控、调试和问题排查可能很困难,因为涉及许多系统和软件组件,并且通常混合了开源和商业软件。

可观测性工具通过收集有意义的数据并提供探索、分析和关联数据的功能,帮助您应对这种复杂性。可观察环境可帮助您做到以下几点:

  • 主动发现问题,以免用户受到影响
  • 同时排查已知问题和新问题
  • 在开发期间调试应用
  • 规划和了解更改对应用的影响
  • 探索数据以发掘新的洞见

简而言之,可观察环境可帮助您保持应用可靠性。在满足当前可用性和故障恢复能力的情况下,应用是可靠的。

如需详细了解可靠性做法(包括与可观测性相关的原则和做法),请阅读 Site Reliability Engineering: How Google Runs Production Systems(《站点可靠性工程:Google 如何运行生产系统》)一书。主题包括:

Google Cloud Observability

Google Cloud Observability 中的服务可帮助您收集、分析和关联遥测数据。它们还提供了内置默认设置,可帮助您更快地开始使用,例如默认信息中心和提醒政策。

创建 Google Cloud 项目时,Cloud Monitoring、Cloud Logging 和 Cloud Trace 属于默认启用的服务

监控:使用收集的指标来监控运行状况和性能、识别趋势和问题,并通知行为变化。

  • 自动收集大多数 Google Cloud 服务的指标。
  • 从第三方应用收集系统和应用指标。
  • 使用默认或自定义信息中心直观呈现和分析指标。
  • 使用合成监控来测试应用的性能。
  • 定义服务等级目标 (SLO) 以监控服务可靠性。
  • 出现问题时接收提醒。

Logging:使用收集的日志来调试应用、排查应用问题并获取数据洞见。

  • 自动收集大多数 Google Cloud 服务的日志。
  • 自动收集大多数 Google Cloud 服务的审核日志
  • 从第三方软件收集日志。
  • 探索和分析日志。
  • 使用 Log Analytics 通过 BigQuery 对您的日志和其他数据执行分析。例如,您可以使用 BigQuery 将日志中的网址与已知恶意网址的公开数据集进行比较。
  • 通过日志创建指标。
  • 当日志中显示指定消息时接收提醒。

Error Reporting:查看和分析正在运行的云服务的错误:

  • 汇总 Error Reporting 在日志条目中检测到的错误,并查看关联的日志。
  • 汇总您的应用向 Error Reporting API 发送的错误。

Trace:在调试和问题排查时查看并分析应用请求的流和延迟时间。

  • 跟踪请求如何在您的应用中传播。
  • 从应用中收集数据并查看数据图表。
  • 查看显示性能下降的延迟时间报告。
  • 接收应用的延迟时间配置文件变化的提醒。
  • 使用自定义属性为跟踪记录添加注解
  • 将跟踪记录导出到 BigQuery,以便您可以使用其他数据进行探索。

Cloud Profiler:分析应用的 CPU 和内存用量,以便发现提升性能的机会。

  • 从应用中收集 CPU 用量和内存分配数据。
  • 确定应用中资源耗用量最大的部分,并获取应用的整体性能数据分析。

开始使用

本部分介绍熟悉 Google Cloud 中可观测性功能的步骤。

试用快速入门

请通过试用快速入门来熟悉可用的服务。

查看自动收集的数据

大多数 Google Cloud 服务都会自动生成预定义的指标和日志。这意味着您可以开始查看受支持的 Google Cloud 服务的一些可观测性数据,而无需进行额外配置。

  • 某些 Google Cloud 服务(例如 Google Kubernetes Engine (GKE)Compute EngineCloud SQL)在 Google Cloud 控制台中提供默认信息中心,用于查看服务上下文中的可观测性数据。
  • 默认情况下,Compute Engine、GKE 和 Cloud Run 会生成系统指标和日志,您可以配置额外数据集合。
  • Cloud Run functions 和 App Engine 会自动生成指标、日志和跟踪记录。

您还可以在 Metrics Explorer 中绘制收集的指标,在日志浏览器中查看日志,或在 Trace 中查看跟踪记录。如需一起查看相关数据,请创建自定义信息中心。例如,您可以创建一个信息中心,其中包含虚拟机的日志、性能指标和提醒政策。

配置 Compute Engine 虚拟机以收集其他数据

默认情况下,如果没有 Ops Agent,Compute Engine 虚拟机仅收集基本系统指标和日志

安装 Ops Agent,以便从 Compute Engine 实例和应用收集其他遥测数据(日志、指标和跟踪记录),以进行问题排查、性能监控和提醒。

配置 GKE 集群以收集其他数据

默认情况下,GKE 集群会将系统日志和系统指标发送到 Logging 和 Monitoring。Google Cloud Managed Service for Prometheus 处理第三方和用户定义的指标的收集。

  • 使用可观测性指标软件包更好地了解应用和集群资源的状态。例如,控制平面指标有助于创建 SLO 以监控服务可用性和延迟时间。
  • 监控第三方应用,例如 Postgres、MongoDB 和 Redis。这些集成提供了预配置的信息中心和提醒政策。

配置 Cloud Run 以收集自定义数据

如果您有一项可写入 Prometheus 指标的 Cloud Run 服务,那么您可以使用 Prometheus 边车将指标发送到 Cloud Monitoring。

如果您的 Cloud Run 服务改为写入 OTLP 指标,您可以使用 OpenTelemetry 边车。如需查看示例,请参阅使用 Sidecar 收集 OTLP 指标的教程

对应用进行插桩处理

插桩是您添加到应用以发出遥测数据的代码。有几种开源检测框架可让您从应用收集指标、日志和跟踪记录,并将这些数据发送给任何供应商,包括 Google Cloud。不过,您可能不需要对应用进行插桩。例如,Cloud Run、Cloud Run functions 和 App Engine 提供自动跟踪功能。

如需对应用进行插桩,我们建议您使用与供应商无关的开源插桩框架(例如 OpenTelemetry),而不是供应商和产品专属的 API 或客户端库。如需了解如何对应用进行插桩,请参阅插桩和可观测性

如需查看演示如何对应用进行插桩处理以将遥测发送到 Google Cloud 的代码示例,请参阅以下内容:

您可能还有兴趣了解以下主题: