如何接入度量指标监控
本节课程主要介绍如何在 AMO 平台接入度量指标监控,包括度量指标的暴露、采集、查询展示以及自定义仪表等内容。
依赖
-
AMO 环境,参考 监控运维组件-环境部署 文档完成环境准备工作
- 至少包含
amo-basic
和amo-monitor
组件
- 至少包含
-
Grafana 服务
-
可以使用 Docker 快速拉起一个服务用于测试
docker run --rm --name grafana -p 3000:3000 grafana/grafana # 默认用户名密码:admin/admin
-
接入过程
业务应用集成 koca-metrics
- 以交付件
02.quickstart/bootapp
为例添加koca-metrics
- 参考 开发框架-服务监控 文档
- 确认 Actuator 接口
/actuator
-
/actuator/prometheus
暴露 Prometheus 协议的指标接口 -
/actuator/health
用于健康检查的黑盒监控接口
AMO 平台配置指标采集
-
配置流程
-
添加服务分类
-
可以新建分类或者拷贝已有分类,为了复用一些已有配置这里选择复制一个
KOCA应用
服务分类 -
服务分类的监控配置,参考 指标监控-配置管理 文档
-
监控端口都默认使用实例端口,不需要配置
-
健康检查配置
-
指标监控配置
- 代理主机用于传统应用、中间件等指标采集代理不在服务所在主机
-
-
-
添加应用、服务、主机、实例
-
检查 KOCA-Agent 下发配置
-
参看 Prometheus SD 配置文件
cat {Prometheus Path}/sd/koca_targets.yml
# /actuator/prometheus - targets: - 192.168.8.57:8090 labels: __metrics_path__: /actuator/prometheus koca_app_code: demo koca_env_code: default koca_instance_group: /3042 koca_instance_id: "3047" koca_instance_ip: 192.168.8.57 koca_instance_name: Demo-1 koca_job: metrics koca_service_code: demo-svc koca_service_type: MONITOR # /actuator/health - targets: - koca-agent:9100 labels: __metrics_path__: /blackbox/probe __param_module: http_2xx __param_target: 192.168.8.57:8090/actuator/health koca_app_code: demo koca_env_code: default koca_instance_group: /3042 koca_instance_id: "3047" koca_instance_ip: 192.168.8.57 koca_instance_name: Demo-1 koca_job: liveness koca_service_code: demo-svc koca_service_type: MONITOR
检查 Prometheus 采集情况
- 检查 Targets 配置
http://{Prometheus IP}:9090/targets
- 是否有对应实例的 Target
- 通过 Graph 查询指标
- 健康检查:
probe_success{koca_app_code="{App Code}"}
- 度量指标:
koca_requests_total{koca_app_code="{App Code}"}
- 健康检查:
AMO 平台查看指标
-
在确认 Prometheus 采集指标无误后,在 AMO 平台 指标监控 → 服务监控 选择应用、环境查看监控指标
-
对接口做一个压测看下效果:
-
hey -z 10s -c 2 -q 10 "http://localhost:8090/actuator"
-
使用 Grafana 自定义仪表
- 如果 AMO 平台预置的仪表不能满足需求,或者指标为自定义指标,可以参考 仪表板设计-导入 Grafana 仪表 文档设计仪表并导入到 AMO 平台
- Grafana 自定义仪表过程
- 添加 Prometheus 数据源
- 创建仪表或对 AMO 预置模板进行修改
- 在 koca-agent 的交付件
dashboard/exported
目录下有 AMO 预置模板的导出文件,可以导入后编辑- 注意:如果 Prometheus 数据源名称不是
Prometheus
,需要修改 JSON 中所有"datasource": "Prometheus"
的配置
- 注意:如果 Prometheus 数据源名称不是
- 在 koca-agent 的交付件
- 编辑完成后复制 JSON Model 数据,将仪表导入到 AMO