首页 归档 标签 关于

Nacos 元数据增加启动日期、版本号和 PID

Spring Cloud 项目下 Nacos 默认的元数据只有 preserved.register.source=SPRING_CLOUD 这一项,可以通过增加配置项手动添加想要的数据,方便追溯一些启动相关的信息。

比如:启动日期、文件版本号(因为打成 jar 包时 maven 插件会将文件名自动命名为 xxx-{version}.jar,所以这里是获取的 jar 文件路径)和 PID。

代码如下:

@Configuration
public class NacosConfig {
    /**
     * Nacos 元数据配置
     *
     * @return
     */
    @Bean
    @ConditionalOnNacosDiscoveryEnabled
    public NacosDiscoveryProperties nacosDiscoveryProperties() {
        NacosDiscoveryProperties nacosDiscoveryProperties = new NacosDiscoveryProperties();
        Map<String, String> metadata = nacosDiscoveryProperties.getMetadata();

        // 启动时间
        metadata.put("boot.startup.time",
                new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(System.currentTimeMillis()));
        // 文件路径
        // String.valueOf 代替 toString 避免空指针
        metadata.put("boot.path", String.valueOf(new ApplicationHome(this.getClass()).getSource()));
        // PID
        metadata.put("boot.pid", new ApplicationPid().toString());
        return nacosDiscoveryProperties;
    }
}

Nacos 控制台的实例可以看到类似如下的元数据:

boot.startup.time=2022-09-19 09:01:07
preserved.register.source=SPRING_CLOUD
boot.pid=1513
boot.path=/deploy/example-service-0.1.0.jar

· 转载请注明 https://kytrun.com/nacos-add-metadata/