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中的变量和赋值运算符
Oct 12 Python
python爬虫 模拟登录人人网过程解析
Jul 31 Python
Django 源码WSGI剖析过程详解
Aug 05 Python
python实现的按要求生成手机号功能示例
Oct 08 Python
Python读取JSON数据操作实例解析
May 18 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
Keras 快速解决OOM超内存的问题
Jun 11 Python
Python实现Keras搭建神经网络训练分类模型教程
Jun 12 Python
在keras里实现自定义上采样层
Jun 28 Python
python中的django是做什么的
Jul 31 Python
python如何发送带有附件、正文为HTML的邮件
Feb 27 Python
Python中使用Lambda函数的5种用法
Apr 01 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
在PHP中实现Javascript的escape()函数代码
2010/08/08 PHP
php实现的Captcha验证码类实例
2014/09/22 PHP
php实现插入排序
2015/03/29 PHP
PHP实现微信退款的方法示例
2019/03/26 PHP
PHP7匿名类的用法示例
2019/04/05 PHP
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
2011/03/28 Javascript
Ext JS 4实现带week(星期)的日期选择控件(实战一)
2013/08/21 Javascript
用javascript为页面添加天气显示实现思路及代码
2013/12/02 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
使用js复制链接中的部分文字的方法
2015/07/30 Javascript
Node.js操作Firebird数据库教程
2016/03/04 Javascript
Bootstrap每天必学之弹出框(Popover)插件
2016/04/25 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
详解vue 2.6 中 slot 的新用法
2019/07/09 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
解决vue-cli输入命令vue ui没效果的问题
2020/11/17 Javascript
js实现Element中input组件的部分功能并封装成组件(实例代码)
2021/03/02 Javascript
[00:12]DAC2018 no[o]ne亮相SOLO赛 他是否如他的id一样无人可挡?
2018/04/06 DOTA
使用Python向DataFrame中指定位置添加一列或多列的方法
2019/01/29 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
CSS3实现可关闭的下拉手风琴菜单效果
2015/08/31 HTML / CSS
HTML5 Geolocation API的正确使用方法
2018/12/04 HTML / CSS
英国家电直销:Appliances Direct
2016/09/22 全球购物
全球知名的珠宝首饰品牌:Kay Jewelers
2018/02/11 全球购物
大学生学习党课思想汇报
2014/01/03 职场文书
满月酒答谢词
2014/01/14 职场文书
简单的辞职信范文
2014/01/18 职场文书
离职证明标准格式
2014/09/15 职场文书
论文答辩开场白大全
2015/05/27 职场文书
只需要这一行代码就能让python计算速度提高十倍
2021/05/24 Python
MySQL中出现乱码问题的终极解决宝典
2021/05/26 MySQL
redis实现的四种常见限流策略
2021/06/18 Redis
css 边框添加四个角的实现代码
2021/10/16 HTML / CSS
详解Mysql事务并发(脏读、不可重复读、幻读)
2022/04/29 MySQL
mysql全面解析json/数组
2022/07/07 MySQL