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