Alibaba Cloud Managed Service for Prometheus fournit des URL d'API HTTP qui vous permettent d'accéder aux données de surveillance Prometheus depuis Grafana ou de récupérer ces données via l'API Prometheus pour un développement personnalisé.
Prérequis
Vous avez intégré des sources de données avec Prometheus. Pour plus d'informations, consultez les rubriques suivantes :
Étape 1 : Obtenir l'URL de l'API HTTP
Connectez-vous à la console Cloud Monitor. Dans le volet de navigation de gauche, sélectionnez Prometheus Monitoring > Instance List pour accéder à la page Instance List.
Dans la barre de navigation supérieure, sélectionnez la région où l'instance Prometheus est déployée. Localisez l'instance cible et cliquez sur Settings dans la colonne Actions.
-
Sous l'onglet Settings, copiez l'URL de l'API HTTP pour le réseau public ou interne, selon vos besoins.
Vous pouvez également cliquer sur Generate token pour renforcer la sécurité des lectures de données.
-
Pour les instances Prometheus V1, si vous souhaitez améliorer la sécurité des lectures de données dans Grafana, cliquez sur Generate token afin d'obtenir un jeton d'authentification pour l'instance Prometheus.
ImportantInstances V1 : Après avoir généré un jeton, vous devez le configurer lors de l'ajout de la source de données dans Grafana. Sans cette configuration, les données de surveillance ne peuvent pas être lues depuis l'instance Prometheus.
Instances V2 : Par défaut, vous devez utiliser l'ID de clé d'accès (AccessKey ID) et le secret de clé d'accès (AccessKey secret) de votre compte pour accéder aux données. L'utilisateur RAM propriétaire de l'ID de clé d'accès doit disposer de l'autorisation système AliyunPrometheusMetricReadAccess ou AliyunCloudMonitorFullAccess.
Étape 2 : Ajouter la source de données dans Grafana
Self-managed Grafana
Cette section utilise Grafana v10.x à titre d'exemple. Pour savoir comment ajouter une source de données dans d'autres versions, consultez la documentation officielle de Grafana.
-
Configurez la source de données Grafana.
Connectez-vous à votre instance Grafana auto-gérée en tant qu'administrateur.
Dans le coin supérieur gauche de la page, cliquez sur l'icône de menu
et choisissez Administration > Data sources.Cliquez sur + Add new data source et sélectionnez Prometheus comme type de source de données.
Sous l'onglet Settings, saisissez un nom personnalisé dans le champ Name. Dans le champ Prometheus server URL, collez l'URL de l'API HTTP obtenue à l'Étape 1.
-
Configurez l'authentification.
V1 instances (optional)
Cliquez sur + Add header. Dans la section Custom HTTP Headers, cliquez sur +Add header, définissez Header sur Authorization et attribuez au champ Value le jeton d'authentification obtenu à l'Étape 1.
V2 instances
Activez Basic auth. Définissez User sur votre AccessKey ID et Password sur votre AccessKey secret.
Au bas de la page, cliquez sur Save & Test.
-
Interrogez les métriques Prometheus.
Connectez-vous à votre système Grafana.
Dans le coin supérieur gauche de la page, cliquez sur l'icône de menu
, puis cliquez sur Dashboards dans le volet de navigation de gauche.Sur la page Dashboards, cliquez sur New dans le coin supérieur droit, puis sélectionnez New dashboard dans le menu déroulant.
Cliquez sur + Add visualization. Sur la page Select data source, sélectionnez la source de données que vous avez créée.
-
Sur la page Edit Panel, accédez à l'onglet Query. Dans la section A, saisissez le nom de la métrique et la valeur dans les champs Metrics et Label filters, puis cliquez sur Run queries.
Si un graphique correspondant à la métrique s'affiche, la configuration est réussie. Sinon, vérifiez que l'URL de l'API et le jeton sont corrects, et que la source de données contient bien des données de surveillance Prometheus.

