监控 API 使用量

本页面介绍了如何使用 API 指标来跟踪和了解 Google API 和 Google Cloud API 的使用情况。

Google API 会生成详细使用情况指标,帮助您:

  • 跟踪和了解 Google API 的使用情况。
  • 监控应用和 Google API 的性能。
  • 发现您的应用与 Google API 之间的问题。

当您排查问题或需要 Google 提供技术支持时,它可以显著缩短解决时间。

Google API 生成的指标是 Google 自己的站点可靠性工程师用来评估服务运行状况的标准信号。这些指标涵盖了请求计数、错误率、总延迟时间、后端延迟时间、请求大小和响应大小。如需了解 API 指标定义,请参阅 Cloud Monitoring 文档

您可以在以下两个位置查看 API 指标:API 信息中心Cloud Monitoring。您看到的指标特定于您的项目,这些指标并不反映整体服务状态。

使用 API 信息中心

查看 API 指标的最简单方法是使用 Google Cloud API 信息中心。您可以查看所有 API 使用情况的概览,也可以深入了解特定 API 的使用情况。

如需大致了解您的 API 使用情况,请执行以下操作:

  1. 访问 Cloud 控制台的 API 和服务部分。 默认情况下,系统会显示主要 API 信息中心。在此页面中,您可以看到当前为项目启用的所有 API 以及以下指标的概览图表:

    • 流量:您的项目每秒请求已启用 API 的次数
    • 错误:导致错误的已启用 API 请求所占的百分比
    • 中间值延迟时间:已启用 API 请求的中间值延迟时间(如有)。

要查看特定 API 的详细使用信息,请执行以下操作:

  1. 在 API 的主 API 信息中心列表中选择要查看的 API。API 的“概览”页面会显示更详细的流量图表,其中的内容按响应代码细分。
  2. 如需了解更详细的使用信息,请选择查看指标。 默认会显示以下预构建图表,但还能显示更多图表:

    • 流量(按响应代码)
    • 错误(按 API 方法)
    • 第 50、第 95 和第 99 百分位数的总体延迟
    • 延迟时间(按 API 方法,中间值)
  3. 如果要添加更多图表,您可以从选择图表下拉菜单中选择其他预构建的图表。

使用 Cloud Monitoring

如果您使用 Cloud Monitoring,则可使用 Metrics Explorer 深入了解可用的指标数据,以便更深入地了解您的 API 使用情况。Cloud Monitoring 支持多种不同的指标,您可将这些指标与过滤器和聚合功能结合使用,从全新的角度深入了解应用性能。例如,您可将请求计数指标与 HTTP 响应代码类上的过滤器结合使用,构建一个显示错误率的信息中心,也可以查看向 Cloud Pub/Sub API 发送的请求的第 95 百分位的延迟。

下表列出了可用的 serviceruntime 指标。API 用量指标是将 consumed_api 用作受监控的资源的指标。

此表中的“指标类型”字符串必须以 serviceruntime.googleapis.com/ 为前缀。表中的条目已省略该前缀。 查询标签时,请使用 metric.labels. 前缀;例如 metric.labels.LABEL="VALUE"

