如何为MeterRegistry httpRequest指标设置名称?

时间:2019-12-02 13:32:29

标签: spring-boot graphite micrometer

大家晚上好。 我已经创建了GraphiteMeterRegistry bean。

@Bean
    public GraphiteMeterRegistry meterRegistry(GraphiteConfig graphiteConfig) {
        String host;
        try {
            host = InetAddress.getLocalHost().getHostName().replaceAll("\\.","_");
        } catch (UnknownHostException e) {
            host = "test";
            log.warn("Host wasn't found", e);
        }

        String prefix = "lm." + host + ".";

        return new GraphiteMeterRegistry(graphiteConfig, Clock.SYSTEM,
                (id, convention) -> prefix + HierarchicalNameMapper.DEFAULT.toHierarchicalName(id, convention));
    }

它发送默认的stas,jvm,hiharicp,http和e.t.c-很好。但是,当我想获取有关到我的端点的httpRequests信息(称为“ myendpoint”)时,我发现它不是存储在myendpoint文件夹中,而是存储在每个ID的数百万个文件夹中(作为参数)。例如:

myendpoint&id=12345679
myendpoint&id=12345672
myendpoint&id=12345673
myendpoint&id=12345671 

但是我希望同一端点的名称相同。您如何配置它?

1 个答案:

答案 0 :(得分:0)

春季医生说:

  

要自定义标签,并根据您选择的客户端,可以   提供一个实现RestTemplateExchangeTagsProvider的@Bean或   WebClientExchangeTagsProvider。

这里的问题是,如果您使用servlet,而不是反应性的,则不需要实现WebClientExchangeTagsProvider,而是实现WebMvcTagsProvider @Bean。