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实现批量重命名文件的代码
May 25 Python
详解Python中的各种函数的使用
May 24 Python
Python使用面向对象方式创建线程实现12306售票系统
Dec 24 Python
Python cv2 图像自适应灰度直方图均衡化处理方法
Dec 07 Python
python3 http提交json参数并获取返回值的方法
Dec 19 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
Python 实例方法、类方法、静态方法的区别与作用
Aug 14 Python
python requests更换代理适用于IP频率限制的方法
Aug 21 Python
浅谈pytorch卷积核大小的设置对全连接神经元的影响
Jan 10 Python
Django更新models数据库结构步骤
Apr 01 Python
Python高并发解决方案实现过程详解
Jul 31 Python
python实现录制全屏和选择区域录屏功能
Feb 05 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
ThinkPHP模板判断输出Empty标签用法详解
2014/06/30 PHP
ci检测是ajax还是页面post提交数据的方法
2014/11/10 PHP
jquery 读取页面load get post ajax 四种方式代码写法
2011/04/02 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
javascript验证身份证完全方法具体实现
2013/11/18 Javascript
在JS数组特定索引处指定位置插入元素
2014/07/27 Javascript
2014 年最热门的21款JavaScript框架推荐
2014/12/25 Javascript
JavaScript中的原型prototype属性使用详解
2015/06/05 Javascript
简介JavaScript中的unshift()方法的使用
2015/06/09 Javascript
jquery实现仿新浪微博评论滚动效果
2015/08/06 Javascript
数据结构中的各种排序方法小结(JS实现)
2016/07/23 Javascript
jQuery解决input元素的blur事件和其他非表单元素的click事件冲突问题
2016/08/15 Javascript
Vue2.5通过json文件读取数据的方法
2018/02/27 Javascript
jQuery length 和 size()区别总结
2018/04/26 jQuery
在vue项目中使用md5加密的方法
2018/09/14 Javascript
vue的过滤器filter实例详解
2018/09/17 Javascript
微信小程序常用赋值方法小结
2019/04/30 Javascript
pm2启动ssr失败的解决方法
2019/06/29 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
JS实现简易留言板增删功能
2020/02/08 Javascript
解决echarts vue数据更新,视图不更新问题(echarts嵌在vue弹框中)
2020/07/20 Javascript
js实现抽奖功能
2020/11/24 Javascript
Python实现给文件添加内容及得到文件信息的方法
2015/05/28 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
2017/09/11 Python
Python利用matplotlib绘制约数个数统计图示例
2019/11/26 Python
python实现俄罗斯方块小游戏
2020/04/24 Python
Python astype(np.float)函数使用方法解析
2020/06/08 Python
探索欧洲最好的品牌:Bombinate
2019/06/14 全球购物
前台文员岗位职责
2013/12/28 职场文书
校园安全标语
2014/06/07 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
未婚证明书模板
2014/10/08 职场文书
简易版租房协议书范本
2014/10/13 职场文书
大学生年度个人总结
2015/02/15 职场文书
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server
Vue 打包后相对路径的引用问题
2022/06/05 Vue.js