内容摘要: 应用程序性能监控和日志采集管理是非常重要问题, Java Spring Boot 网站, API 等应用程序如何进行远程性能监控, 日志采集, 远程控制, 本次课程一起深入学习 Actuator 新特性与 API 机制. APM 是分布式系统运维非常重要的知识点, 开源社区许多经典的分布式性能监控方案.
Java Spring Boot2.0 不进允许性能监控, 还可以进行远程控制. 功能十分强大.
1,APM = Application Performance Management 采集指标
目的是监控和管理应用软件性能和可用性. 通过监控和诊断复杂应用程序的性能问题, 来保证分布式系统的良好运行.
2,Java Spring Boot 性能监控 指标多维度
Spring Boot 2014 年 4 月性能监控和管理组件 Actuator .
使用 HTTP Endpoint 或 JMX, 运行状态指标数据收集
health, metrics, info, dump, env, etc
2.0 以后改进监控地址带有 / actuator 前缀
例如 / actuator/health 监控健康状态信息
禁用 management.endpoint.shutdown.enabled=true
单个禁用
- management.endpoints.enabled-by-default=false
- management.endpoint.info.enabled=true
3,Java Spring Boot 2.0 性能监控新特性
Java Spring Boot 2.0 内置性能监控 Endpoint, 可以直接配置使用
内置 EndPointID | 描述 | 默认启用 |
auditevents | 暴露审计事件信息 | Yes |
beans | Beans 列表 | Yes |
caches | 缓存信息 | Yes |
conditions | 评估配置的条件信息 | Yes |
configprops | 显示 @ConfigurationProperties 列表 | Yes |
env | 环境信息 | Yes |
flyway | Flyway 数据掐你一信息 | Yes |
health | 健康信息 | Yes |
httptrace | 显示 HTTP 跟踪信息 (默认最近 100 HTTP 请求应答). | Yes |
info | 显示程序信息 | Yes |
integrationgraph | 集成图 SpringIntegration graph. | Yes |
loggers | 显示与修改日志信息 | Yes |
liquibase | Liquibase 数据库迁移信息 | Yes |
metrics | 显示‘metrics’指标信息 | Yes |
mappings | 显示 @RequestMapping 路径列表 | Yes |
scheduledtasks | 显示调度任务 | Yes |
sessions | 查询和删除会话 SpringSession-backed session store. 不支持 reactiveweb applications. | Yes |
shutdown | 优雅地关闭应用 | No |
threaddump | 执行线程 Dumpthread dump. | Yes |
这些 Endpoint 都可以在配置文件里打开或者关闭,
4, 实战 Actuator 性能监控
创建一个 java Spring Boot 2.0 项目, 然后添加 Actuator 依赖,
- <dependency>
- <groupId>
- org.springframework.boot
- </groupId>
- <artifactId>
- spring-boot-starter-security
- </artifactId>
- </dependency>
启动项目, 访问 http://localhost:8080/actuator / 可以查看默认的监控 Endpoint 端点列表.
5, 安全保护
Spring Boot Actuator 集成 Spring Security 安全框架, 可以直接配置使用, 也可以代码方式, 最简单的 Form 表单验证, Basic 验证例子如下:
- management.security.enabled = true
- management.security.roles = ADMIN
- security.basic.enabled = true
- security.user.name = frankxulei
- security.user.password = alibaba
6, 视频课程
视频地址: https://yq.aliyun.com/live/815
PPT 地址: https://yq.aliyun.com/live/815
7, 高级面试题
APM 架构
监控指标
监控框架
Actuator 底层实现
Micrometer 优势
配置文件参数
能不能监控 TOMCAT
数据库, NoSQL 数据库监控实现机制
8,Micrometer 性能采集器
Micrometer 是多维度指标收集器, 语言中立的 API.
通过类路径和配置, 可以支持多系统导出数据, 集成框架!
Spring Boot 2 Actuator 中包含的指标收集工具.
Spring Boot 1.5,1.4 和 1.3 支持, 额外依赖项.
Micrometer 为 Spring Boot 1 中 counters 和 gauges 增强功能.
例如, Micrometer Timer 能够生成吞吐量, 总时间, 最近样本的最大延迟, 预先计算的百分位数, 百分位柱状图相关的时间序列. 和 SLA 边界计数.
支持更多的监控工具如 Prometheus, Datadog, Wavefront, SignalFx, Influx, etc
Spring Boot 2 强化特性
阿里巴巴 Java 群 2200 多人,
直播地址: Java 技术进阶群
进群方式: 钉钉扫码入群
来源: https://yq.aliyun.com/articles/687111