0

我们为像这样的伪代码这样的服务使用抽象类

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

构建.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'
4

2 回答 2

1

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

于 2018-09-28T18:57:15.830 回答
0

我创建了一个自定义手动解决方案 https://gist.github.com/michmzr/1e03534bc5fb6df89065f6964acf9c71

于 2018-10-05T09:14:07.943 回答