Skip to content

Commit 6dca004

Browse files
Refactor alert rules and alertmanager configuration
1 parent f3b7b55 commit 6dca004

4 files changed

Lines changed: 17 additions & 19 deletions

File tree

prometheus_config/alert_rules.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ groups:
2525
annotations:
2626
description: Battery percentage is below 20%.
2727
summary: Instance {{ $labels.instance }} low battery. Current battery percentage is {{ $value }}%. Charge the device.
28-
expr: avg by (instance) (battery_percentage) < 80
28+
expr: avg by (instance) (battery_percentage) < 40
2929
for: 2m
3030
labels:
3131
severity: warning

prometheus_config/alertmanager.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ route:
1212
- receiver: 'systemguard-webhook'
1313

1414
receivers:
15-
15+
1616
- name: 'systemguard-webhook'
1717
webhook_configs:
1818
- send_resolved: true

src/scripts/initialization/init_alertmanager.sh

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -16,32 +16,17 @@ route:
1616
group_wait: 30s
1717
group_interval: 5m
1818
repeat_interval: 3h
19-
receiver: 'slack-notifications' # Default receiver
19+
receiver: 'systemguard-webhook'
2020
2121
routes:
22-
- receiver: 'slack-notifications'
23-
continue: true # This allows the alert to also be sent to the next receiver
2422
- receiver: 'systemguard-webhook'
2523
2624
receivers:
27-
- name: 'slack-notifications'
28-
slack_configs:
29-
- send_resolved: true
30-
api_url: '$SLACK_WEBHOOK_URL'
31-
channel: '#general'
32-
username: 'Alertmanager'
33-
icon_emoji: ':warning:'
34-
text: |
35-
*Alert:* {{ .CommonLabels.alertname }}
36-
*Instance:* {{ .CommonLabels.instance }}
37-
*Severity:* {{ .CommonLabels.severity }}
38-
*Description:* {{ .CommonAnnotations.description }}
39-
*Summary:* {{ .CommonAnnotations.summary }}
4025
4126
- name: 'systemguard-webhook'
4227
webhook_configs:
4328
- send_resolved: true
44-
url: 'http://$IP_ADDRESS:5001/alerts'
29+
url: 'http://$IP_ADDRESS:5050/alerts'
4530
max_alerts: 0 # Send all alerts in one webhook request
4631
4732
EOL

src/scripts/start_prometheus.sh

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,10 +22,14 @@ NETWORK_NAME="flask-prometheus-net"
2222
CONTAINER_NAME="prometheus"
2323
PROMETHEUS_IMAGE="prom/prometheus:v2.55.0-rc.0"
2424
PROMETHEUS_PORT="9090"
25+
# SCRIPT_DIR and PWD are different
26+
SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)
2527
PROMETHEUS_CONFIG_DIR="$(pwd)/prometheus_config"
2628
ALERT_RULES_FILE="$PROMETHEUS_CONFIG_DIR/alert_rules.yml"
2729
PROMETHEUS_CONFIG_FILE="$PROMETHEUS_CONFIG_DIR/prometheus.yml"
2830
PROMETHEUS_DATA_DIR="/home/$USER_NAME/.database/prometheus"
31+
INIT_ALERT_MANAGER_SCRIPT="$SCRIPT_DIR/initialization/init_alertmanager.sh"
32+
ALERT_MANAGER_SCRIPT="$SCRIPT_DIR/start_alertmanager.sh"
2933
FLASK_APP_IP=$(hostname -I | cut -d' ' -f1)
3034
FLASK_APP_PORT="5050"
3135
SCRAPING_INTERVAL="10s"
@@ -35,6 +39,14 @@ job_name="localhost"
3539
prometheus_username="prometheus_admin"
3640
prometheus_password="prometheus_password"
3741

42+
# call INIT_ALERT_MANAGER_SCRIPT
43+
echo "Initializing Alert Manager $INIT_ALERT_MANAGER_SCRIPT"
44+
bash $INIT_ALERT_MANAGER_SCRIPT
45+
46+
# starting alert manager container
47+
echo "Starting Alert Manager $ALERT_MANAGER_SCRIPT"
48+
bash $ALERT_MANAGER_SCRIPT
49+
3850
# Logging function for better readability
3951
log() {
4052
echo "[INFO] $1"
@@ -112,6 +124,7 @@ run_output=$(docker run -d \
112124
-v "$PROMETHEUS_DATA_DIR:/prometheus" \
113125
"$PROMETHEUS_IMAGE" 2>&1)
114126

127+
115128
# Check if Prometheus started successfully
116129
if [ $? -eq 0 ]; then
117130
log "Prometheus container $CONTAINER_NAME started successfully on port $PROMETHEUS_PORT."

0 commit comments

Comments
 (0)