广告
返回顶部
首页 > 资讯 > 数据库 >influxdb+grafana可视化
  • 210
分享到

influxdb+grafana可视化

2024-04-02 19:04:59 210人浏览 安东尼
摘要

了解数据库的TPS、QPS是作为一个运维DBA是非常必要的,那什么是TPS、QPS呢,简单的理解是:QPS:每秒查询数,即对数据库每秒的DML的操作数TPS:每秒事物处理,即对数据库每秒DDL操作数通过了解

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

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

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

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

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

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

Let's Go.....3个包的下载

Http://down.51cto.com/data/2287378

http://down.51cto.com/data/2287380

http://down.51cto.com/data/2287379

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

2、ON/OF服务

  service influxdb start/stop

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

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

influxdb+grafana可视化

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

  [root@mycat ~]# 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会用到这个名字

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

[root@mycat ~]# 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、配置数据源信息

influxdb+grafana可视化

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

influxdb+grafana可视化

    4、选择metrics配置如下:

influxdb+grafana可视化

解释: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的名字


最后效果图:

influxdb+grafana可视化

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

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

您可能感兴趣的文档:

--结束END--

本文标题: influxdb+grafana可视化

本文链接: https://www.lsjlt.com/news/40221.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • influxdb+grafana可视化
    了解数据库的TPS、QPS是作为一个运维DBA是非常必要的,那什么是TPS、QPS呢,简单的理解是:QPS:每秒查询数,即对数据库每秒的DML的操作数TPS:每秒事物处理,即对数据库每秒DDL操作数通过了解...
    99+
    2022-10-18
  • docker环境如何搭建JMeter+Grafana+influxdb可视化性能监控平台
    这篇文章主要介绍“docker环境如何搭建JMeter+Grafana+influxdb可视化性能监控平台”,在日常操作中,相信很多人在docker环境如何搭建JMeter+Grafana+influxdb可视化性能监控平台问题上存在疑惑,...
    99+
    2023-06-20
  • docker环境搭建JMeter+Grafana+influxdb可视化性能监控平台的教程
    目录1、安装docker2、安装及配置influxDB3、Grafana安装及配置4、Jmeter配置及压测一个接口背景: 在用jmeter压测接口的时候发现其原生的监控起来不是很...
    99+
    2022-11-12
  • Prometheus+Grafana可视化监控【主机状态】
    文章目录 一、介绍二、安装Prometheus三、安装Grafana四、Pronetheus和Grafana相关联五、监控服务器状态六、常见问题 一、介绍 Prometheus是一个开...
    99+
    2023-09-12
    prometheus grafana
  • ELK与Grafana联合打造可视化监控来分析nginx日志
    目录修改nginx打印日志格式安装logstash后,修改配置文件配置解析:input段:filter段:output段:安装GeoIP:安装Grafana配置Grafana数据源配...
    99+
    2022-11-13
  • KITTI数据集可视化(一):点云多种视图的可视化实现
    如有错误,恳请指出。 在本地上,可以安装一些软件,比如:Meshlab,CloudCompare等3D查看工具来对点云进行可视化。而这篇博客是将介绍一些代码工具将KITTI数据集进行可视化操作,包...
    99+
    2023-09-17
    自动驾驶 python 人工智能 点云可视化 KITTI数据集
  • Python 数据可视化
    Python 数据可视化 Python提供了多个用于数据可视化的工具和库。其中最常用的包括: 1. Matplotlib:Matplotlib 是一个用于绘制二维图形的 Python 库。它提供了广泛的绘图选项,可以帮助您创建线图、散点图...
    99+
    2023-09-17
    python 数据分析 matplotlib
  • python数据可视化
    1、安装matplotlib 在 cmd 中键入 python -m pip install matplotlib,系统将自动安装,需要等一段时间,待完成后 python -m pip list ,显示 敲黑板划重点:一定通过 cdm ...
    99+
    2023-01-30
    数据 python
  • plt 数据可视化
    1、plt.plot(x,y,color) 折线坐标图 import matplotlib.pyplot as plt h = np.linspace(1, 10, 10) v = np.linspace(20,3...
    99+
    2023-01-30
    数据 plt
  • 数据可视化 - Marvin
                       链接:https://bdcc.bigdataedu.org/block/50(需账号登录)...
    99+
    2018-03-03
    数据可视化 - Marvin
  • python地图可视化
    安装 自从 v0.3.2 开始,为了缩减项目本身的体积以及维持 pyecharts 项目的轻量化运行,pyecharts 将不再自带地图 js 文件。如用户需要用到地图图表,可自行安装对应的地图文件包。下面介绍如何安装。 全球国家...
    99+
    2023-01-31
    地图 python
  • xmanager怎么可视化
    这篇文章主要介绍“xmanager怎么可视化”,在日常操作中,相信很多人在xmanager怎么可视化问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”xmanager怎么可视化”...
    99+
    2022-12-01
    xmanager
  • javascript Echart可视化学习
    官网找到类似实例, 适当分析,并且引入到HTML页面中 代码整理 去掉标题 去掉工具箱 去掉一个图 查看效果 Index.html中的组件 在index.js中立即执行函...
    99+
    2022-11-12
  • 数据可视化之 tick_params(
    参考:https://blog.csdn.net/helunqu2017/article/details/78736554/ 初学数据可视化,遇到了tick_params() 里面传参数问题,找了一些资料,觉得这个简单明了,非常好用,推荐...
    99+
    2023-01-30
    数据 tick_params
  • MongoDB可视化工具mongochef
    一款强大的 MongoDB 可视化管理工具mongochef,下载地址:https://studio3t.com 附上一个截图: ...
    99+
    2022-10-18
  • Python可视化tkinter详解
    目录1、基本用法2、常用标签1、基本用法 # coding:utf-8 import tkinter as tk # 创建窗口对象 window = tk.Tk() # 设置串口标题...
    99+
    2022-11-11
  • 数据可视化之pyecharts
    pyechats是一个用于数据可视化的包。 Echats是百度开源的一个数据可视化js库,主要用于数据可视化,pyecharts 是一个用于生成Echarts图标的类库,实际上就是Echarts和Python的对接。 pyecharts...
    99+
    2023-01-30
    数据 pyecharts
  • 推荐四款可视化工具(解决99%的可视化大屏需求)
    小编最经常的工作是将一些项目的数据从数据库导出,然后分门别类的列到excel表格中,领导看起来眼花缭乱。 小编想,要是能以图表可视化展现出来,领导就可以看到项目近几个月的走势,也知...
    99+
    2022-11-12
  • Python可视化动图分享
    这篇文章主要讲解了“Python可视化动图分享”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python可视化动图分享”吧!1. 柱状图带颜色渐变的柱状图,精美好看:2. 折线图带有标注点,...
    99+
    2023-06-16
  • JavaScript ECharts可视化图表库
    ECharts是一款基于JavaScript的数据可视化图表库,提供直观,生动,可交互,可个性化定制的数据可视化图表。ECharts最初由百度团队开源,并于2018年初捐赠给Apac...
    99+
    2023-01-18
    JS ECharts JS ECharts可视化图表
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作