2

@TimedSpring Boot(Micrometer 的一部分)中的注解有几个字段。其中之一是:

double[] percentiles() default {};

我想在整个代码库中将此值设置为不同的数组,例如:

new double[] { 0.0, 50.0 };

这可以通过我所知道的两种方式之一来实现:

  1. 在每个实例上设置字段:

    @Timed(percentiles = new double[] { 0.0, 50.0 })
    
  2. 使用@AliasFor或元注释来创建具有所需值的不同注释。

我也遇到了AnnotationUtils类,但看不到如何实现我的目标。

在 Spring Boot 中执行此操作的标准方法是什么?如果在 Spring Boot 中无法做到,那么如何利用 JDK 自身的反射能力做到这一点?

4

2 回答 2

2

如果您希望为整个应用程序中生成的所有直方图配置一组百分位数,您可以使用MeterFilter.

千分尺文档:https ://micrometer.io/docs/concepts#_configuring_distribution_statistics

在您的 Spring Boot 项目中,您可以将仪表过滤器创建为 bean,即。

    @Bean
    public MeterFilter meterFilter() {
        return new MeterFilter() {
            @Override
            public DistributionStatisticConfig configure(Meter.Id id, DistributionStatisticConfig config) {
                return DistributionStatisticConfig.builder()
                        .percentiles(0.5, 0.75, 0.95, 0.98, 0.99)
                        .percentilesHistogram(true)
                        .build()
                        .merge(config);
            }
        };
    }
于 2018-08-10T14:29:11.747 回答
2

您可以使用@Timed. 有关详细信息,请参阅:https ://github.com/micrometer-metrics/micrometer/issues/145

于 2018-08-10T09:41:25.333 回答