SpringBootAdmin监控原理Actuator,自定义指标

SpringBootAdmin监控原理Actuator,自定义指标

文章目录

  • SpringBootAdmin监控原理Actuator,自定义指标
    • actuator
    • 自定义info端点信息
    • 自定义Health端点信息
    • 自定义metrics端点信息
    • 端点的自定义

actuator

SpringBootAdmin监控原理Actuator,自定义指标_第1张图片
SpringBootAdmin监控原理Actuator,自定义指标_第2张图片

SpringBootAdmin监控原理Actuator,自定义指标_第3张图片
SpringBootAdmin监控原理Actuator,自定义指标_第4张图片
SpringBootAdmin监控原理Actuator,自定义指标_第5张图片
SpringBootAdmin监控原理Actuator,自定义指标_第6张图片
JMX方式就是在cmd控制台输入jconsole,会弹出来jdk提供的监控程序。
SpringBootAdmin监控原理Actuator,自定义指标_第7张图片

自定义info端点信息

通过配置的方式加
SpringBootAdmin监控原理Actuator,自定义指标_第8张图片

info:
  appName: @project.artifactId@
  version: @project.version@
  author: itheima

通过编程的方式添加,要实现InfoContributor
SpringBootAdmin监控原理Actuator,自定义指标_第9张图片

@Component
public class InfoConfig implements InfoContributor {
    @Override
    public void contribute(Info.Builder builder) {
        builder.withDetail("runTime",System.currentTimeMillis());
        Map infoMap = new HashMap();
        infoMap.put("builderTime","2006");
        builder.withDetails(infoMap);
    }
}

自定义Health端点信息

不可以自定义health信息(也就是不能在配置文件中写),要通过编程添加。继承AbstractHealthIndicator

@Component
public class HealthConfig extends AbstractHealthIndicator {
    @Override
    protected void doHealthCheck(Health.Builder builder) throws Exception {
        boolean condition = true;
        if(condition){
            builder.withDetail("runTime",System.currentTimeMillis());
            Map infoMap = new HashMap();
            infoMap.put("builderTime","2006");
            builder.withDetails(infoMap);
            builder.up();
        }else{
            builder.withDetail("上线了吗?","你做梦");
            builder.down();
        }

    }
}

SpringBootAdmin监控原理Actuator,自定义指标_第10张图片

自定义metrics端点信息

SpringBootAdmin监控原理Actuator,自定义指标_第11张图片

端点的自定义

SpringBootAdmin监控原理Actuator,自定义指标_第12张图片

@Component
@Endpoint(id = "pay",enableByDefault = true)
public class PayEndpoint {

    @ReadOperation
    public Object getPay(){
        Map payMap = new HashMap();
        payMap.put("level 1","300");
        payMap.put("level 2","200");
        payMap.put("level 3","666");
        return payMap;
    }
}

你可能感兴趣的:(开发语言,java,spring,boot)