gRPC ,为什么要从入门到再入门?

gRPC是一个现代开源高性能远程过程调用 (RPC) 框架,可以在任何环境中运行。它通过对负载平衡、跟踪、健康检查、身份验证和其他横切功能的可插拔支持,在有效连接数据中心和跨数据中心的微服务方面发挥着关键作用。它还可以应用于分布式计算的最后一英里,将设备、移动应用程序和浏览器连接到托管在公共云上的后端服务。这个在软件堆栈中的独特位置可以提供整个系统的清晰的端到端视图。新的 gRPC 可观察性功能为在 Google Cloud 上运行/能够连接到 Google Cloud 的工作负载提供了这种清晰度。


提供的可观察性数据种类


gRPC 可观察性提供三种不同类型的数据:


1.关键RPC事件的日志,包括:

  • 当客户端/服务器发送或接收 RPC 的元数据时

  • 当客户端/服务器发送或接收 RPC 的消息负载时

  • 当客户端/服务器完成具有最终状态(OK 或错误)的 RPC 时


2.关键RPC事件的指标(或统计数据),包括:

  • 客户端/服务器发送或接收了多少字节

  • 客户端/服务器启动或完成了多少 RPC

  • RPC 在客户端和服务器之间完成需要多长时间(称为往返延迟)


3. 分布式跟踪 RPC 及其在系统中的扇出 RPC。例如,当从上游提供 RPC 服务时,服务器可能需要为自己的后端创建多个 RPC。分布式跟踪帮助用户了解这些 RPC 之间的关系、每个 RPC 的延迟以及整个系统中发生的关键事件。


可观察性数据是如何产生和收集的


当开发人员在其二进制文件中启用 gRPC 可观察性功能时,gRPC 库会将日志记录、指标和跟踪数据报告给 Google Cloud 的操作套件。收集可观察性数据后,用户可以利用 Google Cloud 控制台执行以下操作:

  • 可视化可观察性数据

  • 从操作工具中导出可观察性数据,以便使用其他工具进行进一步分析


记录

gRPC 可观察性为关键 RPC 事件提供日志,其中包含的信息可帮助开发人员了解这些事件发生时的上下文。这种上下文信息可以包括正在调用哪个 gRPC 服务/方法事件是发生在客户端还是服务器端是发送元数据还是有效负载相应数据的大小,甚至是元数据和/的具体内容或有效载荷。然后,这些日志条目会显示在 Cloud Logging 中,并带有帮助程序来过滤甚至自定义查询以搜索相关日志。


指标

gRPC 可观察性提供了几个指标:RPC 的往返延迟、在特定时间段内启动和完成的 RPC 数量,甚至是通过线路发送/接收的字节数。所有这些指标都可以按几个重要参数进行分组,包括服务/方法名称和最终状态。也可以包括特定于平台的指标,具体取决于 Google Cloud 环境和实际运行的 gRPC 负载。例如,在 Google Kubernetes Engine (GKE) 平台上,开发者可以通过命名空间、容器和 Pod 信息字段进行分组/过滤,以挖掘更细粒度的统计数据。借助这些指标,Cloud Monitoring 使用户能够识别问题,包括:

  • 哪个容器的延迟高于正常延迟

  • 哪个 pod 的错误率高于正常水平

  • 其他


追踪

gRPC 可观察性还允许开发人员配置 RPC 的采样率。采样决策在整个系统中传播,因此无论 RPC 实际发生在何处,开发人员始终可以看到其处理逻辑的完整、端到端的分布式跟踪。采样的 RPC 和由它们触发的任何其他 RPC 在 Cloud Trace 中显示为父/子跨度。


入门


借助 gRPC 可观察性,可以收集 gRPC 工作负载的遥测数据(日志、指标、轨迹)并将其报告给 Google Cloud 运维套件。它可以帮助开发人员更好地了解他们的系统,并使他们能够诊断以下问题:

  • 哪些微服务突然变得异常缓慢(服务器端的处理延迟很长)?

  • 哪些微服务突然处理的 QPS 变少了,有规律吗?

  • 特定微服务是否存在潜在的网络问题,因为在客户端测量到高延迟,但在服务器端测量到正常延迟?如果是这样,能否将问题定位在特定的集群,甚至特定的节点/pod 中?


———

WebEye是中国大陆地区首家获得 Google Cloud MSP 资质的合作伙伴。WebEye致力于用创新的技术向中国企业提供数字化效率创新服务,实现数字化赋能。我们不断帮助客户打造新的运营与协作方式,打造新的竞争优势,构建资源高效链接,共创价值生长空间。

WebEye整合全球资源,打造全球数字化营销体系,为企业提供营销增长服务营销增长引擎以及企业上云三大板块业务,涵盖数字营销、数字创意、游戏发行、流量变现、程序化广告、数据洞察、云计算等一站式全链条增长产品矩阵,是中国互联网出海领军企业。

返回全部