influxdb+grafana业务数据可视化

了解数据库的TPS、QPS是作为一个运维DBA是非常必要的,那什么是TPS、QPS呢,简单的理解是:

QPS:每秒查询数,即对数据库每秒的DML的操作数

TPS:每秒事物处理,即对数据库每秒DDL操作数

通过了解他们,可以掌握一个实例的基本工作运行状态

如何对于对他们进行页面可视化,是DBA的一个装逼神器,本章主要介绍通过时序数据库(influxdb)+grafana+简单的python代码实现

时时监控它们,什么是时序数据库可以在其他章节了解,这里不做过多介绍

Let‘s go.....

1、直接YUM安装influxdb,安装后生成默认的配置文件/etc/influxdb/influxdb.conf 暂不修改

2、ON/OF服务

service influxdb start/stop

3、influxdb数据库网页管理控制台(默认值),这个只是方便某些操作,具体操作还是到终端输入命令influx,此通过http://IP:8083 通过页面方式登录添加

一个用户名和密码,为grafana连接INFLUXDB使用,用户名密码自己定义

选中create user 再query 就会有CREATE USER "根据实际输入用户名" WITH PASSWORD ‘输入你的密码‘

[[email protected] ~]# influx

Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.

Connected to http://localhost:8086 version 0.13.0

InfluxDB shell version: 0.13.0

这个就可以登录,是不是很熟悉的,具体操作看博客的其他章节。

注意:数据库url(默认值):http://localhost:8086 ##这个在后面的grafana会被用到,数据传输使用

4、YUM安装GRAFANA包

安装后on/off服务:/etc/init.d/grafana-server start/stop

5、GRAFANA的页面登录,默认使用3000端口:

192.168.1.114:3000 登录名和密码默认是admin

6、通过Python代码实现对MySQL和influxdb的同时操作

#注意:python 操作MySQL需要安装python-mysql的驱动包,自己百度下载个,一般在解压后目录里执行1、python setup.py build 2、python setup.py install

python 操作INFLUXDB也需要python-influxdb

$ pip install influxdb
$ pip install --upgrade influxdb
$ pip uninstall influxdb  ##注意如果没有安装PIP自己百度安装吧。

7、python 脚本:

#!/usr/bin/env python

#_*_ coding:utf-8 _*_

import MySQLdb

import datetime

import json

#qps

import time

from influxdb import InfluxDBClient

#import influxdb

try:

conn=MySQLdb.connect(host="192.168.15.104",user="dlan",passwd="root123",port=3306)

client=InfluxDBClient(host=‘192.168.15.104‘, port=8086, username=‘root‘, password=‘root‘, database=‘telegraf‘)

cur=conn.cursor()

while True:

sql = ‘‘‘show global status where variable_name in(‘com_select‘,‘com_insert‘,‘com_delete‘,‘com_update‘,‘com_insert_select‘,‘uptime‘)‘‘‘

cur.execute(sql)

aa = cur.fetchall()

aa=list(aa)

delete = int(aa[0][1])

insert1 = int(aa[1][1])

insert2 = int(aa[2][1])

select = int(aa[3][1])

update = int(aa[4][1])

uptime1 = int(aa[5][1])

qps1=delete+insert1+insert2+select+update

time.sleep(1)

while True:

sql = ‘‘‘show global status where variable_name in(‘com_select‘,‘com_insert‘,‘com_delete‘,‘com_update‘,‘com_insert_select‘,‘uptime‘)‘‘‘

cur.execute(sql)

aa = cur.fetchall()

aa = list(aa)

delete_2 = int(aa[0][1])

insert_2 = int(aa[1][1])

insert2_2 = int(aa[2][1])

select_2 = int(aa[3][1])

update_2 = int(aa[4][1])

uptime2_2 = int(aa[5][1])

qps2 = delete_2 + insert_2 + insert2_2 + select_2 + update_2

commit=qps2 -qps1

uptime=uptime2_2-uptime1

aa =(commit/uptime)

json_body = [

{

"measurement":‘my_tps‘,

"tags":{

"host": "mycat"

},

"fields":{

"influxdb":"qps1",

"qps":aa

}

}

]

#aa ="query_per_sec  host=mycat,role=db,influxdb=qps qps=%d "% (commit/uptime)

#aa =(commit/uptime)

