最近在做一个自己的项目,平时就在自己电脑上跑着,有一天回去突然就挂了,查了半天也没搞清楚原因,想看个监控都没有,什么时候挂的,为啥挂了,统统都不知道。平时做公司项目多了,监控用的非常顺手,现在脱离公司的环境后,连最基础的监控都没了,程序完全就是裸奔。
幸运的是,调研了下grafana,自己搭建一个监控也不是难事。所以搭建了一个,并给大家贡献出来。
先看下效果,和公司用的grafana一样友好的界面。
在这里插入图片描述
再看下使用

  1. 引入依赖(没有发布到maven仓库,因此需要本地下载源码编译下,然后再导入:https://gitee.com/wide_vision/easy-monitor)
        <dependency>
            <groupId>easy-monitor</groupId>
            <artifactId>api</artifactId>
            <version>1.0.1-SNAPSHOT</version>
        </dependency>
  1. 初始化
		//必选:在程序启动的时候设置,设置token; 这里的token对应的table是:common_data
		//属于公共token,有限流和最大指标数的限制
		//如果有定制化需求,可联系作者分配私有token
        UMonitor.init("a3cbe2d3-cd96-4a8c-b201-0d4f4412e936");
        
        //非必选:如果部署了服务端私有化服务,可设置服务端地址
        UMonitor.setServer("http://localhost:2345");
        //非必选:用于区分多应用程序,默认为“default”
        UMonitor.setApplication("default");
  1. 使用api
        //记录一次长链路的监控,生成次数和耗时。 必须调用complete。如果设置了status,最终生成四个监控:type,time_type,type_status,time_type_status;没设置status,则生成两个常规监控type,time_type
        Transaction transaction = UMonitor.newTransaction(type);
        try {
            filterChain.doFilter(servletRequest, servletResponse);
        } catch (Throwable e) {
            log.error("请求异常,url:{},method:{}", uri, method, e);
            transaction.setStatus(e.getCause().getClass().getSimpleName());
            throw e;
        }
        transaction.complete();
//记录1次
UMonitor.recordOne("LOGIN_FAIL_NO_USER");

//记录100次
UMonitor.recordCount("LOGIN_FAIL_NO_USER",100);

//同时记录耗时以及次数打点
long startTime = System.currentMills();
//do something
UMonitor.recordAll("LOGIN_FAIL_NO_USER",System.currentMills() - startTime);

在grafana配置图标:http://grafana.damiedaya.cn:2666/

账户名:common@outlook.com
// 密码我用base64编码了,真实密码需要base64解密
密码:MTIzNDU2LkE=

配置图标,这里数据存储用的是Mysql,因此配置按照mysql的规则:
在这里插入图片描述
在这里插入图片描述

SELECT
  $__timeGroupAlias(create_time,$__interval),
  avg(value) AS "count"
FROM common_data
WHERE
  $__timeFilter(create_time) AND
  key_type = 'LOGIN_FAIL_NO_USER'
GROUP BY 1
ORDER BY $__timeGroup(create_time,$__interval)

即可展示出图表来。
在这里插入图片描述

Logo

这里是“一人公司”的成长家园。我们提供从产品曝光、技术变现到法律财税的全栈内容,并连接云服务、办公空间等稀缺资源,助你专注创造,无忧运营。

更多推荐