Java监控Metrics+SpringBoot+influxdb+grafana实战

本文将会介绍下Metrics系统监控在SpringBoot下的实战,数据录入influxdb,使用grafana来做监控的可视化。

引入依赖

本博客是基与SpringBoot+Metrics+Influxdb+maven的,所以需要引入Metrics、metrics-spring、metrics-influxdb三个maven依赖。

        <dependency>
            <groupId>com.ryantenney.metrics</groupId>
            <artifactId>metrics-spring</artifactId>
            <version>3.1.3</version>
        </dependency>
        <dependency>
            <groupId>io.dropwizard.metrics</groupId>
            <artifactId>metrics-core</artifactId>
            <version>3.1.0</version>
         </dependency>
         <dependency>
            <groupId>com.github.davidb</groupId>
            <artifactId>metrics-influxdb</artifactId>
            <version>0.9.3</version>
        </dependency>

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可视化

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名称。

在这里插入图片描述

2、新建Dashboard,用作新的可视化管理页面。
在这里插入图片描述

3、点击Panel Title会有下拉,选择Edit,会进入编辑页面。 选择database、统计的key,就可以出现对应的数据信息了。

在这里插入图片描述

关于Grafana支持的数据源及展示的类型还有很多,感兴趣的可以多做了解。本篇仅分享使用方法。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java码农杂谈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值