python统计mysql数据量变化并调用接口告警的示例代码


Posted in Python onSeptember 21, 2020

统计每天的数据量变化,数据量变动超过一定范围时,进行告警。告警通过把对应的参数传递至相应接口。

python程序如下

#!/usr/bin/python
# coding=utf-8
import pymysql as mdb
import os
import sys
import requests
import json


tar_conn = mdb.connect(host='192.168.56.128',port=3306,user='xxx',passwd='xxx123',db='bak_db')
tar_cur = tar_conn.cursor()

v_sql_dt =" SELECT DATE_FORMAT(CURRENT_DATE(),'%Y-%m-%d')t1 ,DATE_FORMAT(SUBDATE(CURRENT_DATE(),INTERVAL 1 DAY),'%Y-%m-%d')t2,DATE_FORMAT(SUBDATE(CURRENT_DATE(),INTERVAL 1 WEEK),'%Y-%m-%d')t3,DATE_FORMAT(SUBDATE(CURRENT_DATE(),INTERVAL 1 MONTH),'%Y-%m-%d %H:%i:00')t4"
v_extract_rows=tar_cur.execute(v_sql_dt)
v_res=tar_cur.fetchone()
v_dt1=v_res[0]
v_dt2=v_res[1]
v_dt3=v_res[2]
v_dt4=v_res[3]

print v_dt1,v_dt2,v_dt3,v_dt4
#v_start_time='2020-09-10'
#v_end_time='2020-09-11'
def get_cnt(v_dt):

 v_sql1="select tb_rows from bak_db.tb_size where dt='%s';"%(v_dt)

 v_extract_rows=tar_cur.execute(v_sql1)
 v_res=tar_cur.fetchone()
 v_cnt1=v_res[0]

 return(v_cnt1)

(v_cnt_now)=get_cnt(v_dt1)
(v_cnt_1d)=get_cnt(v_dt2)
(v_cnt_1w)=get_cnt(v_dt3)
(v_cnt_1m)=get_cnt(v_dt4)

def f_notify(v_cnt_now,v_cnt_before,v_message):
 v_rate1=abs(((v_cnt_before-v_cnt_now)*1.00/v_cnt_before*1.00)*100)

# print v_rate1,v_rate2
 if (v_rate1>100 ) and (v_cnt_now>500 or v_cnt_before>500) :
  v_level=1
  v_list=[v_message,',','当前量:',str(v_cnt_now),',','前期量:',str(v_cnt_before)]
  v_message1=''.join(v_list)
  print v_message1
  url = 'http://192.168.56.128:9000/api/v1/alarm'        # 接口地址
  body ={"level": v_level, "group": ["dba"], "msg": {"content": v_message1}} 
  headers = {'content-type': "application/json"}        # 如有认证信息,添加认证信息即可,例如'Authorization': 'APP appid = xxx,token = xxxxxxxxxxxxxxxx'
  response = requests.post(url, data = json.dumps(body), headers = headers) # body是json格式的,用 json.dumps(body)方式进行处理
  print response.text
  print response.status_code
   

f_notify(v_cnt_now,v_cnt_1d,'数据量与前一天相比波动超过100%')
f_notify(v_cnt_now,v_cnt_1w,'数据量与前一周相比波动超过100%')
f_notify(v_cnt_now,v_cnt_1m,'数据量与前一月相比波动超过100%')



tar_conn.close()

以上就是python统计mysql数据量变化并调用接口告警的示例代码的详细内容,更多关于python统计mysql数据量变化的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
分享一个简单的python读写文件脚本
Nov 25 Python
使用C++扩展Python的功能详解
Jan 12 Python
PyQt5主窗口动态加载Widget实例代码
Feb 07 Python
利用Django模版生成树状结构实例代码
May 19 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
Aug 08 Python
pyinstaller打包opencv和numpy程序运行错误解决
Aug 16 Python
python3 requests库实现多图片爬取教程
Dec 18 Python
python matplotlib中的subplot函数使用详解
Jan 19 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
Python如何使用PIL Image制作GIF图片
May 16 Python
python使用matplotlib绘制折线图的示例代码
Sep 22 Python
python3实现常见的排序算法(示例代码)
Jul 04 Python
python3.8动态人脸识别的实现示例
Sep 21 #Python
如何在Anaconda中打开python自带idle
Sep 21 #Python
Python 实现国产SM3加密算法的示例代码
Sep 21 #Python
python如何实现DES加密
Sep 21 #Python
如何从csv文件构建Tensorflow的数据集
Sep 21 #Python
python打包多类型文件的操作方法
Sep 21 #Python
python 星号(*)的多种用途
Sep 21 #Python
You might like
探讨如何使用SimpleXML函数来加载和解析XML文档
2013/06/07 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
php绘制一个扇形的方法
2015/01/24 PHP
php连接oracle数据库的核心步骤
2016/05/26 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
php常用字符串长度函数strlen()与mb_strlen()用法实例分析
2019/06/25 PHP
php中array_fill函数的实例用法
2021/03/02 PHP
学习面向对象之面向对象的基本概念:对象和其他基本要素
2010/11/30 Javascript
一个简单的JS鼠标悬停特效具体方法
2013/06/17 Javascript
jquery与prototype框架的详细对比
2013/11/21 Javascript
常用的JavaScript验证正则表达式汇总
2013/11/26 Javascript
javascript实现简单的html5视频播放器
2015/05/06 Javascript
VUEJS实战之修复错误并且美化时间(2)
2016/06/13 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
js中变量的连续赋值(实例讲解)
2017/07/08 Javascript
(模仿京东用户注册)用JQuery实现简单表单验证,初学者必看
2018/01/08 jQuery
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
token 机制和实现方式
2020/12/15 Javascript
[54:53]2014 DOTA2国际邀请赛中国区预选赛 LGD-GAMING VS CIS 第二场
2014/05/23 DOTA
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
python实现颜色rgb和hex相互转换的函数
2015/03/19 Python
用Python实现斐波那契(Fibonacci)函数
2016/03/25 Python
python GUI实现小球满屏乱跑效果
2019/05/09 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
Python中过滤字符串列表的方法
2020/12/22 Python
详解使用HTML5 Canvas创建动态粒子网格动画
2016/12/14 HTML / CSS
介绍一下HTTP、HTTPS和SSL
2012/12/16 面试题
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
杠杆的科学教学反思
2014/01/10 职场文书
出国留学经济担保书
2014/04/01 职场文书
优秀家长事迹材料
2014/05/17 职场文书
党的群众路线对照检查材料
2014/08/27 职场文书
法人委托书范本格式
2014/09/15 职场文书
单位更名证明
2015/06/18 职场文书
教你使用Pandas直接核算Excel中快递费用
2021/05/12 Python