GraphQL API principes fondamentaux
L'interface Instana GraphQL API offre une interface sécurisée au niveau des types pour l'interrogation des données d'observabilité.
Une seule requête vous permet d'extraire exactement les données dont vous avez besoin, ce qui évite de récupérer trop ou pas assez de données.
Avantages principaux
- Requête unique : récupérer les données associées (applications, services, infrastructure et événements) en une seule requête
- Sécurité des types : schéma fortement typé avec documentation intégrée
- Requêtes flexibles : ne demandez que les champs dont vous avez besoin
- Récupération efficace des données : réduit les récupérations excessives et insuffisantes de données
- Filtrage temporel : interrogez les métriques, les événements et les SLO à l'aide du filtrage temporel
GraphQL contre REST API
Les sites Instana, GraphQL, API et REST API répondent à différents besoins. Utilisez le tableau comparatif entre GraphQL, API et REST API pour comprendre les principales différences et choisir l'approche qui correspond le mieux à vos besoins.
| Fonction | GraphQL API | REST API |
|---|---|---|
| Récupération des données | Demander des champs spécifiques dans une seule requête | Les points de terminaison renvoient des structures de données prédéfinies |
| Plusieurs ressources | Récupérer plusieurs ressources en une seule requête | Nécessite que les requêtes soient adressées à des points de terminaison distincts |
| Surcharge de récupération | Réduit la récupération excessive de données en ne renvoyant que les champs demandés | Renvoie la réponse prédéfinie complète pour chaque point de terminaison |
| Sous-extraction | Récupérer les données associées en une seule requête | Les données associées peuvent nécessiter des demandes distinctes |
| Gestion des versions | Le schéma évolue sans gestion des versions | API les modifications nécessitent généralement des points de terminaison versionnés |
| En temps réel | Prend en charge les abonnements aux données en temps réel | Nécessite l'utilisation de la méthode « WebSockets » ou d'une interrogation |
| Système de types | Schéma fortement typé avec introspection | Le type de données dépend de l'implémentation et de la documentation |
Le point de terminaison « GraphQL » API
Toutes les demandes sont transmises à une seule adresse e- URL :
POST https://<your-instana-host>/api/graphql
Remplacez <your-instana-host> par le nom d'hôte de votre tenant Instana (par exemple, my-company.instana.io).
Chaque requête est une requête de type « HTTPPOST » dont le corps est de type « JSON » et contient la requête que vous souhaitez exécuter.
Authentification
Chaque requête doit inclure un jeton d' API dans l'en-tête Authorization :
Authorization: apiToken <your-token>
Vous pouvez créer et gérer les jetons « API » dans les paramètres d’ Instana, sous « Paramètres de l’équipe » → « Jetons d’ API ». Un jeton doit disposer au minimum de la portée « Default » pour pouvoir utiliser l' GraphQL API.
Faites votre première demande
L'exemple suivant permet de récupérer les noms de vos cinq premières applications :
query {
allApplications(first: 5) {
edges {
node {
id
name
}
}
}
}
Signification de chaque élément :
allApplications: Le champ qui renvoie vos applications configurées.first: 5: Limite les résultats aux cinq premiers éléments.edges { node { ... } }: L'enveloppe standard pour les résultats paginés (expliquée ci-dessous).id name: Les champs à renvoyer : l'identifiant unique et le nom d'affichage.
Exemple de réponse :
{
"data": {
"allApplications": {
"edges": [
{ "node": { "id": "a1b2c3", "name": "Payment Service" } },
{ "node": { "id": "d4e5f6", "name": "Order Management" } }
]
}
}
}
Limites de débit
L' GraphQL API impose une limite de 5 000 appels par heure et par logement. Contrairement aux API REST, où la limite de débit s'applique par jeton d' API, cette limite s'applique au niveau du tenant. Vérifiez les limites de débit en vigueur avant de développer des intégrations afin de vous assurer que votre application respecte les seuils autorisés.
Guides pour les développeurs
Pour plus d'informations sur les requêtes GraphQL disponibles Instana, consultez la documentation GraphQL.