监控

性能优化首先要确定关键指标,这些指标通常与延迟时间和吞吐量相关。通过添加监控来捕获和跟踪这些指标,可以暴露应用中的薄弱环节。借助指标,可以进行优化以提高效果指标。

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

确定延迟时间指标

请确保您的界面尽可能快速响应,并注意用户对移动应用有更高的标准。还应针对后端服务测量和跟踪延迟时间,尤其是因为如果不加以控制,延迟时间可能会导致吞吐量问题。

建议跟踪的指标包括:

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

确定吞吐量指标

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

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

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

不仅仅是平均值

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

一般来说,优化可以分两步完成。首先,针对第 90 百分位延迟时间进行优化。然后,考虑第 99 百分位(也称为尾部延迟时间):一小部分请求需要更长时间才能完成。

服务器端监控,可提供详细结果

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

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

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

Google Analytics 还在 Analytics 网页计时报告中提供开箱即用的网页加载时间监控。这提供了几个有用的视图,可帮助您了解网站上的用户体验,尤其是:

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

云端监控

您可以使用许多工具来捕获和监控应用的性能指标。例如,您可以使用 Google Cloud Logging 将性能指标记录到 Google Cloud 项目中,然后在 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 提醒,请按照基于日志的指标提醒指南中的说明操作。