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
MyClusterpar le nom de votre cluster.eksctl create fargateprofile --clusterMyCluster\ --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-metricsqui 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_NAMESPACEDans la
Annotationssection 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: trueLa configuration de récupération Prometheus associée est disponible dans la section
- job_name: kubernetes-service-endpointsdekubernetes-eks.yamloukubernetes-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.yamloukubernetes-k8s.yamlen 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.yamlPour 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.yamlPour 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
MyClusteretregionadaptez-le à vos paramètres.Pour un cluster Amazon EKS avec le type de EC2 lancement, entrez cette commande.
kubectl apply -f prometheus-eks.yamlPour 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_nameREGION_NAME=your_metric_region_such_as_us-east-1CLUSTER_NAME=your_k8s_cluster_name_hereNAMESPACE=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" \