diff --git a/ircbot/plugin/webserver.py b/ircbot/plugin/webserver.py index 215878c..54a37e8 100644 --- a/ircbot/plugin/webserver.py +++ b/ircbot/plugin/webserver.py @@ -12,6 +12,7 @@ from flask import Flask from flask import render_template +from flask import request if TYPE_CHECKING: from ircbot.ircbot import Listener @@ -52,6 +53,25 @@ def route_macros(): ) +@app.route('/hook/prometheus', methods=['POST']) +def route_prometheus(): + body_json = request.get_json() + for alert in body_json['alerts']: + if alert['status'] == 'resolved': + status = '\x02\x0303OK\x0F' + else: + status = '\x02\x0304FIRING\x0F' + + alert = '{status} \x02{alertname}\x0F: {summary}'.format( + status=status, + alertname=alert['labels']['alertname'], + summary=alert['annotations']['summary'], + ) + app.bot.say('#rebuild-spam', alert) + + return ('', 204) + + def start_server(bot): port = os.getenv('HTTP_PORT', 8888) app.bot = bot