-
Notifications
You must be signed in to change notification settings - Fork 0
/
Auto_filterring.py
59 lines (48 loc) · 1.8 KB
/
Auto_filterring.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
from flask import Flask, request, jsonify
import slackweb
from monitoring_weight import weight_calculation
app = Flask(__name__)
# Example usage:
result = weight_calculation()
print(result)
# Slackに通知する関数
def notification(message):
slack = slackweb.Slack("https://hooks.slack.com/services/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")
slack.notify(text=str(message))
# アラートメッセージをフォーマットする関数
def format_alert_message(alert):
status = alert.get('status')
labels = alert.get('labels', {})
annotations = alert.get('annotations', {})
startsAt = alert.get('startsAt')
endsAt = alert.get('endsAt')
generatorURL = alert.get('generatorURL')
alert_message = (
f"Status: {status}\n"
f"Alert Name: {labels.get('alertname')}\n"
f"Instance: {labels.get('instance')}\n"
f"Severity: {labels.get('severity')}\n"
f"Starts At: {startsAt}\n"
f"Ends At: {endsAt}\n"
f"Generator URL: {generatorURL}\n"
f"Labels: {labels}\n"
f"Annotations: {annotations}\n"
)
return alert_message
# /alert ルートのPOSTリクエストを処理する
@app.route('/alert', methods=['POST'])
def alert():
data = request.json
alerts = data.get('alerts', [])
for alert in alerts:
instance = alert.get('labels', {}).get('instance', '')
# Example usage:
result = weight_calculation()
print(result)
if instance in "outside-nfs3:9100":
# instanceが重要なインスタンスに含まれている場合に通知を行う
formatted_alert = format_alert_message(alert)
notification(formatted_alert)
return jsonify({"status": "success"}), 200
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)