Java + Micrometer @Timed annotation + Spring reactive @Repository 可能吗?

标签 java spring-webflux micrometer

关于 Micrometer 的 @Timed 注释的小问题,以及如何将它与来自 Spring 的响应式(Reactive) @Repository 一起使用。

我有一个非常简单的@Repository 接口(interface),甚至没有自定义查询。

@Repository
public interface MyRepository extends ReactiveCassandraRepository<MyPojo, String> {

这里的示例是响应式(Reactive) Cassandra,但任何响应式(Reactive) 存储库都可以。

我想为默认方法的执行计时,save、findById、findAll,基本上,@Repository 提供的所有直接方法。

时间是指插入数据或检索数据所花费的实际时间。

(这对于查看随时间推移、高负载等情况下的读写性能特别有用...)

因此,我满怀希望地尝试了:

@Repository
@Timed("mysupertimer")
public interface MyRepository extends ReactiveCassandraRepository<MyPojo, String> {

但遗憾的是,它不起作用。 为了避免混淆,它不适用于存储库方法。 我在我的@Controller 层和@Service 层的不同位置有@Timed,我看到所有其他指标都很好。

另外,我真的很希望得到关于注释@Repository 的答案。我知道我可以只@Timed“我项目中调用存储库的所有地方”,但我有 300 个存储库调用,需要向任何 future 的贡献者解释并注释他的调用。

直接在@Repository 层上的解决方案会很棒。

非常感谢!

最佳答案

关于Java + Micrometer @Timed annotation + Spring reactive @Repository 可能吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65285514/

相关文章:

java - Grails/Groovy:SQL.execute不在DB2数据库中插入数据,但在应用程序日志中没有错误

java - 如何使用 R2dbc 将 jsonb 从 Postgresql 提取到 Spring webflux

java - Spring WebFlux WebClient - 如何解决 400 错误请求

java - 当客户端与热流断开连接时执行一些操作

elasticsearch - Spring Micrometer:将度量标准传送到AWS ElasticSearch实例

java - 带标签的计数器 - 如何按维度/标签分组?

java - 包括 spring boot 端点路径变量作为度量维度

java - 如何计算 "binary values addition of characters"的校验和

java - 单字母单词的正则表达式

java - 如何以稳健的方式处理kafka发布失败