简单说下需求:

统计各个省份的 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"

说下方案

第一种方案之前已经实现过了elk.效果并不了解,里面有提到

第二种方案: 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访问成功率统计的更多相关文章

  1. [svc]influxdb最佳实战-监控对比

    最近在搞容器的监控,遇到influxdb这个库,搞了两天,些许明白了些套路,做个记录,备忘.... 小结如下: influxdb go语言编写 默认情况influxdb创建的库关联autogen的RP ...

  2. 详解k8s原生的集群监控方案(Heapster+InfluxDB+Grafana) - kubernetes

    1.浅析监控方案 heapster是一个监控计算.存储.网络等集群资源的工具,以k8s内置的cAdvisor作为数据源收集集群信息,并汇总出有价值的性能数据(Metrics):cpu.内存.netwo ...

  3. [k8s]dashboard1.8.1搭建( heapster1.5+influxdb+grafana)

    dashboard最终效果 多了执行sh的窗口 heapster+influxdb+grafana搭建 整个架构是 dashboard去检测 hepster service服务, heapster通过 ...

  4. kubernetes监控-Heapster+InfluxDB+Grafana(十五)

    cAdvisor+InfluxDB+Grafana cAdvisor:是谷歌开源的一个容器监控工具,采集主机上容器相关的性能指标数据.比如CPU.内存.网络.文件系统等. Heapster是谷歌开源的 ...

  5. kubernetes 监控方案之:heapster+influxdb+grafana(十八)

    目录 一.Heapster 介绍 二.部署 三.使用 heapster 已经 deprecated 了:https://github.com/kubernetes/heapster,所以下面的演示主要 ...

  6. kubernetes监控和性能分析工具:heapster+influxdb+grafana

    1.部署heapster 下载 heapster 相关 yaml 文件 [root@master dashboard]# wget https://raw.githubusercontent.com/ ...

  7. Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警

    前言 这次主要分享通过Metrics.net + influxdb + grafana 构建WebAPI的自动化监控和预警方案.通过执行耗时,定位哪些接口拖累了服务的性能:通过请求频次,设置适当的限流 ...

  8. Telegraf+InfluxDB+Grafana搭建服务器监控平台

    Telegraf+InfluxDB+Grafana搭建服务器监控平台 tags:网站 个人网站:https://wanghualong.cn/ 效果展示 本站服务器状态监控:https://statu ...

  9. Influxdb+Grafana+Telegraf及docker中运行

    目录 参考资料 1. InfluxDB 1. 特征: 2. 特点: 3. 功能及默认 4. 主要概念 1) 与SQL的名词做比较 2) InfluxDB的独有概念 5. 常用命令 1. 用户管理: 6 ...

随机推荐

  1. Java 反照机制中 getMethod()和getDeclaredField()区别

    Java 反射机制中 getMethod()和getDeclaredField()区别 今天在程序中用到java反射机制时,遇到的问题记录一下:我当时遇到的问题是,我用反射getMethod()调用类 ...

  2. Labeled Faces in the Wild 人脸识别数据集 部分测试数据

    development test set Note: images displayed are original (non-aligned/funneled) images. match pairs ...

  3. java中的char占几个字节

    1:“字节”是byte,“位”是bit : 2: 1 byte = 8 bit : char 在Java中是2个字节.java采用unicode,2个字节(16位)来表示一个字符. 例子代码如下: p ...

  4. 【转载】Redis在新浪微博中的应用

    转载自文章 http://blog.me115.com/2013/12/19/redis-e5-9c-a8-e6-96-b0-e6-b5-aa-e5-be-ae-e5-8d-9a-e4-b8-ad-e ...

  5. 关于Javascript你可能不知道的事

    NaN表示一个不能产生正常结果的运算结果.它不等于任何值,包括它自己.可以用isNaN(number)来检测. 同Java中的字符串一样,JS中的字符串是不可变的.也就是说一旦字符串被创建,就无法改变 ...

  6. 9个实用的Javascript代码高亮脚本

    代码高亮很有用,特别是在需要在网站或者blog中显示自己编写的代码的时候,或者给其他人查看或调试语法错误的时候.我们可以将代码高亮,以便阅读者可以十分方便的读取代码块,增加用户阅读代码的良好体验. 目 ...

  7. html5.js 让所有IE支持HTML5

    摘自: http://hi.baidu.com/skway/item/33f38a9487356b4ff14215cf?qq-pf-to=pcqq.c2c html5.js 让所有IE支持HTML5 ...

  8. 给Linux初学者的七个建议,值得一读

    刚开始使用Linux时你也许会感到不习惯,许多高手也都有这样的经历.毕竟,曾经他们也都是新手.但是现在Linux团体已经在为新用户提供有关指南, 手册和基本的技术文档来使他们尽快上手方面做的相当出色. ...

  9. RS中的关系引用不明确以及行列自动添加了追溯

    问题1:由于在FM模型的物理层是自己新建了查询主题,查询主题采用对已经存在的表进行sql处理然后重命名, 使用的是sql类型的数据源,sql类型设置的查询类型是默认的cognos类型,而语法是本地的结 ...

  10. 彻底领悟javascript中的exec与match方法

    exec是正则表达式的方法,而不是字符串的方法,它的参数才是字符串,如下所示: var re=new RegExp(/\d/); re.exec( "abc4def" ); //或 ...