python统计mysql数据量变化并调用接口告警的示例代码
作者:数据库干货铺 发布时间:2024-01-22 22:15:13
标签:python,统计,MySQL,数据变化,接口
统计每天的数据量变化,数据量变动超过一定范围时,进行告警。告警通过把对应的参数传递至相应接口。
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()
来源:https://www.cnblogs.com/gjc592/p/13673429.html
0
投稿
猜你喜欢
- 本文主要介绍了pandas针对excel处理的实现,分享给大家,具体如下:读取文件import padasdf = pd.read_csv(
- 序 言哈喽兄弟们,好久不见!最近实在太忙了,所以又双叒叕断更了~表弟大学快毕业了,学了一个学期Python居然还不会写学生管理系统,真的给我
- Function Comma(str)If Not(IsNumeric(str)) Or 
- 一、VSCode 创建Django 工程VSCode 官方: https://code.visualstudio.com1 mysite(项
- 本文实例讲述了python通过索引遍历列表的方法。分享给大家供大家参考。具体如下:python中我们可以通过for循环来遍历列表:colou
- 数据修改主要以增删改差为主,这里比较几种写法在数据处理时间上的巨大差别。数据量大概是500万行级别的数据,文件大小为100M。1.iloci
- pandas.DataFrame行名(index)和列名(columns)的修改方法如下。rename()任意的行名(index)和列名(c
- 一、责任链模式责任链模式,将多个处理方法连接成一条链条,请求将在这条链条上流动直到该链条中有一个节点可以处理该请求。通常这条链条是一个对象包
- 下面是BeforeInitialBind事件过程:<SCRIPT language=vbscript event=
- 前言本文主要给大家介绍了关于Django自定义过滤器的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍:过滤器与函数d
- 从业这几年,自己写过的和帮人参谋的所谓“设计规范”不少了,这个东西大概在中国的决策层眼里是这么回事儿 - 一帮农民在一块田里种粮食,起先天气
- 该平台会集成UI自动化及api自动化,里面也会涉及到一些简单的HTML等前端,当然都是很基础的东西。在以后的博客里,我会一点点的尽量写详细,
- 1、简单的代码from matplotlib import pyplot as pltimport seaborn as snsimport
- 作为一个信号库,使用时候是支持一对一以及一对多的订阅模式,可以实现发送数据等,一般情况下,只要能够使用到Blinker的,一般都是应用在技术
- 这篇文章主要介绍了Python三元运算与lambda表达式实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价
- 一、需求说明:数据库的备份,对于生产环境来说尤为重要,数据库的备份分为物理备份和逻辑备份。物理备份:使用相关的复制命令直接将数据库的数据目录
- 比如,若要将某个String对象s从gbk内码转换为UTF-8,可以如下操作 s.decode('gbk').encode(
- python窃取摄像头照片源码+获取授权码方法+py打包成exe教你用python做一个属于自己的窃取摄像头照片的软件。需要安装python
- 近又开始做网页,发现之前写的页面不规范,这次从头在来,希望一次比一次进步,先从CSS中的标点符号开始吧,这篇做为草稿已经放了很长时间了,还是
- 如下所示:# coding: utf-8import paramikoimport MySQLdbdef main(): connectio