Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Tutoriel pour ajouter une nouvelle cible Prometheus Scrape : Redis OSS sur les clusters Amazon EKS et Kubernetes
Ce didacticiel fournit une introduction pratique pour extraire les métriques Prometheus d'un exemple d'application Redis OSS sur Amazon EKS et Kubernetes. Redis OSS (https://redis.io/) est un magasin de structure de données en mémoire open source (sous licence BSD), utilisé comme base de données, cache et courtier de messages. Pour en savoir plus, consultez redis
redis_exporter (licence MIT License) est utilisé pour exposer les métriques Prometheus de Redis OSS sur le port spécifié (par défaut : 0.0.0. 0:9121). Pour en savoir plus, consultez redis_exporter
Les images Docker dans les deux référentiels Docker Hub suivants sont utilisées dans ce didacticiel :
Pour installer un exemple de charge de travail Redis OSS qui expose les métriques Prometheus
-
Définissez l'espace de noms pour l'exemple de charge de travail Redis OSS.
REDIS_NAMESPACE=redis-sample
-
Si vous exécutez Redis OSS sur un cluster de type de lancement Fargate, vous devez configurer un profil Fargate. Pour configurer le profil, saisissez la commande suivante. Remplacez
MyCluster
par le nom de votre cluster.eksctl create fargateprofile --cluster
MyCluster
\ --namespace $REDIS_NAMESPACE --name $REDIS_NAMESPACE -
Entrez la commande suivante pour installer l'exemple de charge de travail Redis OSS.
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_traffic/redis/redis-traffic-sample.yaml \ | sed "s/{{namespace}}/$REDIS_NAMESPACE/g" \ | kubectl apply -f -
-
L'installation inclut un service nommé
my-redis-metrics
qui expose la métrique Prometheus de Redis OSS sur le port 9121. Entrez la commande suivante pour obtenir les détails du service :kubectl describe service/my-redis-metrics -n $REDIS_NAMESPACE
Dans la
Annotations
section des résultats, vous verrez deux annotations correspondant à la configuration Prometheus Scrape de l'agent, afin qu'il puisse découvrir CloudWatch automatiquement les charges de travail :prometheus.io/port: 9121 prometheus.io/scrape: true
La configuration de récupération Prometheus associée est disponible dans la section
- job_name: kubernetes-service-endpoints
dekubernetes-eks.yaml
oukubernetes-k8s.yaml
.
Pour commencer à collecter les métriques Prometheus de Redis OSS dans CloudWatch
-
Téléchargez la dernière version du fichier
kubernetes-eks.yaml
oukubernetes-k8s.yaml
en saisissant l'une des commandes suivantes. Pour un cluster Amazon EKS avec le type de EC2 lancement, entrez cette commande.curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks.yaml
Pour un cluster Amazon EKS avec le type de lancement Fargate, saisissez cette commande.
curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-eks-fargate.yaml
Pour un cluster Kubernetes exécuté sur une EC2 instance Amazon, entrez cette commande.
curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/prometheus-k8s.yaml
-
Ouvrez le fichier avec un éditeur de texte et trouvez la section
cwagentconfig.json
. Ajoutez la sous-section suivante et enregistrez les modifications. Assurez-vous que l'indentation suive le modèle existant.{ "source_labels": ["pod_name"], "label_matcher": "^redis-instance$", "dimensions": [["Namespace","ClusterName"]], "metric_selectors": [ "^redis_net_(in|out)put_bytes_total$", "^redis_(expired|evicted)_keys_total$", "^redis_keyspace_(hits|misses)_total$", "^redis_memory_used_bytes$", "^redis_connected_clients$" ] }, { "source_labels": ["pod_name"], "label_matcher": "^redis-instance$", "dimensions": [["Namespace","ClusterName","cmd"]], "metric_selectors": [ "^redis_commands_total$" ] }, { "source_labels": ["pod_name"], "label_matcher": "^redis-instance$", "dimensions": [["Namespace","ClusterName","db"]], "metric_selectors": [ "^redis_db_keys$" ] },
La section que vous avez ajoutée place les métriques Redis OSS dans la liste des CloudWatch agents autorisés. Pour une liste de ces métriques, reportez-vous à la section suivante.
-
Si l' CloudWatch agent compatible avec Prometheus est déjà déployé dans ce cluster, vous devez le supprimer en saisissant la commande suivante.
kubectl delete deployment cwagent-prometheus -n amazon-cloudwatch
-
Déployez l' CloudWatch agent avec votre configuration mise à jour en saisissant l'une des commandes suivantes. Remplacez
MyCluster
etregion
adaptez-le à vos paramètres.Pour un cluster Amazon EKS avec le type de EC2 lancement, entrez cette commande.
kubectl apply -f prometheus-eks.yaml
Pour un cluster Amazon EKS avec le type de lancement Fargate, saisissez cette commande.
cat prometheus-eks-fargate.yaml \ | sed "s/{{cluster_name}}/
MyCluster
/;s/{{region_name}}/region
/" \ | kubectl apply -f -Pour un cluster Kubernetes, saisissez cette commande.
cat prometheus-k8s.yaml \ | sed "s/{{cluster_name}}/
MyCluster
/;s/{{region_name}}/region
/" \ | kubectl apply -f -
Afficher vos métriques Redis OSS Prometheus
Ce didacticiel envoie les métriques suivantes à l'espace de noms ContainerInsights/Prometheus dans. CloudWatch Vous pouvez utiliser la CloudWatch console pour voir les métriques de cet espace de noms.
Nom de la métrique | Dimensions |
---|---|
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName, |
|
ClusterName |
|
ClusterName, |
Note
Les valeurs de la dimension cmd peuvent être : append
, client
, command
, config
, dbsize
, flushall
, get
, incr
, info
, latency
ou slowlog
.
Les valeurs de la dimension db peuvent être db0
ou db15
.
Vous pouvez également créer un CloudWatch tableau de bord pour vos métriques Redis OSS Prometheus.
Pour créer un tableau de bord pour les métriques Prometheus de Redis OSS
-
Créez des variables d'environnement, en remplaçant les valeurs ci-dessous pour correspondre à votre déploiement.
DASHBOARD_NAME=
your_cw_dashboard_name
REGION_NAME=your_metric_region_such_as_us-east-1
CLUSTER_NAME=your_k8s_cluster_name_here
NAMESPACE=your_redis_service_namespace_here
-
Saisissez la commande suivante pour créer le tableau de bord.
curl https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/latest/k8s-deployment-manifest-templates/deployment-mode/service/cwagent-prometheus/sample_cloudwatch_dashboards/redis/cw_dashboard_redis.json \ | sed "s/{{YOUR_AWS_REGION}}/${REGION_NAME}/g" \ | sed "s/{{YOUR_CLUSTER_NAME}}/${CLUSTER_NAME}/g" \ | sed "s/{{YOUR_NAMESPACE}}/${NAMESPACE}/g" \