Mac 基于Grafana + Promthues + Pushgateway 实现的Android端APM监控实践(2)
上期Mac 基于Grafana + Promthues + Pushgateway 实现的Android端APM监控实践(1)已经介绍了基于Grafana,Promthues,Pushgateway服务环境搭建,有了服务环境,现在缺的是怎么上传数据了,在讲解数据上传之前,我们想总结一下这套APM的整体框架:
从图中,我们可以看出整套总共分为Pushgateway,Promthues,Grafana(WEB UI),Alertmanager四大组件模块
Pushagateway: 是Promthues生态中的重要工具,因为Promthues采用pull模式,可能存在由于不在一个子网或者防火墙原因,导致Promthues无法直接拉取各个target数据,在监控业务数据的时候,需要将不同数据汇总,统一由Promthues收集
Promthues: 由 SoundCloud 开源监控告警解决方案,Promthues存储的是时序数据
,即按相同时序(相同名称和标签),以时间维度存储连续的数据的集合
Grafana: Grafana你可以理解是Web UI,上面可以设置不同的数据源,Promthues就是其中一种数据源,然后以不同的图表,报表等方式展示出来,Grafana功能非常强大,后面会详细介绍
Alertmanager: Alertmanager是Promthues其中的一个告警组件,方便我们对数据的监控
-
数据上传
-
基于Mac curl post的方式上传
首先新建一个data.txt文件,然后写入下面内容
blog_visit_total{blogid="12345",clientip="10.0.1.1"} 30
blog_visit_total{blogid="34567",clientip="10.0.1.2"} 40
blog_visit_total{blogid="56789",clientip="10.0.1.3"} 50
复制代码
最后使用curl命名进行数据发送
curl -XPOST --data-binary @/Users/dengqu/Downloads/data.txt http://localhost:9091/metrics/job/cnblogs
复制代码
进行之后,浏览http://localhost:9091/metrics 就会看到刚才上传的数据
这个时候说明数据已经上传成功了,我们再登陆Promthues服务地址可以进行数据查询
数据已经存入Promthues,那么我们再让数据在Grafana上以图表的方式展示呢
1.登陆Grafana添加数据源
登陆Grafana,创建data source
添加data source
选择Promthues作为数据源
填写Promthues服务器地址
save和test
2.添加Pannel
上面已经添加了数据源了,下面就是通过Pannel的方式展示数据
Add na empty Pannel
设置面板标题,写好PromSql语句,保存
最后就以图形的方式展示了
可以选择数据的时间和刷新时间
选择数据区域,last 5 minutes代表最近5分钟的数据
选择页面刷新时间间隔,下面是5s自动刷新一次
到此,整套就形成了一个闭环了,从数据上报,到数据展示,当然,上面的数据上报方式是基于mac curl post命令方式进行数据上传,在android应用中怎么收集数据进行上传呢,下期介绍在android上对数据采集