小编ste*_*pio的帖子

如何为默认的 Spring Boot 2 指标定义附加或自定义标签?

最近我切换到Spring Boot 2Micrometer. 当我获得这些闪亮的新指标时,我与我们的 DevOps 人员进行了交谈,我们开始将它们导出到Telegraf.

为了区分不同的应用程序和应用程序节点,我们决定使用标签。这对于自定义指标非常有效,但现在我开始考虑预定义。为了对默认指标实现相同的目标,我还需要能够为它们添加额外的标签。

有可能实现这一目标吗?我这样做对吗?

编辑:我尝试了下一种方法:

@Component
public class MyMetricsImpl implements MyMetrics {

    @Autowired
    protected MyProperties myProperties;
    @Autowired
    protected MeterRegistry meterRegistry;

    @PostConstruct
    public void initialize() {
        this.meterRegistry.config()
                .commonTags(commonTags());
    }

    @Override
    public List<Tag> commonTags() {
        List<Tag> tags = new ArrayList<>();
        tags.add(Tag.of("application", myProperties.getApplicationName()));
        tags.add(Tag.of("node", myProperties.getNodeName()));
        return tags;
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是我的指标表现正确,甚至一些引导指标(至少http.server.requests)看到我的标签。但是jvm.*system.*tomcat.*和其他许多人仍然不具备所需的标签。

java metrics spring-boot micrometer

5
推荐指数
2
解决办法
7555
查看次数

Spring Boot中如何将特定的短信国际化?

目前我正在实施一项向客户发送通知(例如短信)的服务。服务是用 Java 编写的,基于 Spring Boot。

我想用收件人的语言发送消息。

所以基本上我想要一个方法,用所需的本地化(“en”,“fr”,“es”)获取消息的一些 id 并返回正确的字符串。还配置一些默认语言(如“en”)会很棒 - 如果不支持所需的语言,请回退到它。

任何建议如何使用 Spring Boot 实现这一目标?

PS:对不起,是的,我试过“谷歌搜索”。我找到了几个国际化示例,但其中大多数似乎没有用,因为它们是针对整个用户界面的,而不是针对特定消息的。

java spring internationalization spring-boot

3
推荐指数
1
解决办法
1549
查看次数

测试自定义Spring Boot自动配置是否有效

我决定编写一个简单的测试来检查我的Spring Boot自动配置是否正常工作-所有必需的bean及其依赖关系都已创建。

自动配置是:

package org.project.module.autoconfigure;

import org.project.module.SomeFactory;
import org.project.module.SomeProducer;
import org.project.module.SomeServiceClient;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;

/**
 * Spring Boot simple auto-configuration.
 *
 * @author istepanov
 */
@Configuration
@ComponentScan("org.project.module.support")
public class SomeAutoConfiguration {

    @Bean
    @ConditionalOnMissingBean
    public SomeFactory someFactory() {
        return new SomeFactory();
    }

    @Bean
    @ConditionalOnMissingBean
    public SomeServiceClient someServiceClient() {
        return new SomeServiceClient();
    }

    @Bean
    @ConditionalOnMissingBean
    public SomeProducer someProducer() {
        return new SomeProducer();
    }
}
Run Code Online (Sandbox Code Playgroud)

测试是:

package org.project.module.autoconfigure;

import org.project.module.SomeFactory;
import org.project.module.SomeProducer;
import org.project.module.SomeServiceClient;
import org.junit.Test;
import org.junit.runner.RunWith; …
Run Code Online (Sandbox Code Playgroud)

java integration-testing spring-boot

2
推荐指数
1
解决办法
5790
查看次数