栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

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

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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

本文将会介绍下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可视化

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支持的数据源及展示的类型还有很多,感兴趣的可以多做了解。本篇仅分享使用方法。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/678757.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号