监控

性能优化首先要确定关键指标,这些指标通常与延迟时间和吞吐量有关。添加监控功能来捕获和跟踪这些指标可以发现应用中的薄弱环节。有了指标,就可以进行优化以改进效果指标。

此外,许多监控工具都允许您为指标设置提醒,以便在达到特定阈值时收到通知。例如,您可以设置提醒,以便在失败请求的百分比比正常水平增加 X% 以上时收到通知。监控工具可以帮助您了解正常性能是什么样的,并识别延迟时间、错误数量和其他关键指标的异常峰值。在业务关键时间段内或将新代码推送到生产环境后,监控这些指标的能力尤为重要。

确定延迟时间指标

确保尽可能保持界面响应速度,并注意用户对移动应用的要求 更高。还应衡量和跟踪后端服务的延迟时间,尤其是在延迟时间可能导致吞吐量问题的情况下。

建议跟踪的指标包括:

  • 请求时长
  • 子系统粒度的请求时长(例如 API 调用)
  • 作业时长

确定吞吐量指标

吞吐量是指在给定时间段内处理的请求总数。吞吐量可能会受到子系统延迟时间的影响,因此您可能需要针对延迟时间进行优化,以提高吞吐量。

以下是一些建议跟踪的指标:

  • 每秒查询次数
  • 每秒传输的数据大小
  • 每秒 I/O 操作数
  • 资源利用率,例如 CPU 或内存用量
  • 处理积压大小,例如 Pub/Sub 或线程数

不只是平均值

衡量性能时的一个常见错误是只关注平均值。虽然这很有用,但它无法提供有关延迟时间分布的洞见。更好的跟踪指标是性能百分位数,例如指标的第 50、75、90 和 99 个百分位数。

一般来说,优化可以分两步完成。首先,针对第 90 个百分位数的延迟时间进行优化。然后,考虑第 99 个百分位数(也称为尾部延迟时间):完成时间长得多的少量请求。

服务器端监控,用于获取详细结果

通常首选服务器端分析来跟踪指标。服务器端通常更容易进行检测,允许访问更精细的数据,并且不太容易受到连接问题的影响。

浏览器监控,用于实现端到端可见性

如果您的 Google Ads API 集成向最终用户提供 Web 前端,则浏览器分析可以提供有关用户体验的更多洞见。它可以显示哪些页面的请求速度较慢,然后您可以将其与服务器端监控相关联,以进行进一步分析。

Google Analytics(分析)还提供对 Analytics(分析)网页计时报告中的网页 加载时间的开箱即用监控。这提供了多个有用的视图,用于了解您网站上的用户体验,特别是:

  • 网页加载时间
  • 重定向加载时间
  • 服务器响应时间

Cloud 中的监控功能

您可以使用许多工具来捕获和监控应用的性能指标。例如,您可以使用 Google Cloud Logging将性能指标记录到您的 Google Cloud Project中,然后在 Google Cloud Monitoring中设置信息中心,以监控和细分记录的 指标。

如需查看为 Python 客户端库编写的 自定义 gRPC 日志记录拦截器示例,请参阅日志记录指南。在该示例中,拦截器调用 logger.log_struct() 以将结构化日志数据的 Python 字典发送到 Cloud Logging,Cloud Logging 会将其存储在日志条目的 jsonPayload 字段中:

logger.log_struct({
    "method": method_name,
    "elapsed_ms": elapsed_milliseconds,
    "is_fault": is_fault,
})

有了 Google Cloud 中的这些数据,您就可以基于记录的数据构建指标,并通过 Google Cloud Monitoring 了解应用。按照 用户定义的基于日志的指标指南,使用发送到 Google Cloud Logging 的日志构建指标。

或者,您可以使用 Cloud Monitoring 客户端库在 代码中定义指标,并将其与日志分开直接发送到 Monitoring。

基于日志的指标示例

假设您要监控 is_fault 值,以便更好地了解应用中的错误率。由于 logger.log_struct() 会在每个 Cloud Logging 日志条目的 jsonPayload 下写入结构化 字典字段,因此您可以 创建一个名为 ErrorCount 的 计数器指标,并使用与失败请求匹配的过滤条件(例如 jsonPayload.is_fault = true)。

在 Cloud Logging 中,标签可让您根据日志中的其他数据将指标分组到 类别中。您可以在发送到 Cloud Logging 的 jsonPayload.method 字段 上配置名为 Method 的 STRING 标签 ,以按 Google Ads API 方法细分错误计数。

配置 ErrorCount 指标和 Method 标签后,您可以 在 Cloud Monitoring 中创建一个新图表,以监控按 Method 分组依据的 ErrorCount。

提醒

在 Cloud Monitoring 和其他工具中,您可以配置提醒政策,以指定指标应何时以及如何触发提醒。如需了解如何设置 Cloud Monitoring 提醒,请按照 基于日志的指标的提醒指南进行操作。