Managed Service for Grafana
Managed Service for Grafana propose une intégration en un clic des sources de données et des tableaux de bord Prometheus.
Connectez-vous à la console ARMS. Dans le volet de navigation de gauche, choisissez Managed Service for Grafana > Workspace Management, puis cliquez sur l'ID de votre espace de travail.
Sur la page Workspace Information, localisez la section Cloud Service Integration et cliquez sur Prometheus Monitoring Service. Trouvez ensuite votre instance et cliquez sur Integrate.
-
Dans la boîte de dialogue qui s'affiche, cliquez sur OK.
Si vous intégrez une instance Prometheus V2, vous devez saisir l'AccessKey ID pour la source de données.
Une fois la synchronisation terminée, cliquez sur l'icône de dossier à droite.
Dans Grafana, sous l'onglet Dashboards, cliquez sur le nom d'un tableau de bord pour afficher les tableaux de bord par défaut prédéfinis pour la surveillance des applications.
Dans le coin supérieur gauche de la page, cliquez sur l'icône de menu
et choisissez Administration > Data sources pour afficher la source de données de surveillance des applications ajoutée.-
Interrogez les métriques Prometheus.
Connectez-vous à votre système Grafana.
Dans le coin supérieur gauche de la page, cliquez sur l'icône de menu
, puis cliquez sur Dashboards dans le volet de navigation de gauche.Sur la page Dashboards, cliquez sur New dans le coin supérieur droit, puis sélectionnez New dashboard dans le menu déroulant.
Cliquez sur + Add visualization. Sur la page Select data source, sélectionnez la source de données que vous avez créée.
-
Sur la page Edit Panel, accédez à l'onglet Query. Dans la section A, saisissez le nom de la métrique et la valeur dans les champs Metrics et Label filters, puis cliquez sur Run queries.
Si un graphique correspondant à la métrique s'affiche, la configuration est réussie. Sinon, vérifiez que l'URL de l'API et le jeton sont corrects, et que la source de données contient bien des données de surveillance Prometheus.

Étape 3 : Récupérer les données Prometheus
Le code suivant présente un exemple de requête pour récupérer des données de surveillance Prometheus. Pour plus d'informations sur l'utilisation de l'API HTTP, consultez la documentation de l'API HTTP Prometheus open source.
V1 instances
GET {HTTP API URL}/api/v1/query
Accept: application/json
Content-Type: application/json
Authorization: {Token}
{
"query":"arms_prometheus_target_interval_length_seconds_sum",
"time":"1635302655",
"timeout":"1000"
}
Remplacez {HTTP API URL} et {Token} par l'URL de l'API HTTP et le jeton d'authentification obtenus à l'Étape 1.
V2 instances
GET {HTTP API URL}/api/v1/query
Accept: application/json
Content-Type: application/json
Authorization: Basic <base64Encode(<AccessKey ID:AccessKey secret>)>
{
"query":"arms_prometheus_target_interval_length_seconds_sum",
"time":"1635302655",
"timeout":"1000"
}
Remplacez
{HTTP API URL}par l'URL de l'API HTTP obtenue à l'Étape 1.L'API prend en charge l'authentification STS. Si vous utilisez cette méthode, le AccessKey secret dans
BasicAuthdoit respecter le format suivant :{AccessKey secret}${STS Token}. Pour plus d'informations, consultez Qu'est-ce que STS ?.
Vous pouvez également utiliser Python et la bibliothèque requests pour appeler l'API. Les exemples suivants montrent comment interroger les données de surveillance Prometheus avec l'authentification V2 Basic Auth et V1 Token.
Instances V2 (Basic Auth)
import base64
import requests
access_key_id = "<AccessKey ID>"
access_key_secret = "<AccessKey secret>"
http_api_url = "{http_api_url}"
credentials = f"{access_key_id}:{access_key_secret}"
auth_header = base64.b64encode(credentials.encode()).decode()
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": f"Basic {auth_header}"
}
response = requests.get(
f"{http_api_url}/api/v1/query",
params={"query": "up"},
headers=headers
)
result = response.json()
print(result["status"])
print(result["data"]["result"])
Instances V1 (Token)
import requests
http_api_url = "{http_api_url}"
token = "{token}"
headers = {
"Accept": "application/json",
"Content-Type": "application/json",
"Authorization": token
}
response = requests.get(
f"{http_api_url}/api/v1/query",
params={"query": "up"},
headers=headers
)
result = response.json()
print(result["status"])
print(result["data"]["result"])
Exemple de réponse :