背景

性能压测后,逐个埋点添加各种StopWatch。

两个缺点:

  1. 侵入了业务逻辑,降低可读性
  2. 耗时,工作量大

期望:

  1. 【注解】 基于配置或注解可以精确控制要添加性能监控的method或class
  2. 【指标维度全面】监控指标全面,除了常见的QPS、Req Cost Time,还要有TPS, P90, P95 ,P99等指标
  3. 【可视化】最好有图形化的界面可以实时看到各个method的性能状况

方案调研

  1. 商业
    OneAPM、NewRelic等基于java agent实现无侵入监控性能指标。
  2. 开源
    【一站式】open-tracing
    【定制化】metrics + aop + AMQP中间件 + InfluxDB + Grafana

分析

根据目前的需求,需要灵活的定制化监控项,可控的监控数据流,因此原则定制化开源项。

方案细节

  1. 组件调研

    监控指标采集
    指标数据传输
    • AMQP选型
    指标数据落地
    • 时间序列数据库

      InfluxDB

    指标数据展示
    • Grafana
  2. 方案打通

  3. 测试上线

Reference

  1. Metrics —— JVM上的实时监控类库

Comments