Managed Service for Prometheus fournit un endpoint Remote Read standard. Ajoutez cet endpoint à la configuration de votre instance Prometheus auto-gérée pour interroger les métriques de votre instance dans le cloud. Cette rubrique explique comment configurer un serveur Prometheus auto-géré afin de lire les métriques d'une instance Managed Service for Prometheus.
Le mode Remote Read de Prometheus transfère une grande quantité de données brutes de séries temporelles vers un moteur Prometheus local pour le calcul et présente de nombreuses limitations d'utilisation. Nous vous recommandons donc d'utiliser directement le protocole de requête HTTP API fourni par Managed Service for Prometheus.
Managed Service for Prometheus propose une API de requête Prometheus complète. Elle traite les requêtes côté serveur et ne renvoie que les résultats finaux, offrant des performances plusieurs fois supérieures à celles de l'utilisation de Remote Read. L'API vous permet d'envoyer des requêtes directement via HTTP et de connecter des outils comme Grafana sans avoir besoin d'un moteur Prometheus local. Pour plus de détails sur la configuration, consultez la section Connecter Grafana ou des applications auto-gérées aux données Prometheus à l'aide d'un endpoint HTTP API.
Les limitations de l'approche Remote Read incluent :
Coûts d'infrastructure élevés liés à la maintenance d'un moteur de calcul Prometheus local.
Latence de bout en bout élevée, car chaque requête nécessite le transfert de grands volumes de données brutes sur le réseau.
Des limites de service strictes, faciles à dépasser lors de l'interrogation de grands ensembles de données.
Limitations
L'endpoint Remote Read ne prend pas en charge HTTP/2.
Prérequis
Vous avez créé une instance Managed Service for Prometheus. Pour plus d'informations, consultez la section Créer une instance.
(Facultatif) Étape 1 : Accorder les autorisations de lecture et d'écriture CMS à un utilisateur RAM
Si votre instance Alibaba Cloud Prometheus a été créée par un compte Alibaba Cloud et que vous devez utiliser l'ID AccessKey et le secret AccessKey d'un utilisateur RAM pour les opérations de lecture et d'écriture distantes, vous devez d'abord accorder à l'utilisateur RAM les autorisations de lecture et d'écriture pour CMS.
Connectez-vous à la console RAM en utilisant un compte Alibaba Cloud ou en tant qu'administrateur RAM. Dans le volet de navigation de gauche, sélectionnez .
-
Sur la page Authorize, cliquez sur Create Authorization. Sur la page Create Authorization, configurez les paramètres comme suit.
Paramètre
Description
Resource Range
Sélectionnez une étendue de ressource selon vos besoins.
Principal
Spécifiez le principal. Le principal est l'utilisateur RAM auquel vous souhaitez accorder des autorisations.
Policy
Ajoutez les autorisations suivantes à l'utilisateur RAM selon vos besoins :
-
AliyunCloudMonitorFullAccess: Autorisations complètes pour CMS. Un utilisateur RAM disposant de cette autorisation possède des droits complets pour afficher, modifier et supprimer des instances de tous les sous-produits. -
AliyunCloudMonitorReadOnlyAccess: Autorisations en lecture seule pour CMS. Un utilisateur RAM disposant de cette autorisation peut uniquement afficher les informations des instances pour tous les sous-produits. L'utilisateur ne peut pas modifier ni supprimer des instances.
-
Cliquez sur Confirm, puis cliquez sur Delete.
Étape 2 : Obtenir l'endpoint Remote Read
Connectez-vous à la console CloudMonitor. Dans le volet de navigation de gauche, sélectionnez Prometheus Monitoring pour accéder à la page Instance List.
Dans la barre de menu supérieure, sélectionnez la région de l'instance. Dans la colonne Actions du cluster cible, cliquez sur Modify.
-
Sur l'onglet Modify, copiez l'endpoint Remote Read public ou interne selon vos besoins.
Le format de l'endpoint public est
http://{region}.arms.aliyuncs.com:9090/api/v1/prometheus/xxx. Le format de l'endpoint interne esthttp://{region}-intranet.arms.aliyuncs.com:9090/api/v1/prometheus/xxx. La partie xxx correspond à l'identifiant d'authentification généré par le système.
Étape 3 : Configurer Prometheus auto-géré
Installez Prometheus. Pour plus d'informations, consultez la page de téléchargement de Prometheus.
-
Modifiez le fichier de configuration Prometheus.yml. Ajoutez le contenu suivant à la fin du fichier. Remplacez l'URL
remote_readpar l'endpoint obtenu à l'étape Étape 2. Ensuite, enregistrez le fichier.global: scrape_interval: 15s evaluation_interval: 15s scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090'] remote_read: # Replace this with your Remote Read endpoint. - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_read" read_recent: true Redémarrez le service Prometheus auto-géré.
Étape 4 : Afficher les données Alibaba Cloud Prometheus sur votre instance Prometheus auto-gérée
-
Connectez-vous à votre instance Prometheus auto-gérée dans un navigateur.
http://localhost:9090 Sur la page Prometheus, cliquez sur Graph dans la barre de menu en haut de la page.
-
Sur l'onglet Graph, saisissez une expression de requête dans la zone de recherche, puis cliquez sur Execute à droite de la zone de recherche.
Par exemple, interrogez l'utilisation du CPU pour une adresse IP spécifique.
100 - (avg by (instance) (rate(node_cpu_seconds_total{instance="your_IP_address:9100", mode="idle"}[5m])) * 100)
FAQ
Les requêtes ne renvoient aucune donnée et n'affichent aucune erreur après la configuration de Remote Read
Si les requêtes ne renvoient aucune donnée après la configuration, vérifiez si votre configuration Prometheus locale contient external_labels. Ce paramètre peut empêcher Remote Read d'interroger les données attendues. Exécutez la commande suivante pour afficher la configuration external_labels dans le fichier de configuration Prometheus et confirmez que les libellés cloud et cluster sont définis correctement.
[xxx prometheus]# head prometheus.yml
global:
scrape_interval: 60s
evaluation_interval: 15s
external_labels:
cloud: xxx
cluster: xxx