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操作sqlite3快速、安全插入数据(防注入)的实例
Apr 26 Python
在Python下利用OpenCV来旋转图像的教程
Apr 16 Python
使用Python来编写HTTP服务器的超级指南
Feb 18 Python
深入理解Python中range和xrange的区别
Nov 26 Python
Django 根据数据模型models创建数据表的实例
May 27 Python
python实现在图片上画特定大小角度矩形框
Oct 24 Python
在Python中使用defaultdict初始化字典以及应用方法
Oct 31 Python
解决Django删除migrations文件夹中的文件后出现的异常问题
Aug 31 Python
PyQt5 控件字体样式等设置的实现
May 13 Python
如何实现更换Jupyter Notebook内核Python版本
May 18 Python
python的json包位置及用法总结
Jun 21 Python
python运行脚本文件的三种方法实例
Jun 25 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
多数据表共用一个页的新闻发布
2006/10/09 PHP
php基于socket实现SMTP发送邮件的方法
2015/03/05 PHP
php文件上传后端处理小技巧
2016/05/22 PHP
php使用escapeshellarg时中文被过滤的解决方法
2016/07/10 PHP
jquery 的 $("#id").html() 无内容的解决方法
2010/06/07 Javascript
js模拟滚动条(横向竖向)
2013/02/22 Javascript
JS模式之单例模式基本用法
2015/06/30 Javascript
引用jquery框架后出错的解决方法
2016/08/09 Javascript
jQuery实现最简单的切换图效果【可兼容IE6、火狐、谷歌、opera等】
2016/09/04 Javascript
Vue.js每天必学之数据双向绑定
2016/09/05 Javascript
js 中获取制定的cook信息实现方法
2016/11/19 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
2017/04/19 Javascript
让div运动起来 js实现缓动效果
2017/07/06 Javascript
Vue实现typeahead组件功能(非常靠谱)
2017/08/26 Javascript
微信小程序实现列表下拉刷新上拉加载
2020/07/29 Javascript
vue单页开发父子组件传值思路详解
2018/05/18 Javascript
Javascript读写cookie的实例源码
2019/03/16 Javascript
vue-cli3中配置alias和打包加hash值操作
2020/09/04 Javascript
python threading模块操作多线程介绍
2015/04/08 Python
Python贪心算法实例小结
2018/04/22 Python
Python3实现的简单工资管理系统示例
2019/03/12 Python
使用python 写一个静态服务(实战)
2019/06/28 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
英国最大的老式糖果店:A Quarter Of
2017/04/08 全球购物
印度在线内衣和时尚目的地:Zivame
2017/09/28 全球购物
Can a struct inherit from another struct? (结构体能继承结构体吗)
2016/09/25 面试题
旅游管理实习自我鉴定
2013/09/29 职场文书
高中生毕业学习总结的自我评价
2013/11/14 职场文书
优秀研究生自我鉴定
2013/12/04 职场文书
心理咨询专业自荐信
2014/07/07 职场文书
银行职员工作失误检讨书
2014/10/14 职场文书
2014年节能降耗工作总结
2014/12/11 职场文书
2014年节能工作总结
2014/12/18 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python
html+css实现滚动到元素位置显示加载动画效果
2021/08/02 HTML / CSS
mysql的数据压缩性能对比详情
2021/11/07 MySQL