springboot监控

为什么要关心springboot监控?

springboot作为微服务框架,除了它强大的快速开发功能外,还有就是它提供了actuator模块,引入该模块能够自动为springboot应用提供一系列用于监控的端点,而且springcloud在实现各个微服务组件时,对其做了扩展,比如为api网关组件zuul提供了/routes端点来返回路由信息。
在没有引入其他依赖之前,这些端点的内容较为简单,后续引入springcloud的各个组件后,返回值会变得更加丰富。
springboot引入actuator组件,我们可以通过http/jmx/ssh来查看springboot应用的配置、各种指标、健康程度等。

依赖

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-actuator</artifactId>
    <version>2.1.4.RELEASE</version>
</dependency>

测试原生端点

1、应用配置类

帮助我们轻松获取一些spring应用配置报告,包括

beans #springboot配置的bean信息
configprops #所有@ConfigurationProperties注解的配置信息,如文件上传的最大允许配置等
env
mappings #输出通过注解@RequestMapping设置的url映射,可以通过它来查看url对应的controller

2、度量指标类

提供应用程序运行过程中一些快照信息,比如内存情况、http请求统计等

metrics #springboot的性能指标,如已有内存、未占用内存等
dump #获取某一时刻虚拟机线程栈信息,用来诊断系统问题
health  #默认输出磁盘空间、数据源、redis、elasticsearch的健康诊断信息
trace #http跟踪,能查看最近的http请求和响应。

如访问http://localhost:8080/health,up表示健康,对象正常,down表示异常。
在这里插入图片描述

3、操作控制类

endpoints.shutdown.enabled=true #关闭应用

只需要访问localhost:8080/shutdown就可以关闭应用,所以线上使用时,需要对其加入一定的保护机制,比如定制actuator的端点路径、整合spring security进行安全校验等。

定制端点

1、springboot2默认并不启动所有的监控,需要做如下配置:

endpoints.default.web.enabled=true

2、只开启所需的端点

endpoints.enabled=false
endpoints.beans.enabled=true

3、定制端点访问端口、访问路径来保护应用

management.context-path=/manage
management.port=8081 #出于安全考虑,不暴露端点的端口到外部,就需要应用本身的业务端口和端点端口不同
management.port=-1 #关闭http端点

jconsole监控窗口

在控制台调用java内置的jconsole来实现jmx监控。
打开cmd,输入jconsole,选择应用
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值