【问题标题】:How to know how many request each api handled every day in aws如何知道aws中每个api每天处理多少个请求
【发布时间】:2020-05-12 18:23:19
【问题描述】:

我有我的项目所在的 EC2 服务 (elasticbeanstalk)。现在有什么方法可以查看特定 API 每天处理多少请求。我正在将错误、访问、...日志存储到云手表,也许我们可以以某种方式使用访问日志来查看每个 API 每天处理的请求数。但是我需要为它定义一个图表,这样一看就明白了,例如我做的这个新端点api/user/allowance,有一些客户开始使用它。所以最终我需要的是这样的

API |请求总数 | filter_start_date |过滤结束日期

【问题讨论】:

  • 如果你使用cloudflare,有一个服务叫Logpush service,你可以配置你的s3存储桶,它会在一段时间内将访问日志推送到s3 - 然后你可以使用athena查询他们通过使用 25 多个字段,包括日期、url、客户端 ip 等。
  • 不,我并没有真正使用 Cloudflare。但感谢您的回答

标签: laravel amazon-web-services amazon-elastic-beanstalk aws-api-gateway amazon-cloudwatch


【解决方案1】:

如您所说,您的应用正在将日志写入 CloudWatch Logs。您可以记录您要跟踪的 RESTful API 的唯一入口消息。然后为 CloudWatch 日志组创建一个自定义指标,过滤器匹配 API 的入口消息。

请参阅official doc,了解如何为 CloudWatch Log 组创建自定义指标。

【讨论】:

    【解决方案2】:

    其实我已经更深入地研究了这个问题,并且我已经找到了解决方案,至少它对我有用。所以我去了 cloudWatch,然后是 Insights 面板,从那里我可以定义一个查询来按他们的请求 Url 对我的日志消息进行分组,我拥有的日志消息是这样的

    0.0.0.0 (11.11.11.11) - - [18/Oct/2019:13:33:49 +0000] "GET api/user/allowance HTTP/1.1" 200 2575 "-" "okhttp/3.6.0"
    

    然后我定义了查询来获取并按请求 URL 分组,分组后,我统计了分组。

    FIELDS @message
    | PARSE @message "* [*] * * *" as ipAddresses, requestTime, RequestAction, RequestUrl, RestOfTheLog
    | stats count(*) by RequestUrl 
    
    

    这样您将获得包含请求总数的端点列表。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-30
      • 2018-01-28
      • 2016-01-27
      相关资源
      最近更新 更多