阿里sentinel-dashboard控制台实时监控持久化并用grafana可视化

使用过阿里sentinel-dashboard的童鞋们都知道控制台里默认的实时流量监控数据只保留5分钟(在内存中)。阿里sentinel官网地址(https://github.com/alibaba/Sentinel),如图
在这里插入图片描述
所以想查历史流量情况就不行,需要将监控数据持久化。
参考https://www.cnblogs.com/cdfive2018/p/9914838.html博客,他里面有段代码

private MetricEntity convertToMetricEntity(MetricPO metricPO) {
        MetricEntity metricEntity = new MetricEntity();

        metricEntity.setId(metricPO.getId());
        metricEntity.setGmtCreate(new Date(metricPO.getGmtCreate()));
        metricEntity.setGmtModified(new Date(metricPO.getGmtModified()));
        metricEntity.setApp(metricPO.getApp());
        metricEntity.setTimestamp(Date.from(metricPO.getTime().minusMillis(TimeUnit.HOURS.toMillis(UTC_8))));// 查询数据减8小时
        metricEntity.setResource(metricPO.getResource());
        metricEntity.setPassQps(metricPO.getPassQps());
        metricEntity.setSuccessQps(metricPO.getSuccessQps());
        metricEntity.setBlockQps(metricPO.getBlockQps());
        metricEntity.setExceptionQps(metricPO.getExceptionQps());
        metricEntity.setRt(metricPO.getRt());
        metricEntity.setCount(metricPO.getCount());
        return metricEntity;
    }

存在influxdb中时加了八个小时,导致展示时有问题。所以建议这句
metricEntity.setTimestamp(Date.from(metricPO.getTime().minusMillis(TimeUnit.HOURS.toMillis(0)))); 不要加8小时。


将持久化的数据以图表的方式展示出来
使用grafana开源的工具,天然支持influxdb。读者自行并配置安装。
下面我们将持久化的数据展示出来。
1.进入页面添加数据源
在这里插入图片描述
2.选择influxdb,并配置
在这里插入图片描述
其他按默认值填写
在这里插入图片描述
database填之前创建的数据库sentinel_db,用户名和密码没有就不用填。
3.创建监控面板
在这里插入图片描述
选这个折现图
在这里插入图片描述
例如配置请求流量
在这里插入图片描述
例如配置请求响应时间
在这里插入源码图片描述
遇到的坑:
在没有去掉持久化加8小时的时候,grafana监控的X轴的时间老是差8小时,然后就修改grafana里的时区,但是修改了时区,显示的数据又不对,折腾了很长时间,后来知道是它源码里加8小时了。
解决办法:就是持久化时源码里不要加8小时,grafana里的时区就按默认就好,完美解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值