使用python调用pinpoint接口实现钉钉报警。
1、当pinpoint上监控的应用出现错误的调用,且错误次数>5(可以自己设置阈值大小,默认是5)时,即可报警。
2、只需更改脚本中的webhook和PPURL,并放入计划任务,比如每三分钟执行一次。
3、脚本运行时,会检查最近五分钟内应用的错误调用数,超过阈值就会报警。
4、环境:python3.6(也可支持python2)
#!/usr/local/bin/python
#Author:zzx
#功能:调用pinpoint接口,监控每个应用的调用错误数,并将告警信息发送到钉钉。
import sys
import os
import requests
import time
import datetime
import json
from dingtalkchatbot.chatbot import DingtalkChatbot #pip install dingtalkchatbot
webhook = "你的钉钉webhook"
PPURL = "http://your_pinpoint_ip:port"
'''获取最近五分钟内的时间戳'''
From_Time = datetime.datetime.now() + datetime.timedelta(seconds=-300)
To_Time = datetime.datetime.now()
From_TimeStamp = int(time.mktime(From_Time.timetuple()))*1000
To_TimeStamp = int(time.mktime(datetime.datetime.now().timetuple()))*1000
"""获取pinpoint中所有服务的基础信息,包括服务名,服务类型等"""
def get_applications():
'''return application dict
'''
applicationListUrl = PPURL + "/applications.pinpoint"
res = requests.get(applicationListUrl)
if res.status_code != 200:
print("请求异常,请检查")
return
return res.json()
#print(res.json()[0])
'''传入服务名,返回该服务的节点数和各节点的节点名'''
def getAgentLis