指标类型发布阶段(资源层次结构级别)
显示名称
种类、类型、单位
受监控的资源
说明
标签
api/request_count GA (项目)
请求数
DELTAINT641
api
consumed_api
produced_api
已完成请求的数量。每 60 秒采样一次。采样后,数据在最长 1800 秒的时间内不会显示。
protocol:请求的协议,例如“http”、“grpc”。
response_code:HTTP 请求的 HTTP 响应代码或 gRPC 请求的 HTTP 等效代码。请参阅 https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto 中的代码映射。
response_code_class:HTTP 请求的响应代码类,或 gRPC 请求的 HTTP 等效类,例如“2xx”、“4xx”。
grpc_status_code:gRPC 请求的数字 gRPC 响应代码,或 HTTP 请求的 gRPC 等效代码。请参阅 https://github.com/googleapis/googleapis/blob/master/google/rpc/code.proto 中的代码映射。
api/request_latencies GA(project)
请求延迟时间
DELTADISTRIBUTIONs
api
consumed_api
produced_api
非流式请求的延迟时间分布(以秒为单位)。每 60 秒采样一次。采样后,数据在最长 1800 秒的时间内不会显示。
api/request_latencies_backend GA (项目)
请求后端延迟时间
DELTADISTRIBUTIONs
api
produced_api
非流式请求的后端延迟时间分布(以秒为单位)。每 60 秒采样一次。采样后,数据在最长 1800 秒的时间内不会显示。
api/request_latencies_overhead GA(project)
请求开销延迟时间
DELTADISTRIBUTIONs
api
produced_api
非流式请求(不包括后端)的请求延迟时间分布(以秒为单位)。每 60 秒采样一次。采样后,数据在最长 1800 秒的时间内不会显示。
api/request_sizes GA(项目)
请求大小
DELTADISTRIBUTIONBy
api
consumed_api
produced_api
请求完成时记录的请求大小(以字节为单位)分布。每 60 秒采样一次。采样后,数据在最长 1800 秒的时间内不会显示。
api/response_sizes GA (项目)
响应大小
DELTADISTRIBUTIONBy
api
consumed_api
produced_api
请求完成时记录的响应大小(以字节为单位)分布。每 60 秒采样一次。采样后,数据在最长 1800 秒的时间内不会显示。
quota/allocation/usage GA(项目、文件夹、组织)
分配配额用量
GAUGEINT641
consumer_quota
producer_quota
已用分配配额总量。报告频率超过 1/分钟的值会被丢弃。如果未收到配额用量变化,则最后一个值至少每 24 小时重复一次。每 60 秒采样一次。
quota_metric:配额指标或配额组的名称。
quota/concurrent/exceeded ALPHA(项目、文件夹、组织)
超出并发配额
DELTAINT641
consumer_quota
尝试超出并发配额的次数。每 86400 秒采样一次。采样后,数据在最长 180 秒的时间内不会显示。
limit_name:配额限制名称,例如“每天请求数”或“使用中的 IP 地址”。
quota_metric: 配额指标或配额组的名称。
time_window: 并发操作限制的窗口大小。
quota/concurrent/limit ALPHA (项目、文件夹、组织)
并发配额限制
GAUGEINT641
consumer_quota
producer_quota
配额的并发限制。每 86400 秒采样一次。采样后,数据在最长 180 秒的时间内不会显示。
limit_name:配额限制名称,例如“每天请求数”或“使用中的 IP 地址”。
quota_metric:配额指标或配额组的名称。
time_window: 并发操作限制的窗口大小。
quota/concurrent/usage ALPHA(项目、文件夹、组织)
并发配额用量
GAUGEINT641
consumer_quota
producer_quota
配额的并发使用情况。每 60 秒采样一次。采样后,数据在最长 180 秒的时间内不会显示。
limit_name:配额限制名称,例如“每天请求数”或“使用中的 IP 地址”。
quota_metric: 配额指标或配额组的名称。
time_window: 并发操作限制的窗口大小。
quota/exceeded GA (项目、文件夹、组织)
“已超出配额”错误
GAUGEBOOL1
consumer_quota
超出配额限制时发生错误。每 60 秒采样一次。
limit_name:配额限制名称,例如“每天请求数”或“使用中的 IP 地址”。
quota_metric:配额指标或配额组的名称。
quota/limit GA(项目、文件夹、组织)
配额限制
GAUGEINT641
consumer_quota
producer_quota
配额的限制。每 86400 秒采样一次。
limit_name:配额限制名称,例如“每天请求数”或“使用中的 IP 地址”。
quota_metric:配额指标或配额组的名称。
quota/rate/net_usage GA (项目、文件夹、组织)
费率配额使用情况
DELTAINT641
consumer_quota
producer_quota
已用的总速率配额。每 60 秒采样一次。采样后,数据在最长 240 秒的时间内不会显示。
method:API 方法名称,例如“disks.list”。
quota_metric:配额指标或配额组的名称。
reserved/metric1 EARLY_ACCESS(project)
已弃用
DELTAINT641
deprecated_resource
已弃用。每 60 秒采样一次。采样后,数据在最长 180 秒的时间内不会显示。
quota_name:已弃用。
credential_id:已弃用。
quota_location:已弃用。

