lygyh9985825 发表于 2018-1-6 11:46:02

prometheus报警消息钉钉通知

# -*- coding: utf-8 -*-  from flask import Flask
  from flask import request
  import json
  import requests
  app = Flask(__name__)
  def transform(text):
  textMap = json.loads(text)
  nodePorturl = 'http://XXX:30027/'
  externalURL = textMap['externalURL']
  print(externalURL)
  links =[]
  for alert in textMap['alerts']:
  print('-------------')
  time = alert['startsAt'] + ' -- ' + alert['endsAt']
  generatorURL = alert['generatorURL'];
  generatorURL = nodePorturl+generatorURL
  summary = alert['annotations']['summary']
  description = alert['annotations']['description']
  status = alert['status']
  title = alert['labels']['alertname']
  link = {}

  link['title'] =>  link['text'] = status + ': ' + description
  link['messageUrl'] = generatorURL
  link['picUrl'] = ''
  links.append(link)
  return links
  @app.route('/',methods=['POST'])
  def send():
  if request.method == 'POST':
  post_data = request.get_data()
  alert_data(post_data)
  return "hello"
  def alert_data(data):
  url = 'https://oapi.dingtalk.com/robot/send?access_token=‘XXX'
  headers = {'Content-Type': 'application/json'}
  for link in transform(data):
  send_data = {"msgtype": "link", "link": link}
  print(send_data)
  r = requests.post(url, data=json.dumps(send_data), headers=headers)
  if __name__ == '__main__':
  app.run(host='0.0.0.0', port=80)
页: [1]
查看完整版本: prometheus报警消息钉钉通知