定制 Endpoint

定制 Endpoint

1. 定制 Health 信息

// 定制的 Endpoint,名字会自动去掉后边的 HealthIndicator
@Component
public class MyComHealthIndicator extends AbstractHealthIndicator {

    /**
     * 真实的检查方法
     * @param builder
     * @throws Exception
     */
    @Override
    protected 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: true
		show-details: always	# 总显示详细信息,可以显示每个模块的状态信息。

2. 定制 info

直接在 application.yaml 中编辑就可以

info:
	appName: boot-admin
	appVersion: 1.0.0
	mavenProjectName: @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 {

    @Override
    public 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{
    @ReadOperation
    public Map getDockerInfo(){
        return Collections.singletonMap("info","docker started...");
    }
    
    @WriteOperation
    public void stopDocker(){
        System.out.println("docker stopped...");
    }
}

5. 开源 可视化项目

https://github.com/codecentric/spring-boot-admin

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值