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'