blob: 1a63371e8fa8fc6c354e1fac7a8ba715295e05cf (
plain)
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
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
|
NAMESPACE := "monitoring"
APP_NAME := "prometheus"
status:
@echo "=== Prometheus Pods ==="
@kubectl get pods -n {{NAMESPACE}} -l app.kubernetes.io/name=prometheus
@echo ""
@echo "=== Grafana Pods ==="
@kubectl get pods -n {{NAMESPACE}} -l app.kubernetes.io/name=grafana
@echo ""
@echo "=== Alertmanager Pods ==="
@kubectl get pods -n {{NAMESPACE}} -l app.kubernetes.io/name=alertmanager
@echo ""
@echo "=== Services ==="
@kubectl get svc -n {{NAMESPACE}} | grep prometheus
@echo ""
@echo "=== PVCs ==="
@kubectl get pvc -n {{NAMESPACE}} | grep -E '(prometheus|grafana)'
@echo ""
@echo "=== ArgoCD Status ==="
@kubectl get application {{APP_NAME}} -n cicd -o jsonpath='Sync: {.status.sync.status}, Health: {.status.health.status}' 2>/dev/null && echo ""
logs-prometheus lines="100":
kubectl logs -n {{NAMESPACE}} -l app.kubernetes.io/name=prometheus --tail={{lines}} -f
logs-grafana lines="100":
kubectl logs -n {{NAMESPACE}} -l app.kubernetes.io/name=grafana --tail={{lines}} -f
logs-alertmanager lines="100":
kubectl logs -n {{NAMESPACE}} -l app.kubernetes.io/name=alertmanager --tail={{lines}} -f
port-forward-prometheus port="9090":
@echo "🚀 Forwarding Prometheus to localhost:{{port}}"
@echo ""
@echo "Access URLs:"
@echo " Alerts: http://localhost:{{port}}/alerts"
@echo " Rules: http://localhost:{{port}}/rules"
@echo " Graph: http://localhost:{{port}}/graph"
@echo " Targets: http://localhost:{{port}}/targets"
@echo ""
@echo "Press Ctrl+C to stop"
@echo ""
kubectl port-forward -n {{NAMESPACE}} svc/prometheus-kube-prometheus-prometheus {{port}}:9090
port-forward-grafana port="3000":
@echo "🚀 Forwarding Grafana to localhost:{{port}}"
@echo ""
@echo "Access URL: http://localhost:{{port}}"
@echo ""
@echo "Press Ctrl+C to stop"
@echo ""
kubectl port-forward -n {{NAMESPACE}} svc/prometheus-grafana {{port}}:80
port-forward-alertmanager port="9093":
@echo "🚀 Forwarding Alertmanager to localhost:{{port}}"
@echo ""
@echo "Access URL: http://localhost:{{port}}"
@echo ""
@echo "Press Ctrl+C to stop"
@echo ""
kubectl port-forward -n {{NAMESPACE}} svc/prometheus-kube-prometheus-alertmanager {{port}}:9093
# Quick access to Prometheus alerts view
alerts: (port-forward-prometheus "9090")
# Quick access to Alertmanager
alertmanager: (port-forward-alertmanager "9093")
sync:
@echo "Triggering ArgoCD sync..."
@kubectl annotate application {{APP_NAME}} -n cicd argocd.argoproj.io/refresh=normal --overwrite
@sleep 2
@kubectl get application {{APP_NAME}} -n cicd -o jsonpath='Sync: {.status.sync.status}, Health: {.status.health.status}' && echo ""
argocd-status:
argocd app get {{APP_NAME}} --core
restart-prometheus:
@echo "Restarting Prometheus..."
kubectl rollout restart -n {{NAMESPACE}} statefulset/prometheus-prometheus-kube-prometheus-prometheus
restart-grafana:
@echo "Restarting Grafana..."
kubectl rollout restart -n {{NAMESPACE}} deployment/prometheus-grafana
restart-alertmanager:
@echo "Restarting Alertmanager..."
kubectl rollout restart -n {{NAMESPACE}} statefulset/alertmanager-prometheus-kube-prometheus-alertmanager
restart: restart-grafana
# Query firing alerts via NodePort (default node: r0)
firing-alerts node="r0":
@curl -s "http://{{node}}:30090/api/v1/alerts" | jq -r '.data.alerts[] | select(.state=="firing") | "\(.labels.alertname) [\(.labels.severity // "unknown")]: \(.annotations.summary // .annotations.description // "no description")"'
# Query all alerts (firing and pending) via NodePort
all-alerts node="r0":
@curl -s "http://{{node}}:30090/api/v1/alerts" | jq '.data.alerts'
# Count of firing alerts
firing-count node="r0":
@curl -s "http://{{node}}:30090/api/v1/alerts" | jq '[.data.alerts[] | select(.state=="firing")] | length'
|