直接上脚本
#!/usr/bin/env python
#coding=utf-8
from aliyunsdkcore.client import AcsClient
from aliyunsdkcore.acs_exception.exceptions import ClientException
from aliyunsdkcore.acs_exception.exceptions import ServerException
from aliyunsdkcore.auth.credentials import AccessKeyCredential
from aliyunsdkcore.auth.credentials import StsTokenCredential
from aliyunsdkrds.request.v20140815.DescribeSlowLogRecordsRequest import DescribeSlowLogRecordsRequest
import json
import copy
import requests
import datetime
import threadpool
import difflib
import pymysql
#全局计数器 用于钉钉机器人切换
ding_count = 0
#获取慢sql函数
def get_slowsql_dict(resourceid,start_time,end_time):
credentials = AccessKeyCredential('your_ak', 'you_secret')
# use STS Token
# credentials = StsTokenCredential('<your-access-key-id>', '<your-access-key-secret>', '<your-sts-token>')
client = AcsClient(region_id='cn-hangzhou', credential=credentials)
request = DescribeSlowLogRecordsRequest()
request.set_accept_format('json')
request.set_DBInstanceId(resourceid)
request.set_StartTime(start_time)
request.set_EndTime(end_time)
response = client.do_action_with_exception(request)
result = json.loads(str(response, encoding = 'utf-8'))
# python2: print(response)
return result
def get_equal_rate(str1,str2):
"""比较两个字符串的相似度 ,返回1为一样"""
return difflib.SequenceMatcher(None, str1, str2).quick_ratio()
#钉钉发送信息函数
def ding_send(s_format,phone,ding_token):
ding_token = ding_token
ding_url = "https://oapi.dingtalk.com/robot/send?access_token={}"
url = ding_url.format(ding_token)
MARKDOWN = {
"msgtype": "markdown",
"markdown": {
"title": "", "text": ""},
"at": {
"atMobiles":[]}
}
title = "慢SQL报警通知"
content = """<font color='#FF4040' font-size=14 face='黑体'