借助微服务可观测性工具,您可以对应用进行插桩处理,以在 Cloud Monitoring、Cloud Logging 和 Cloud Trace 中收集和呈现部署在 Google Cloud 和其他位置的 gRPC 工作负载。
本文档适用于 gRPC 服务所有者、网站可靠性工程师以及使用遥测数据进行问题排查和优化 gRPC 工作负载的任何人。
可观测性将 OpenCensus 的指标、跟踪记录和 gRPC 日志记录封装到单个统一插件中,而不会公开任何依赖项。微服务可观测性使用与 Cloud Monitoring、Cloud Logging 和 Cloud Trace 集成的可观测性数据。本文档介绍了如何将 OpenCensus 插件整合到 gRPC 应用中。
为了帮助您收集信息并调试应用,微服务可观测性包括以下功能:
- 传输级 RPC 事件日志记录生成。
- 分布式跟踪支持。
- Cloud Monitoring 支持,包括预定义信息中心。
- Cloud Logging 建议的查询。
- 资源标签和自定义标签。
特性
本部分介绍微服务可观测性功能。
遥测集成
默认情况下,每种 gRPC 语言(C++、Go 和 Java)的可观测性插件软件包与 Google Cloud Observability 集成。借助极少配置,插件将检索有关项目和部署的元数据,并配置跟踪、指标和日志记录数据生成的默认数量。
检查 RPC 传输级事件
远程过程调用 (RPC) 的生命周期可以包含元数据事件,包括标头和尾部、消息事件和状态事件,包括 OK 状态和错误状态以及结束事件。使用微服务可观测性时,您可以检查每种事件类型的详细信息。您可以检查序列化消息长度、权限、客户端/服务器地址,以及客户端或服务器是否取消了 RPC。
借助显式设置,微服务可观测性可以为消息或标头启用载荷日志记录。您可以分别为载荷日志、控制消息或标头载荷日志设置大小限制。您还可以使用或不使用通配符指定方法的目标组。
对 RPC 的分布式跟踪支持
服务器架构可以使 RPC 扇出到流经组件的多个调用或单独的请求。微服务可观测性使用分布式跟踪,以便更轻松地分析和排查复杂系统。微服务可观测性产品为 gRPC 应用提供内置支持,以启动跟踪记录、生成 span 并传播跟踪上下文。
捕获用于指标监控的测量结果
该插件为消息级、RPC 级或方法级(从消息计数和消息大小到延迟时间)的众多措施提供第一方支持。测量结果会上传到 Cloud Monitoring。您可以使用 Cloud Monitoring Metrics Explorer(其中有一个包含一组预先存在的图表的信息中心)探索收集的指标。您还可以在自己的自定义信息中心内显示指标。
跟踪记录和日志关联
跟踪记录可帮助您识别系统中的错误和问题,而日志条目可帮助您识别任何错误和问题的详细信息。通过跟踪记录和日志,您可以深入了解错误或问题,从而更全面地了解跨不同系统的 RPC。微服务可观测性会自动将日志与跟踪记录相关联,而跟踪记录则根据上游采样决策或用户定义的采样率进行采样。
资源标签和自定义标签
为了使您更有效地探索可观测性数据,微服务默认提供资源标签,并允许您的应用定义自定义标签。资源标签是特定于部署的键值对,用于注释工作负载的位置,例如 Compute Engine 节点名称或 Google Kubernetes Engine 命名空间。
自定义标签提供了一种附加自定义信息的机制,如下所示:
- 作为 span 标签以跟踪数据。
- 作为指标标签到指标数据。
- 作为日志条目标签的日志记录数据。
如果您想要包含源代码版本或规范服务名称,自定义标签会非常有用。您可以使用它们添加特定于用户的信息,这有助于识别日志、指标和跟踪记录中的特定可观测性数据。
建议的查询
微服务可观测性会自动在 Cloud Logging 中提供多个建议的查询。如需了解完整信息,请参阅建议的查询。
架构
下图展示了微服务可观测性如何收集和传送可观测性数据:
首先,您需要为您的 gRPC 工作负载指定可观测性配置。可观测性配置包含您在环境变量中设置的字段。配置定义了以下内容:
- 导出到 Cloud Trace 的 Trace span。
- 导出到 Cloud Monitoring 的指标数据。
- 导出到 Cloud Logging 的 RPC 事件。
然后,您可以在 Cloud Monitoring 的自定义信息中心上查看此信息,并在 Cloud Logging 中获取建议的查询。您还可以将信息从 Cloud Trace、Cloud Monitoring 和 Cloud Logging 导出到您选择的第三方平台。
价格
微服务可观测性价格与 Google Cloud Observability 价格相同。将 Cloud Trace、Cloud Logging 和 Cloud Monitoring 与微服务可观测性插件搭配使用时,无需另行付费。如需了解详情,请参阅 Google Cloud Observability 价格。
后续步骤
如需了解如何设置微服务可观测性,请参阅设置微服务可观测性。
如需详细了解配置数据、跟踪记录定义、指标定义和日志定义,请参阅微服务可观测性参考文档。