【问题标题】:Monitor incoming requests based on subdomain in api gatewayapi网关中基于子域监控传入请求
【发布时间】:2021-09-01 09:20:36
【问题描述】:

我在 API 网关使用通配符子域,所以请求来自不同的子域。

例如:我收到来自 abc.domain.com/api、def.domain.com/api、xyz.domain.com/api 等的请求。

我已在 Cloud Watch 中创建了仪表板和警报,以了解到达 apigateway 的总请求数

现在我想监控来自每个子域的请求数量。我尝试使用主机名过滤指标,但它不起作用。我尝试使用 AWS x-ray,但无法获得准确的计数,它返回一个采样响应。

我想查看每个子域的流量。我可以为每个 API 添加一个日志,但不知道如何使用它在云手表中创建仪表板和警报。如果在 API 网关中无法实现,还有其他方法可以实现吗?

感谢任何形式的帮助。

【问题讨论】:

  • 所以您的 cloudwatch 日志包含有关您要统计的域的信息?
  • 日志包含主机名
  • 如果日志条目有域名,您可以在云手表中根据域名设置指标过滤器。你考虑过吗?
  • 是的,但是我必须为所有子域创建。我现在有大约 60 个,它将增长到 400 个。我正在尝试获取将按子域自动分组的指标

标签: amazon-web-services aws-api-gateway monitoring amazon-cloudwatch aws-xray


【解决方案1】:

如果您已按照here 的说明在 API Gateway 中启用了 API 访问日志,那么它会提供域信息,您可以在该信息上创建自定义查询并在图表中进行可视化。对于示例查询,请查看 here(您需要 grouping 而不是过滤器)

设置自定义访问日志后,您可以使用自定义域名查询它们以找到更多见解(注意:您需要grouping而不是过滤器)

转到 CloudWatch Logs Insights 控制台。 在日志组文本字段中,选择 CloudWatch 日志组 APIGateway_CustomDomainLogs。 输入以下查询。

fields @timestamp, @message
| filter DomainName like /(?i)(test.example.com)/

【讨论】:

  • 让我试试这个
  • 成功了。我们有数据狗集成。我将这些访问日志推送到 datadog 并在那里创建了一个基于域名的指标,现在我可以看到每个域名有多少请求进入。
猜你喜欢
  • 2021-08-10
  • 2018-08-19
  • 2010-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-02
  • 2023-04-08
  • 2014-07-20
相关资源
最近更新 更多