[svc]influxdb+grafana实战-各省份api访问成功率统计
简单说下需求:
统计各个省份的 3大运营商的接口访问成功率,绘图展示
数据格式
{"mobile" : "15812345608", "province": "广东", "isp": "中国电信","@timestamp" : "2017-12-06T09:23:51.244Z", "success" : "false"}
最终入库(influxdb)的日志

示例数据:(influxdb的sql)
INSERT crawl_result,isp=中国移动,province=上海,mobile=15912345678 success="1"
INSERT crawl_result,isp=中国移动,province=上海,mobile=15912345678 success="1"
INSERT crawl_result,isp=中国移动,province=上海,mobile=15912345678 success="1"
INSERT crawl_result,isp=中国移动,province=上海,mobile=15912345678 success="1"
INSERT crawl_result,isp=中国移动,province=上海,mobile=15912345678 success="1"
INSERT crawl_result,isp=中国移动,province=上海,mobile=15912345678 success="1"
INSERT crawl_result,isp=中国移动,province=上海,mobile=15912345678 fail="0"
INSERT crawl_result,isp=中国移动,province=上海,mobile=15912345678 fail="0"
INSERT crawl_result,isp=中国联通,province=上海,mobile=15912345678 fail="0"
说下方案


第二种方案: influxdb+grafana, 好处是可灵活计算比例.表格少一些.
这个毛病在于sql语句. grafana模板有点难,如果没玩过的话. grafana需要多点点就会了,
grafana对接influxdb,无需多写什么sql.
vm 下载安装grafana
参考: 普罗+grafana监控mysql: https://segmentfault.com/a/1190000007040144
wget https://s3-us-west-2.amazonaws.com/grafana-releases/release/grafana-4.6.2-1.x86_64.rpm
yum localinstall grafana-4.6.2-1.x86_64.rpm -y
配置grafana导入dashboard
修改配置
cd /etc/grafana/grafana.ini
cp grafana.ini grafana.ini.default
vim grafana.ini
...
370 [dashboards.json]
371 ;enabled = false
372 enabled = true
373 path = /var/lib/grafana/dashboards
...
导入dashboard
cd /var/lib/grafana/dashboards
插件目录: /var/lib/grafana/plugins
dashboard目录: /var/lib/grafana/dashboards
日志目录: /var/log/grafana/grafana.log
启动并访问:
systemctl restart grafana-server
http://monitor_host:3000访问Grafana网页界面(缺省的帐号/密码为admin/admin)
influxdb安装
wget https://dl.influxdata.com/influxdb/releases/influxdb-1.4.2.x86_64.rpm
sudo yum localinstall influxdb-1.4.2.x86_64.rpm
当然也可以容器启动 grafana和influxdb
参考: https://hub.docker.com/r/grafana/grafana/
docker run \
-d \
-p 3000:3000 \
--name=grafana \
-e "GF_SERVER_ROOT_URL=http://grafana.server.name" \
-e "GF_SECURITY_ADMIN_PASSWORD=secret" \
grafana/g
最终实现:

连库:

定义模板变量

配置左半部分的

配置有半部分的

SELECT count("success") FROM "crawl_result" WHERE ("isp" = '中国移动' AND "province" =~ /^$china_mobile$/) AND $timeFilter GROUP BY "isp","province" fill(null) ORDER BY time DESC

SELECT count("success"),count("fail"),count("success")/(count("success")+count("fail")) FROM "crawl_result" WHERE ("isp" = '中国移动' AND province=~ /^$china_mobile$/) AND $timeFilter GROUP BY "isp","province" fill(null)
最终模板效果:

sql的groupby
按照isp分类
SELECT isp,province,mobile,success,fail FROM "crawl_result" GROUP BY "isp""

先按照isp分类,后按照province分类
SELECT isp,province,mobile,success,fail FROM "crawl_result" GROUP BY "isp","province"

参考别人的模板是怎么做的:
Graphite Templated Dashboard: http://play.grafana.org/dashboard/db/graphite-templated-nested
Elasticsearch Templated Dashboard: http://play.grafana.org/dashboard/db/elasticsearch-templated
InfluxDB Templated Dashboard: http://play.grafana.org/dashboard/db/influxdb-templated-queries
InfluxDB Templated Dashboard
grafana不需要写特别的语法,按照它给的sql语句器实现group by分类和order by,完全ok.





