赞
踩
- <dependency>
- <groupId>org.springframework.boot</groupId>
- <artifactId>spring-boot-starter-actuator</artifactId>
- </dependency>
- <dependency>
- <groupId>org.springframework.hateoas</groupId>
- <artifactId>spring-hateoas</artifactId>
- </dependency>
修改application.yml文件
- server:
- port: 8081
- spring:
- application:
- name: springboot
- ## actuator配置
- management:
- endpoints:
- web:
- cors: # 跨域处理
- allowed-origins: '*'
- allowed-methods: '*'
- allow-credentials: true
- base-path: /manage # 访问路径 为 http://ip:port/monitor/manage
- exposure:
- include: '*'
- enabled-by-default: false
- server:
- servlet:
- context-path: /monitor # 访问路径 为 http://ip:port/monitor
- port: 1234 # management 的端口 http://ip:1234 如果不想通过HTTP公开端点,则可以将管理端口设置为-1,如以下示例所示:
- endpoint: #暴露出的endpoint
- shutdown:
- enabled: false # shutdown 可以关闭制定的端点 除shutdown以外的所有端点均已启用
- info:
- enabled: true
- health:
- enabled: true
- show-details: always #展示详情
- metrics:
- enabled: true
- health:
- db:
- enabled: false #关闭默认配置的db检查
- redis:
- enabled: false
- # /actuator/info 的信息的配置
- info:
- name: @project.artifactId@
- encoding: @project.build.sourceEncoding@
- java:
- source: @java.version@
- target: @java.version@

访问路径 http://ip:port/context-path/base-path/**
自定义endPoint
- /**
- * @describe: 自定义端点暴漏此端点需要设置 management.endpoints.web.exposure.include=*
- */
- @Endpoint(id = "person")
- @Component
- public class MyEndpoint {
- private final Map<String, Person> people = new ConcurrentHashMap<>();
- MyEndpoint() {
- this.people.put("name1", new Person("n1"));
- this.people.put("name2", new Person("n2"));
- this.people.put("name3", new Person("3"));
- }
- @ReadOperation
- public List<Person> getAll() {
- return new ArrayList<>(this.people.values());
- }
- @ReadOperation
- public Person getPerson(@Selector String name) {
- return this.people.get(name);
- }
- @WriteOperation
- public void addOrUpdatePerson(@Selector String name, @Selector String person) {
- this.people.put(name, new Person(person));
- }
- class Person {
- private String name;
-
- Person(String name) {
- this.name = name;
- }
- public String getName() {
- return this.name;
- }
- }
- }

对health的扩展~实现接口方式
- @Component("myHealth_interface")
- public class MyHealthIndicator implements HealthIndicator {
- @Override
- public Health health() {
- //健康检查实现
- int errorCode = check();
- if (errorCode != 0) {
- return Health.down().withDetail("Error Code", errorCode).build();
- }
- return Health.up().build();
- }
- /**
- * 健康检查实现
- */
- public int check(){
- return 0;
- }
- }

对health的扩展~实现接口方式~实现抽象类
- @Component("myHealth_abstract")
- public class MyHealthIndicator1 extends AbstractHealthIndicator {
- @Override
- protected void doHealthCheck(Health.Builder builder) throws Exception {
- builder.up().withDetail("xxx", "xxxyyy");
- }
- }
扩展info信息
- public class MyContributor implements InfoContributor {
- @Value("${spring.application.name}")
- private String applicationName;
- @Override
- public void contribute(Info.Builder builder) {
- builder.withDetail("Application-info", Collections.singletonMap("name", applicationName));
- }
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。