API 网关延迟与集成延迟

问题描述 投票:0回答:1

对于 AWS 的 API Gateway,我的理解是集成延迟应始终小于延迟(请参阅Amazon API Gateway 维度和指标)。

但是,当我比较两者时,我总是得到相反的顺序。无论我查看 API Gateway 控制面板还是查看 Amazon CloudWatch 中的指标,情况都是如此。一些示例(我的流量很少,无法比较各个数据点)

 1. 2024-01-23 18:15 UTC: Integration Latency = 1235ms vs Latency = 628ms
 2. 2024-01-23 14:20 UTC: Integration Latency = 1582ms vs Latency = 802ms
 3. 2024-01-23  8:35 UTC: Integration Latency = 1207ms vs Latency = 614ms

由于差距很大并且始终处于“错误”顺序,我不得不假设我对 API Gateway 指标的理解是不正确的。但如何呢?

  • 这两个延迟指标是否不相交(因此用户将等待延迟 + 集成延迟时间的总和)?
  • 或者我的理解颠倒了(所以集成延迟 >= 延迟,其中集成延迟 = 延迟 + API 网关开销)。

在上述所有 3 个示例中,我的 Lambda 函数花费了约 450 毫秒(+/- 35 毫秒)。通过 lambda 函数的“监视器”>“持续时间”图及其 CloudWatch 日志。

amazon-web-services aws-lambda aws-api-gateway
1个回答
0
投票

所以基本上实际指标没有问题,但它们的显示方式没有问题。

问题是当请求传入时有两个 API 调用:OPTIONS 和 POST。只有后者具有集成延迟,而前者具有接近于零的延迟。

为了具体说明这一点,假设收到一个请求,OPTIONS 需要 10 毫秒(总延迟,无集成延迟),然后 POST 需要 1000 毫秒(延迟和集成延迟;延迟更多,但差异可以忽略不计)。

API 网关 > 仪表板图表显示 两个 API 调用的平均值。因此,您会在图表中看到 (10ms + 1000ms) / 2 = 505ms 延迟,但只有 1000ms / 1 = 1000ms 集成延迟。因此,集成延迟看起来更大(大约是两倍),尽管事实并非如此。

如果您想确认这一点,请导航到这些 API Gateway 仪表板图表,然后单击“在 CloudWatch 中查看”。然后从“行”更改为“数据表”。此时,即使您查看“Max”列的值,数据也存在相同的平均问题。您仍然需要将“统计”从“平均”更改为“最大值”。只有这样,“Max”列才会显示延迟确实大于或等于集成延迟。

希望对有同样困惑的人有帮助!

(仅供参考,我只是通过在 AWS 上打开支持案例才理解了这一点。感谢他们打破了这一点。)

© www.soinside.com 2019 - 2024. All rights reserved.