#print aa,json_body

client.write_points(json_body)

break

except MySQLdb.Error,e:

print "MySQL error%d:%s"%(e.args[0],e.args[1])

##脚本需要注意4个地方:1、连接数据库的信息,是被监控端的

2、MySQL的QPS统计收集的存储的数据库

3、收集的数据把字符串转成JSON格式

json_body = [

{

"measurement":‘my_tps‘,   ###注意这个红色位置不能用双引号,估计是PYTHON的问题,JAVA用双引号没问题,是个坑哦~~~!这个可以设置你喜欢的,其他不要修改,直接使用

"tags":{

"host": "mycat"

},

"fields":{

"qps":aa

}

}

]

4、需要在influxdb添加一个数据库,例子名字叫:test_influxdb (自定定义), client=InfluxDBClient(host=‘192.168.15.104‘, port=8086, username=‘root‘, password=‘root‘, database=‘telegraf‘),可根据实际定义,后面的GRAFANA会用到这个名字

强烈建议对数据库的操作通过终端来搞:

[[email protected] ~]# influx

Visit https://enterprise.influxdata.com to register for updates, InfluxDB server management, and monitoring.

Connected to http://localhost:8086 version 0.13.0

InfluxDB shell version: 0.13.0

> create database test_influxdb

> show databases;

name: databases

---------------

name

telegraf

_internal

mytab

mydb

stress

test_influxdb

8、在grafana配置收集来的数据信息:

1、添加数据源与配置,点击grafana的图表的下拉单点data sources---》add data source

2、配置数据源信息

3、datshboards->news->左上小绿格->add panel->graph

4、选择metrics配置如下:

解释:1、为刚才创建的数据源名字

2、添加个 query

3、展开query

4、这里根据前面的json格式 "measurement":‘my_tps‘ 这个my_tps,可以理解为时序数据库的表。

5、选择HOST

6、选择JSON的tags标签的值mycat

"tags":{

"host": "mycat"

7、为JSON的"qps":aa的qsp,相当于字段,为field

8、为统计方式,看其INFLUXDB的基础介绍

9、统计时常

10、为曲线的标志,可以在一个图里添加多个query ,这样每个名字对应不同的颜色

最后点击保存按钮,在最上方有个图标,保存后选择有4个方块里的刚才定义的general的名字

最后效果图:

##这里多提点:通过这样的定义,可以收集业务上一些常规的数据,可以在线的时时统计,比如在游戏里的DAU\PCU\ACU....网站的PV 等等都可以数据收集可视化展示。。。。。完毕
   这个PYTHON脚本可以优化,INFLUXDB可以批量插入数据,可靠消息次是2-3W写入是没问题的。

PYTHON脚本启动 python mysql_qps.py & 不加后台符会一直卡着,

时间: 2024-11-19 23:59:08

influxdb+grafana业务数据可视化的相关文章

性能测试五十:Jmeter+Influxdb+Grafana实时数据展示系统搭建

上Grafana官网下载Grafana,此产品只有64位的版本,没有32位的 Influxdb:InfluxDB是一个开源的时序数据库,使用GO语言开发,特别适合用于处理和分析资源监控数据这种时序相关数据.而InfluxDB自带的各种特殊函数如求标准差,随机取样数据,统计数据变化比等,使数据统计和实时分析变得十分方便.上官网下载 因为jmeter要往infuxdb里面写数据,所以最好把这两个放在一台机器上,grafana只做展示infuxdb里面的数据,可以另外部署 jmeter实时数据展示系统

PoPo数据可视化周刊第一期

PoPo数据可视化 聚焦于Web数据可视化领域, 发现前端可视化领域有意思的内容. 涵盖前端可视化领域最新资讯, 开源可视化库的发布更新消息, 可视化案例分析与讲解, 可视化技术文章, 可视化大神的日常, 可视化八卦等等...不想错过前端可视化领域的精彩内容, 就快快关注我们吧 :) 行业  DataHunte获Ventech China千万级A轮融资,致力于数据可视化分析 8月31日消息,近日,业务数据协作平台DataHunter宣布完成千万级人民币A轮融资,由Ventech China独家投

基于InfluxDB+Grafana打造大数据监控利器--转