世界协调时间 (UTC) 2024-10-03 16:53:41 生成的表。

如需在 Metrics Explorer 中查看 API 指标,请选择已使用的 API 作为资源类型,然后选择其中一个 serviceruntime 指标。然后使用过滤器和聚合选项来优化数据。找到需要的 API 用量信息后,您可以使用 Cloud Monitoring 创建自定义信息中心和提醒,以帮助您继续监控和维护稳健的应用。您可以在以下页面中找到执行上述操作的方法:

如需了解详情,请参阅 Metrics Explorer

使用 API 指标进行问题排查

如果您在出现问题时需要与 Google 联系,API 指标可能特别有用,甚至可能让您知道根本不需要联系支持。例如:

  • 如果您对某项服务的所有调用都因为单个凭据 ID 而非其他原因,该账号可能会出现问题,您无需打开票证即可自行解决此问题。
  • 您正在对应用进行问题排查,并注意到应用性能下降与关键 GCP 服务的第 50 百分位延迟持续增加之间存在关联。在这种情况下请务必致电联系我们并提供这些数据,以便我们尽快开始解决问题。
  • GCP 服务报告的延迟结果看起来很好,并且与之前保持不变,但您的应用内指标报告调用此服务的延迟异常高。这说明您的网络存在问题。 请致电您的网络提供商(某些情况下需要联系 Google)以启动调试流程。

最佳做法

虽然 API 指标是一个非常有用的工具,但您需要考虑一些问题,以确保它们能够提供有用的信息,在根据指标值设置提醒时尤其要考虑。以下最佳做法有助于您充分利用 API 指标数据。

延迟是否导致问题?

虽然某些服务对延迟极为敏感,但对于其他服务,规模和可靠性更为重要。一些 API(例如 Cloud StorageBigQuery 可能会在客户未注意的情况下有几秒钟的高延迟。利用 API 指标数据,您可以了解用户对指定服务的需求。

查找非常规更改

在您决定针对特定指标值发出警报之前,请考虑哪些行为实际上是异常行为。通过查看您的 API 指标,您可以了解到大多数服务的延迟结果都属于正态分布范围:中间是一个大驼峰,两边都是异常值。这些指标有助于您了解正态分布情况,以便您将应用设计为在分布曲线内正常工作。利用这些指标,您还可以将分布更改情况与应用未按预期工作的时间相关联,从而找到问题的根本原因。我们预计第 99 百分位看起来与中间值截然不同 - 我们不希望这些百分位随着时间推移而发生巨大变化。

您也可能会看到某些类型的请求花费的时间比其他请求更长。如果上传到 Google 相册的照片的中间值大小为 4 MB,但您通常上传 20 MB 的 RAW 文件,您上传 20 张照片的平均时间可能比大多数用户长很多,但这仍是您的正常行为。

所有这些都表示在首次检测到一秒长的 RPC 或 5xx HTTP 调用时发出警报并不是特别有用。相反,在调查将 Google 服务作为应用所遇到的问题的可能原因时,应比较返回代码和延迟率随时间推移的变化,并查看与在应用中观察到的问题相关的持续偏离常规的变化

流量速率

API 指标在有大量流量访问 API 位置最有用。如果您只是间歇性调用服务,则您的 API 指标在统计上不会有效,并且不会为您提供有意义的分类信息。

例如,如果您要跟踪服务的第 99.5 百分位的延迟,并且每小时只执行 100 次调用,观察两小时内的测量数据只会为您提供一个数据点来代表第 99.5 百分位,而不会为您提供有关 API 或应用的正常行为的更多信息。确保流量速率、您跟踪的百分位数以及您考虑的时间窗口会生成足够数量的特征数据点,否则监控数据对您不会有多大帮助。

支持的 API

所有 Google API 和 Google Cloud API,以及在 Cloud Endpoints 和 API Gateway 的基础上构建的 API 都支持 API 指标。如果您是 API 使用者,则可以在 API 信息中心中查看 Consumed API 指标。如果您是 API 提供方,则可以在 Endpoints 信息中心中查看“已提供的 API”指标。