【问题标题】:Track the number of requests per client per api in Spring Boot using Micrometer使用 Micrometer 在 Spring Boot 中跟踪每个客户端每个 api 的请求数
【发布时间】:2022-01-23 13:03:01
【问题描述】:

我正在使用 AWS Cloudwatch 监控我的应用程序。我想跟踪每个 API 每个客户端收到的请求数。我为其他指标配置了千分尺。如何使用千分尺跟踪此指标?

作为参考,我有一组有限的客户使用我的服务。我可以为他们每个人制作一本手册Counter。但是有没有办法自动化这个,因为我不想在每次添加新客户端时手动创建一个计数器。或者有没有其他方法可以做到这一点?

【问题讨论】:

    标签: spring-boot amazon-cloudwatch micrometer spring-micrometer


    【解决方案1】:

    您不需要创建额外的 Counters,因为 Spring Boot 已经为您的请求创建了一个 Timer(您应该在 CloudWatch 中看到 http.server.requests)。 Timer 总是包含一个计数,经验法则是从不计算你可以计时的东西。

    Spring Boot 已经使用 API 路径标记了您的 Timers,因此问题是如何使用客户端信息标记每个计时器。对于这个 Spring Boot 为您提供了 WebMvcTagsContributorWebFluxTagsContributor 用于 MVC 和 WebFlux 应用程序。您实现其中一个接口(取决于您是否使用 WebFlux 的 MVC)从中创建一个 @Bean,Spring Boot 将为您自动配置它,以便您的标签将使用您想要的任何数据进行增强。

    实施提示:尽量避免将原始用户输入添加到您的标签,因为这可能会导致潜在的高基数数据。尝试将您的用户输入映射到不同的值并回退到无效/未知/等。如果你得到一个不匹配的。

    【讨论】:

    • 这看起来很有趣。您是否可以使用 WebMvcTagsContributor 提供该概念的示例实现?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-13
    相关资源
    最近更新 更多