这是一个大数据爆发的时代.面对信息的激流.多元化数据的涌现,我们在获取.存储.传输.理解.分析.应用.维护大数据时,无疑需要一种便捷的信息交流通道,以便快速.有效.准确地理解和驾驭这个过程.本文将通过时序数据库(InfluxDB)+Grafana的实践,来介绍如何将数据便捷地展现出来. 一.InfluxDB 开源的分布式时序.时间和指标数据库,使用Go语言编写,无需外部依赖.其中,时间序列数据库是数据格式里包含Timestamp字段的数据,比如某一时间用户上网流量.通话详单等.但是,有什么数据不

案例分享|数据可视化下的驱动业务增长

在我国,制造业有两种态势:一种是生产同质化产品,产品价格公开,利润几乎透明:一种是高新技术产品,利润大,但创新和管理成本高.如何在同质化的产品中做好精细化和管理和成本控制,如何驱动创新成为制造业重出产能过剩的包围圈的两大突破口. 泰尔重工股份有限公司(以下简称"泰尔重工"."公司")成立于2001年,主要从事工业万向轴.汽车零部件等产品的设计.研发.制造.销售与服务.泰尔重工是国家级技术创新示范企业,笔者发文时市值已超34亿.在信息化方面,2016年下半年,泰尔重工

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

目录 一.Heapster 介绍 二.部署 三.使用 heapster已经deprecated了:https://github.com/kubernetes/heapster 一.Heapster 介绍 Heapster 是容器集群监控和性能分析工具,天然的支持 Kubernetes 和 CoreOS. Kubernetes 有个出名的监控 agent-cAdvisor.在每个 kubernetes Node 上都会运行 cAdvisor,它会收集本机以及容器的监控数据 (cpu,memory,

【Docker】性能测试监控平台搭建:InfluxDB+Grafana+Jmeter+cAdvisor

https://www.cnblogs.com/Detector/p/10104254.html 前言 在做性能测试时,如果有一个性能测试结果实时展示的页面,可以极大的提高我们对系统性能表现的掌握程度,进而提高我们的测试效率.但是我们每次打开Jmeter都会有几个硕大的字提示别用GUI模式进行负载测试,而且它自带的监视器效果实在一般:在Windows下渲染效果不好,在linux环境(非GUI环境)下更是无法使用,这一点我在如何选择性能测试工具中有过简单的描述. 所以,在做性能测试时,为Jmete

docker:十分钟构建容器监控系统cAdvisor+InfluxDB+Grafana

1.概念 cAdvisor:用于数据采集InfluxDB:用于数据存储Grafana:用于数据展示 1.1 cAdvisor 它是Google用来监测单节点的资源信息的监控工具.Cadvisor提供了一目了然的单节点多容器的资源监控功能.Google的Kubernetes中也缺省地将其作为单节点的资源监控工具,各个节点缺省会被安装上Cadvisor.总结起来主要两点: 展示 Host 和容器两个层次的监控数据. 展示历史变化数据. ?由于 cAdvisor 提供的操作界面略显简陋,而且需要在不同

30天搞定大数据爬虫项目,数据爬虫、全文检索、数据可视化、爬虫项目监控

好,开始今天的文章. 今天主要是来说一下怎么可视化来监控你的爬虫的状态. 相信大家在跑爬虫的过程中,也会好奇自己养的爬虫一分钟可以爬多少页面,多大的数据量,当然查询的方式多种多样.今天我来讲一种可视化的方法. 关于爬虫数据在mongodb里的版本我写了一个可以热更新配置的版本,即添加了新的爬虫配置以后,不用重启程序,即可获取刚刚添加的爬虫的状态数据. 1.成品图 这个是监控服务器网速的最后成果,显示的是下载与上传的网速,单位为M.爬虫的原理都是一样的,只不过将数据存到InfluxDB的方式不一样

K8S集群监控—cAdvisor+Heapster+InfluxDB+Grafana

容器的监控方案有多种,如单台docker主机的监控,可以使用docker stats或者cAdvisor web页面进行监控.但针对于Kubernetes这种容器编排工具而言docker单主机的监控已经不足以满足需求,在Kubernetes的生态圈中也诞生了一个个监控方案,如常用的dashboard,部署cAdvisor+Heapster+InfluxDB+Grafana监控方案,部署Prometheus和Grafana监控方案等.在这里主要讲述一下cAdvisor+Heapster监控方案.