文章目录本文将会介绍下Metrics系统监控在SpringBoot下的实战,数据录入influxdb,使用grafana来做监控的可视化。
- 引入依赖
- SpringBoot中使用Metrics
- Metrics写入数据到influxdb:
- 1.引入依赖metrics-influxdb
- 2.配置InfluxdbReporter
- Grafana可视化
- 1.安装
- 2.读取influxdb
本博客是基与SpringBoot+Metrics+Influxdb+maven的,所以需要引入Metrics、metrics-spring、metrics-influxdb三个maven依赖。
com.ryantenney.metrics metrics-spring 3.1.3 io.dropwizard.metrics metrics-core 3.1.0 com.github.davidb metrics-influxdb 0.9.3
SpringBoot中使用Metrics 加入metrics-spring依赖后,可以直接在Spring、SpringBoot中使用相关注解。@Timed, @Metered, @ExceptionMetered, @Counted等注解。具体含义可以参考上篇关于Metrics基础的介绍。 使用方法示例:
@Metered(name = "request.ls", absolute = true)
@RequestMapping(value = "/loss", method = RequestMethod.GET)
public void handle(HttpServletRequest httpRequest, HttpServletResponse httpResponse) {
}
如上示例用来统计/loss的TPS,使用@Metered注解,参数name表示数据存储的key,后续可视化读取会用到。
Metrics写入数据到influxdb: influxdb是一款支持时序的非关系型数据库,满足metrics的场景使用。 1.引入依赖metrics-influxdb 第一步方便大家复制已经一起引入 2.配置InfluxdbReporter 配置influxdbReporter,将metrics收集的数据推送到influxdb
@Configuration
@EnableMetrics
public class MetricsConfig extends MetricsConfigurerAdapter {
@Override
public void configureReporters(MetricRegistry metricRegistry) {
initInfluxdbReporter(metricRegistry);
}
private void initInfluxdbReporter(MetricRegistry metricRegistry) {
Builder builder = InfluxdbReporter.forRegistry(metricRegistry);
builder.protocol(new HttpInfluxdbProtocol("127.0.0.1", 8086, "test-monitor"));
builder.convertRatesTo(TimeUnit.SECONDS);
builder.convertDurationsTo(TimeUnit.MILLISECONDS);
builder.filter(MetricFilter.ALL);
builder.skipIdleMetrics(false);
builder.tag("host", "host:port");
ScheduledReporter influxdbReporter = builder.build();
influxdbReporter.start(5, TimeUnit.SECONDS);
super.registerReporter(influxdbReporter);
}
}
1、 实例化ScheduledReporter:主要参数包含influxdb数据库的server+port,database(会在可视化读取的时候选择,声明当前节点的tag等参数。
2、将influxdbReporter 向MetricRegistry 注册。
Grafana可视化
1.安装 官网下载:https://grafana.com/grafana/download 下载对应的rpm包,使用rpm安装。也可以直接使用yum。 启动Grafana:service grafana-server start 打开浏览器,输入IP+端口,3000为Grafana的默认侦听端口。 系统默认用户名和密码为admin/admin,第一次登陆系统会要求修改密码,修改密码后登陆。界面如下: 2.读取influxdb 1、在Grafana中添加influxdb数据源。左上角 >> Data Source >> Add New,填写influxdb的ip+port及database名称。Grafana是一个跨平台的开源的度量分析和可视化工具,可以通过将采集的数据查询然后可视化的展示,并及时通知。
2、新建Dashboard,用作新的可视化管理页面。
关于Grafana支持的数据源及展示的类型还有很多,感兴趣的可以多做了解。本篇仅分享使用方法。



