• Spring Boot—21Actuator--监控


    https://docs.spring.io/spring-boot/docs/2.0.1.RELEASE/reference/htmlsingle/


    pom.xml

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.11</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid-spring-boot-starter</artifactId>
        <version>1.1.9</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>        
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-security</artifactId>
    </dependency>


    application.properties

    #
    server.address=0.0.0.0
    server.port=8080
    server.servlet.context-path=/test
    server.session.timeout=300
    server.error.path=/error
    #
    server.tomcat.accesslog.enabled=true
    server.tomcat.accesslog.buffered=true
    server.tomcat.accesslog.directory=D:/Project/JavaWeb/SpringBoot/04JPASpringBoot/logs
    #
    spring.jackson.date-format=yyyy-MM-dd HH:mm:ss
    spring.jackson.time-zone=Asia/Shanghai
    #
    spring.thymeleaf.cache=true
    spring.thymeleaf.enabled=true
    
    file.upload.path=D:/Project/JavaWeb/SpringBoot/04JPASpringBoot/fileUpLoad
    
    spring.servlet.multipart.enabled=true
    spring.servlet.multipart.file-size-threshold=0
    spring.servlet.multipart.location=D:/Project/JavaWeb/SpringBoot/04JPASpringBoot/temp
    spring.servlet.multipart.max-file-size=10MB
    spring.servlet.multipart.max-request-size=10MB
    spring.servlet.multipart.resolve-lazily=false
    
    
    spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
    spring.datasource.druid.one.url=jdbc:mysql://127.0.0.1:3306/test?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&useSSL=false
    spring.datasource.druid.one.username=root
    spring.datasource.druid.one.password=gis
    spring.datasource.druid.one.driver-class-name=com.mysql.cj.jdbc.Driver
    
    ##Druid
    spring.datasource.druid.one.initial-size=2
    spring.datasource.druid.one.max-active=5
    spring.datasource.druid.one.min-idle=1
    spring.datasource.druid.one.max-wait=60000
    spring.datasource.druid.one.pool-prepared-statements=true
    spring.datasource.druid.one.max-pool-prepared-statement-per-connection-size=20
    spring.datasource.druid.one.validation-query=SELECT 1 FROM DUAL
    spring.datasource.druid.one.validation-query-timeout=60000
    spring.datasource.druid.one.test-on-borrow=false
    spring.datasource.druid.one.test-on-return=false
    spring.datasource.druid.one.test-while-idle=true
    spring.datasource.druid.one.time-between-eviction-runs-millis=60000
    spring.datasource.druid.one.min-evictable-idle-time-millis=100000
    #spring.datasource.druid.one.max-evictable-idle-time-millis=
    spring.datasource.druid.one.filters=stat,wall,log
    spring.datasource.druid.one.logSlowSql=true
    
    #
    # debug=true # Enable debug logs.
    # trace=true # Enable trace logs.
    
    # LOGGING
    logging.config=classpath:logback.xml
    
    # Actuator
    
    management.server.address=0.0.0.0
    management.server.port=8081
    management.server.servlet.context-path=/manage
    management.endpoints.enabled-by-default=true
    management.endpoint.health.enabled=true
    management.endpoint.sessions.enabled=true
    management.health.db.enabled=true
    management.endpoint.health.show-details=always
    #management.endpoints.web.exposure.include=*
    management.endpoints.web.exposure.include=auditevents,beans,conditions,configprops,env,flyway,health,heapdump,httptrace,info,jolokia,logfile,loggers,liquibase,metrics,mappings,prometheus,scheduledtasks,sessions,shutdown,threaddump
    spring.security.user.name=zyx
    spring.security.user.password=gis


    启动类

    package com.smartmap.sample.test;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.cache.annotation.EnableCaching;
    import org.springframework.transaction.annotation.EnableTransactionManagement;
    
    @EnableCaching
    @EnableTransactionManagement
    @SpringBootApplication
    public class TestActuatorApplication {
    
        public static void main(String[] args) {
            SpringApplication.run(TestActuatorApplication.class, args);
    
        }
    
    }


    http://127.0.0.1:8081/manage/login


    http://127.0.0.1:8081/manage/actuator/health



    /actuator/auditevents                       ,methods=[GET],
    /actuator/beans                               ,methods=[GET],
    /actuator/health]                              ,methods=[GET],
    /actuator/conditions                          ,methods=[GET],
    /actuator/shutdown                          ,methods=[POST],
    /actuator/configprops                       ,methods=[GET],
    /actuator/env                                  ,methods=[GET],
    /actuator/env/{toMatch}                     ,methods=[GET],
    /actuator/info                                  ,methods=[GET],
    /actuator/loggers                             ,methods=[GET],
    /actuator/loggers/{name}                    ,methods=[POST]
    /actuator/loggers/{name}                    ,methods=[GET],
    /actuator/heapdump                          ,methods=[GET],
    /actuator/threaddump                        ,methods=[GET],
    /actuator/metrics/{requiredMetricName}      ,methods=[GET],
    /actuator/metrics                             ,methods=[GET],
    /actuator/scheduledtasks                    ,methods=[GET],
    /actuator/httptrace                          ,methods=[GET],
    /actuator/mappings                          ,methods=[GET],
    /actuator                                         ,methods=[GET],


    内存占用诊断

    1)生成dump文件

    http://127.0.0.1:8081/manage/actuator/heapdump

    2)启动jhat工具进行分析

    jhat -port 7000 d:/heapdump

    3)查看内存中的对象占用

    http://127.0.0.1:7000/oql/


    select s from java.lang.String s where s.value.length >= 5000

    image


    image


    image


    很强!!!

  • 相关阅读:
    synchronized底层实现学习
    [Alink漫谈之三] AllReduce通信模型
    Alink漫谈(二) : 从源码看机器学习平台Alink设计和架构
    Alink漫谈(一) : 从KMeans算法实现不同看Alink设计思想
    [源码分析]从"UDF不应有状态" 切入来剖析Flink SQL代码生成 (修订版)
    从"UDF不应有状态" 切入来剖析Flink SQL代码生成
    [源码分析] 带你梳理 Flink SQL / Table API内部执行流程
    [白话解析] 通俗解析集成学习之bagging,boosting & 随机森林
    [源码分析] 从FlatMap用法到Flink的内部实现
    Ceph 14.2.5-K8S 使用Ceph存储实战 -- <6>
  • 原文地址:https://www.cnblogs.com/gispathfinder/p/8971909.html
Copyright © 2020-2023  润新知