• springboot16:指标监控(线上指标监控,微服务,高级特性)


    1.使用

    • 为什么使用?
      • 未来每一个微服务在云上部署以后,我们都需要对其进行监控、追踪、审计、控制等。SpringBoot就抽取了Actuator场景,使得我们每个微服务快速引用即可获得生产级别的应用监控、审计等功能。
    1. 引入依赖
    		>
                >org.springframework.boot>
                >spring-boot-starter-actuator>
            >
    
    • 1
    • 2
    • 3
    • 4
    1. 以web方式暴露即可
    #management 是所有的actuator的配置
    management:
      endpoints:
        enabled-by-default: true #默认开启所有监控断点
        web:
          exposure:
            include: '*' #以web方式暴露所有端点
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    1. 常用端点
    • 使用:health 显示应用程序运行状况信息。(返回当前应用健康结果)哪一个断点导致down
    management:
      endpoint:
        health:
          show-details: always
    
    • 1
    • 2
    • 3
    • 4
    • 使用:Metrics 运行时指标(提供空间指标信息)
      可以只开放几个端点
      设置默认开启所有监控端点都为 false
      然后手动加入几个端点
      info:enabled:true
      • 定制自定义检测组件health是否健康实现接口即可
      • 定制info信息实现接口即可(配置文件中写)
      • 定制metrics放到注册中心中(默认配置了很多信息)
    • Loggers 日志记录
    • 定义端点
    @Component
    @Endpoint(id = "myendpoint")
    public class DockerEndpoint {
    
    
        @ReadOperation
        public Map getDockerInfo(){
            return Collections.singletonMap("info","docker started...");
        }
    
        @WriteOperation
        private void restartDocker(){
            System.out.println("docker restarted....");
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    2.可视化(管理其他的server)

    • 在管理中pom文件引入spring-boot-admin-starter-server监控配置
    • 在主配置类上写@EnableAdmin
    • 在其他server的pom文件中引入spring-boot-admin-starter-client
    • 在配置文件中配置 boot.admin.client.url=管理的地址
      使用ip注册进来
    • 然后服务数据被管理收集(这些数据就是之前的Actuator的数据)

    3.高级特性

    ①profile功能(多环境适配)

    • 隔离生产环境测试环境
    • 测试配置文件和生产配置文件
      (通过环境配置)
    • 使用
      • ● 默认配置文件 application.yaml;任何时候都会加载
        ● 指定环境配置文件 application-{env}.yaml
        ● 激活指定环境
        ○ 配置文件激活
        ○ 命令行激活:java -jar xxx.jar --spring.profiles.active=prod --person.name=haha
        ■ 修改配置文件的任意值,命令行优先
        ● 默认配置与环境配置同时生效
        ● 同名配置项,profile配置优先

    ②外部化配置

    • 将所有信息抽取为文件放在web外集中管理
    • 获取配置信息的值
      • 后面的配置可以覆盖前面的配置
    • 注意:类路径的根路径都时Resources下和java下都时类路径的根路径
    • 找配置文件的路径
      (1) classpath 根路径
      (2) classpath 根路径下config目录
      (3) jar包当前目录
      (4) jar包当前目录的config目录
      (5) /config子目录的直接子目录
    • 指定环境优先,外部优先
  • 相关阅读:
    十分钟带你入门向量检索技术
    LCM库的简单使用
    Mybatis 缓存原理
    软件测试:写一个好的测试用例
    iOS app 的开发要准备哪些图标图片?
    什么是RPA机器人?RPA机器人能做什么?RPA机器人的应用场景
    VisualParadigm 配置 VP 服务器更新模块仅提供特定版本的更新
    httpclient连接泄漏实战-_-
    Redis 常用命令的学习
    DOX-TF/Ce6/IgG 转铁蛋白/光敏剂/单抗IgG修饰阿霉素/阿霉素白蛋白纳米粒的制备
  • 原文地址:https://blog.csdn.net/qq_44724899/article/details/127909463