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