Das Standardtool für Monitoring auf AWS ist Cloudwatch. Du hast dir in den AWS Kapiteln Cloudwatch sicherlich schon grundsätzlich angesehen. In diesem Kapitel wirst du es aber konkret kennenlernen. Du wirst Custom Metriken zu Cloudwatch pushen und Alarme erstellen.
Label
ist und warum man relabel_config
braucht.relabel_configs
und metric_relabel_configs
.Da auch adot
Prometheus Metriken einsammelt, ist es wichtig zu wissen wie das labeln und relabeln von Prometheus Metriken funktioniert.
Für diese Aufgabe kehren wir wieder zu deine notestar
Applikation, die du mit EKS auf AWS deployed hast, zurück. Wenn nicht anders angegeben, sind die zu erstellenden Ressourcen mit Terraform zu deployen.
Erstelle Cloudwatch Alarme für deine RDS Instanz. Folgende Metriken solltest du überwachen:
Achte darauf, nicht zu viel code für die Alarme zu duplizieren.
Aktiviere
storage autoscaling
Show archive.org snapshot
für deine RDS Instanz. Natürlich möchtest du trotzdem den Disk Space dafür überwachen. Schließlich wird nicht beliebig viel in kurzer Zeit skaliert. Dafür benötigst du eine Metrik, die dir anzeigt wie viel % vom Disk Space verwendet wird. Dafür kannst du Enhanced Monitoring
und metric filters
verwenden. Nachdem die Metrik existiert, erstellst du noch einen entsprechenden Alarm dafür.
Du möchtest k8s Metriken in deinem Cloudwatch haben. Dafür kannst du
adot
Show archive.org snapshot
verwenden. Von makandra gibt es das
adot
Show archive.org snapshot
terraform module. Dieses
example
Show archive.org snapshot
bietet eine gute Basis Konfiguration. Außerdem solltest du dir noch kube-state-metrics
installieren, damit auch weitere Prometheus Konfigurationen zur Verfügung stehen.
resource "helm_release" "kube-state-metrics" {
name = "kube-state-metrics"
repository = "https://prometheus-community.github.io/helm-charts"
chart = "kube-state-metrics"
namespace = "kube-system"
version = "4.22.3"
create_namespace = false
atomic = true
values = [
yamlencode({
metricAllowlist = [
"kube_deployment_status_replicas_available",
"kube_deployment_spec_replicas",
"kube_deployment_status_replicas_ready"
]
collectors = [
"deployments",
]
})
]
}
Sprich mit deinem Mentor über die adot
Konfiguration.
Erstelle einen Route53 Healthcheck, um zu überprüfen, ob deine Applikation noch erreichbar ist. Es soll auch einen Alarm dafür geben.