[svc]influxdb+grafana实战-各省份api访问成功率统计的更多相关文章
- [svc]influxdb最佳实战-监控对比
最近在搞容器的监控,遇到influxdb这个库,搞了两天,些许明白了些套路,做个记录,备忘.... 小结如下: influxdb go语言编写 默认情况influxdb创建的库关联autogen的RP ...
- 详解k8s原生的集群监控方案(Heapster+InfluxDB+Grafana) - kubernetes
1.浅析监控方案 heapster是一个监控计算.存储.网络等集群资源的工具,以k8s内置的cAdvisor作为数据源收集集群信息,并汇总出有价值的性能数据(Metrics):cpu.内存.netwo ...
- [k8s]dashboard1.8.1搭建( heapster1.5+influxdb+grafana)
dashboard最终效果 多了执行sh的窗口 heapster+influxdb+grafana搭建 整个架构是 dashboard去检测 hepster service服务, heapster通过 ...
- kubernetes监控-Heapster+InfluxDB+Grafana(十五)
cAdvisor+InfluxDB+Grafana cAdvisor:是谷歌开源的一个容器监控工具,采集主机上容器相关的性能指标数据.比如CPU.内存.网络.文件系统等. Heapster是谷歌开源的 ...
- kubernetes 监控方案之:heapster+influxdb+grafana(十八)
目录 一.Heapster 介绍 二.部署 三.使用 heapster 已经 deprecated 了:https://github.com/kubernetes/heapster,所以下面的演示主要 ...
- kubernetes监控和性能分析工具:heapster+influxdb+grafana
1.部署heapster 下载 heapster 相关 yaml 文件 [root@master dashboard]# wget https://raw.githubusercontent.com/ ...
- Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警
前言 这次主要分享通过Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警方案.通过执行耗时,定位哪些接口拖累了服务的性能:通过请求频次,设置适当的限流 ...
- Telegraf+InfluxDB+Grafana搭建服务器监控平台
Telegraf+InfluxDB+Grafana搭建服务器监控平台 tags:网站 个人网站:https://wanghualong.cn/ 效果展示 本站服务器状态监控:https://statu ...
- Influxdb+Grafana+Telegraf及docker中运行
目录 参考资料 1. InfluxDB 1. 特征: 2. 特点: 3. 功能及默认 4. 主要概念 1) 与SQL的名词做比较 2) InfluxDB的独有概念 5. 常用命令 1. 用户管理: 6 ...
随机推荐
- EntityFramework:我想我需要和 Session.Save 语义一样的方法
背景 EntityFramework 中 DbSet.Add 方法不会导致立即执行 insert 语句,这在长事务中非常有用,不过多数用例都是短事务的,为何我需要一个立即执行 insert 语句的方法 ...
- 关于textiled的设置透明度的问题
如果textfield的背景色设置的是黑色的话, 然后设置它的透明度为0.3, 就会显示出半透明的效果, 这时如果用键盘输入时, 会显示不出来输入的字体. 因为: textfield的字体默认也是黑色 ...
- PTC点击网赚入门
第一次接触PTC大概是11月19号左右,那时候第一感觉是"这不就是传销吗,肯定是骗人的",但是由于利润十分之大,又忍不住仔细研究了一下,我还是十分还是十分谨慎的,再加上程序员的头脑 ...
- matlab从文件夹名中获得该文件夹下所图像文件名
function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_FileNameFromFolderPath(path ...
- OpenCV学习(13) 细化算法(1)
程序编码参考经典的细化或者骨架算法文章: T. Y. Zhang and C. Y. Suen, "A fast parallel algorithm for thinning digita ...
- Orchard运用 - 如何删除部分内容显示
最近在潜心研究Orchard CMS,个人觉得要深入了解一个系统最好的办法, 就是使用它做些什么尝试,最好有些真实的实践,比如不妨基于Orchard搭建个人博客, 看看有哪些场景需要定制,哪些功能可以 ...
- RV BaseRecyclerViewAdapterHelper 总结 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- 在JavaScript文件中读取properties文件的方法
假设有JavaScript文件叫做:readproperties.js,这个文件需要读取config.properties这个配置文件,步骤如下: 1. 下载插件jquery.i18n.proper ...
- ExtAspNet下通过文档路径实现文档的下载
<ext:Button ID="Button1" runat="server" Text="Button" OnClick=" ...
- Simple TCP/IP Echo Server & Client Application in C#
1. TCP Server The server’s job is to set up an endpoint for clients to connect to and passively wait ...