本文主要是介绍定制 Endpoint,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
定制 Endpoint
1. 定制 Health 信息
// 定制的 Endpoint,名字会自动去掉后边的 HealthIndicator
@Component
public class MyComHealthIndicator extends AbstractHealthIndicator {/*** 真实的检查方法* @param builder* @throws Exception*/@Overrideprotected void doHealthCheck(Health.Builder builder) throws Exception {// mongodb 获取连接进行测试HashMap<String, Object> map = new HashMap<>();// 检查完成if(true){builder.up(); //健康
// builder.status(Status.UP);map.put("ms",100);}else{builder.down();
// builder.status(Status.DOWN);map.put("ms",3000);}// 返回信息builder.withDetail("code",100).withDetails(map);}
}
management:health:enabled: trueshow-details: always # 总显示详细信息,可以显示每个模块的状态信息。
2. 定制 info
直接在 application.yaml 中编辑就可以
info:appName: boot-adminappVersion: 1.0.0mavenProjectName: @project.artifactId@mavenProjectVersion: @project.Version@# 获取maven pom.xml文件中的内容,只要使用 @内容@ 即可。
注意要在 pom.xml 文件中添加以下内容
<build><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources></build>
或者使用代码来定制
@Component
public class AppInfoContributor implements InfoContributor {@Overridepublic void contribute(Info.Builder builder) {HashMap<String, Object> map = new HashMap<>();builder.withDetail("msg","hello").withDetails(map);}
}
3. 定制 Metrics 信息
class MyService {Counter counter;public MyService(MeterRegistry meterRegistry){counter = meterRegistry.counter("showname");}public void hello(){counter.increment();}
}// 或者用以下方法
@Bean
MeterBinder queueSize(Queue queue){return (rigistry) -> Gauge.builder("queueSize",queue::size).register(registry);
}
4. 定制 监控端点 Endpoint
@Component
@Endpoint(id="myservice")
public class MyServiceEndpoint{@ReadOperationpublic Map getDockerInfo(){return Collections.singletonMap("info","docker started...");}@WriteOperationpublic void stopDocker(){System.out.println("docker stopped...");}
}
5. 开源 可视化项目
https://github.com/codecentric/spring-boot-admin
这篇关于定制 Endpoint的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!