将@Timed用于继承函数

时间:2018-09-28 18:12:18

标签: spring-boot grails groovy dropwizard grails-3.3.x

我们将抽象类用于此类伪代码

abstract class AbstractApiService {
    @Timed(value="get", useClassPrefix=true)
    def get(Long id) {
       ... returns sth ....
    }

    @Timed(value="create", useClassPrefix=true)
    def create(Map params) {
        ... returns sth ....
    }
}

有些bean继承了AbstractApiService并提供诸如创建,删除,更新实体之类的功能

class UserAccountService extends AbstractApiService {
    ... code ....
}

我想从UserAccountService之类的子类中获取每个调用函数的度量,但是Prometheus发送带有完整父类前缀的事件。

应用程序基于Grails 3.3.8

build.gradle:

compile 'com.moelholm:prometheus-spring-boot-starter:1.0.2' 
compile 'io.dropwizard.metrics:metrics-core:4.0.0-alpha2'
compile 'io.dropwizard.metrics:metrics-jvm:4.0.0-alpha2' 
compile 'org.grails.plugins:dropwizard-metrics:1.0.0.M2'

2 个答案:

答案 0 :(得分:0)

不幸的是,我相信您将必须为要跟踪的每种方法定义@Timed批注。我不认为注释代码会为每个具体类生成单独的指标。

答案 1 :(得分:0)