性能优化首先要确定关键指标,这些指标通常与延迟时间和吞吐量相关。通过添加监控来捕获和跟踪这些指标,可以暴露应用中的薄弱环节。借助指标,可以进行优化以提高效果指标。
此外,许多监控工具都允许您为指标设置提醒,以便在达到特定阈值时收到通知。例如,您可以设置提醒,以便在失败请求的百分比比正常水平增加 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 提醒,请按照基于日志的指标提醒指南中的说明操作。