没有监控 就没有眼睛。 除了k8s的基本监控外(pod运行情况、占用内存、cpu)。为了对微服务项目中的(1)各类参数线程池、QPS、RT、业务指标(2)系统负载、thread、mem、class、tomcat、gc、等jvm指标进行监控前端
采用 promethus 对spring boot业务埋点进行监控。 由于k8s对promethus很好的支持。同时spring boot 集成client很方便。对spring boot actuator 的metrics指标有很好的集成spring
因此采用了基于 k8s的 promethus job 对业务指标采起拉模式收集。 同时因为 promethus 支持 grafana前端UI界面。 因此整个架构简单采用tomcat
这里采用了pull模式。对application性能有必定影响。若是对定时任务短期指标(promethues来不及拉取) 或者性能比较高 采用 push模式架构
一、spring boot 集成 promethus 可参考 https://cloud.tencent.com/developer/article/1096692 具体使用不详细介绍app
主要是 promethus四种类型的使用 https://prometheus.io/docs/concepts/metric_types/jvm
二、grafana 配置微服务
以线程池监控为例性能
(1) 仪表盘配置:spa
a、选择数据源 : Prometheus线程
b、 编写promQL: 主要对线程池 线程池数目、激活数目、队列中数目进行统计平均值,接下来根据指标自定义报警策略
(2)报警配置:
c、配置报警条件: now 到 5 分钟前: 查询条件(B)即队列中数目 超过 100 则触发报警
d、配置报警通知:配置sender, 钉钉推送通知
当监控指标异常时 会触发钉钉报警, 开发人员会获得 通知 而后紧急处理。