Afficher les données de métriques à l'aide de l'API

Vous consultez la documentation Apigee Edge.
Accédez à la documentation**Apigee X**.
info

Utilisez les API décrites ci-dessous pour obtenir des métriques API Monitoring. Les métriques sont les valeurs de données agrégées par API Monitoring à partir des données brutes contenues dans les journaux API Monitoring.

Les sections suivantes décrivent comment gérer les métriques à l'aide de l'API.

Pour en savoir plus sur l'API de métriques, consultez la section API de métriques.

Pour en savoir plus sur les options cURL utilisées dans ces exemples, consultez la section Utiliser cURL.

API de métriques

L'URL de base que vous utilisez pour envoyer une requête GET à l'API de métriques est la suivante :

https://apimonitoring.enterprise.apigee.com/metrics/resource

resource correspond à une métrique spécifique. Le tableau suivant répertorie les ressources de métriques :

Ressource Description
/traffic Obtenir des métriques de trafic. Spécifiez des filtres tels que le nom du proxy, l'intervalle, la fenêtre temporelle, la cible, le code d'état et bien d'autres.
/latency Obtenir des métriques de latence pour les requêtes

vers Edge et vers les cibles backend. Spécifiez des filtres tels que le nom du proxy, l'intervalle, la cible, le code d'état et bien d'autres.

/targets Obtenir tous les domaines cibles pour une organisation et un environnement spécifiques.
/alerthistory Obtenir des métriques d'historique des alertes pour une organisation et une fenêtre temporelle spécifiques.
/alertinstance/instanceid Obtenir des métriques d'historique des alertes pour l'ID d'instance d'alerte spécifique.
/alertsummary Obtenir le nombre total d'alertes pour une organisation et une fenêtre temporelle.
/faultcodenames Obtenir tous les noms de faultcode.
/faultcodes Obtenir les faultcodes.
/faultcodecategories Obtenir les catégories de faultcode.
/faultcodesubcategories Obtenir les sous-catégories de faultcode.
/faultcodedetails Obtenir tous les faultcodes avec des détails.

Obtenir des informations sur les erreurs

Les ressources /fault* renvoient toutes des métadonnées sur les erreurs possibles sur Edge. Par exemple, pour afficher la liste de toutes les catégories d'erreurs possibles :

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodecategories" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Définissez $ACCESS_TOKEN sur votre jeton d'accès OAuth 2.0, comme décrit dans Obtenir un jeton d'accès OAuth 2.0.

La réponse s'affiche comme suit :

{
  "faultCodeCategories":[
    "","API Protocol","Developer/App","Extension Policy","Gateway",
    "Mediation Policy","Mint","Security Policy","Sense","Traffic Mgmt Policy"
  ]
}

Vous pouvez ensuite déterminer la liste des faultcodes pour la catégorie API Protocol :

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/faultcodes?faultCodeCategory=API Protocol" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Pour obtenir des options supplémentaires, consultez la section API de métriques.

Capturer des métriques pour le trafic et la latence

L'API Metrics comporte des filtres que vous pouvez appliquer à l'API pour spécifier des plages de temps, des proxys, des régions, des environnements et d'autres filtres personnalisés pour les métriques calculées. Par exemple, pour afficher la métrique des transactions par seconde (tps) toutes les 10 minutes pour l'heure précédente pour tous les environnements :

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=10m&groupBy=env&org=myorg" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN" 

Définissez $ACCESS_TOKEN sur votre jeton d'accès OAuth 2.0, comme décrit dans Obtenir un jeton d'accès OAuth 2.0.

Cet appel renvoie des résultats au format suivant :

{
  "results":[
    {
      "series":[
        {
          "name":"proxy",
        "tags":
             {
                "env":"prod",
                "intervalSeconds":"60",
                "org":"myorg",
                "region":"myregion"
              },
            "columns":["time","tps"],
            "values":[
              ["2018-08-15T13:10:00Z",5.03],
              ["2018-08-15T13:20:00Z",5.01],
              ["2018-08-15T13:30:00Z",5.81],
              ["2018-08-15T13:40:00Z",5.95],
              
            ]
          },
       
       }
    }]
}

Notez que la propriété columns spécifie le format de values. La propriété values contient les tps calculés toutes les 10 minutes pour l'intervalle de 10 minutes précédent.

Le paramètre de requête interval définit la fréquence à laquelle la métrique est enregistrée dans les résultats et la fenêtre d'échantillonnage pour la valeur dans les résultats. Dans l'exemple ci-dessus, la métrique est calculée sur les 10 minutes précédentes et écrite dans les résultats toutes les 10 minutes.

Utilisez les paramètres de requête from et to pour spécifier une plage de temps au format ISO. La durée maximale spécifiée par from et to est de 24 heures.

Le format de date peut être l'un des suivants :

  • yyyy-mm-ddThh:mm:ssZ
  • yyyy-mm-ddThh:mm:ss+00:00

Exemple :

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=2018-08-13T14%3A04%3A00Z&to=2018-08-13T14%3A10%3A00Z&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

Vous pouvez également utiliser les paramètres de requête from et to pour spécifier une plage de temps relative, par exemple pour la dernière heure :

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

Une autre option consiste à utiliser le paramètre de requête proxy pour afficher les transactions par seconde (tps) pour un seul proxy :

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/traffic?from=-1h&to=now&select=tps&interval=1m&groupBy=env&org=myorg&proxy=PublicAPI" \
-H "accept: application/json"  \
-H "Authorization: Bearer $ACCESS_TOKEN"

Pour les métriques de latence, spécifiez de nombreux critères identiques à ceux des métriques de trafic. Toutefois, pour la ressource /latency :

  • Vous devez spécifier le paramètre de requête percentile comme 50, 90, 95 ou 99. Par exemple, si vous spécifiez 90, l'API renvoie la valeur totale de latence de réponse au 90e centile.
  • windowsize est fixé à une minute.

Par exemple, pour afficher les métriques de latence totale au 90e centile pour une fenêtre de 1 minute :

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/latency?percentile=90&select=totalLatency&from=-1h&to=now&interval=5m&windowsize=1m&groupBy=org,env,region&org=myorg" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Pour obtenir des options supplémentaires, consultez la section API de métriques.

Capturer des métriques pour les alertes

L'API de métriques renvoie des métriques pour toutes les alertes, pour une alerte spécifique ou pour un résumé des alertes. Par exemple, pour obtenir l'historique des alertes d'une organisation pour la dernière heure :

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alerthistory?org=myorg&from=-1h&to=now" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Définissez $ACCESS_TOKEN sur votre jeton d'accès OAuth 2.0, comme décrit dans Obtenir un jeton d'accès OAuth 2.0.

Cet appel d'API renvoie une réponse au format suivant :

[
  {
"id":"983c4c7a-c301-4697-95cc-9a7c53e05fac",
"organization":"myorg",
"environment":"prod",
"name":"Public Api 5xx error rate",
"type":"Alert",
"source":"https://www.apigee.net/sonar",
"raw_payload":"
{
    \"reportUUID\":\"\",
    \"reportEnabled\":false,
    \"organization\":\"myorg\",
    \"name\":\"Public Api 5xx error rate\",
    \"self\":\"/alerts/95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"description\":\"\",
    \"conditions\":[
    {
        \"comparator\":\"\u003e\",
        \"metric\":\"rate\",
        \"durationSeconds\":3600,
        \"name\":\"\",
        \"description\":\"\",
        \"threshold\":0.01,
        \"dimensions\":
        {
            \"proxy\":\"myAPI\",
            \"org\":\"myorg\",
            \"env\":\"prod\",
            \"region\":\"myRegion\",
            \"statusCode\":\"5xx\"
            }
        }],
        \"uuid\":\"95cc9ef4-345f-11e8-9fd3-12774584e062\",
    \"playbook\":\"This is a test alert.\"
    }",
"time":"2018-08-14T12:45:28Z"
 },
 
]

Vous pouvez ensuite utiliser l'id dans le tableau renvoyé pour obtenir des informations sur une alerte spécifique :

curl -X GET \
"https://apimonitoring.enterprise.apigee.com/metrics/alertinstance/983c4c7a-c301-4697-95cc-9a7c53e05fac" \
-H "accept: application/json" \
-H "Authorization: Bearer $ACCESS_TOKEN"

Pour obtenir des options supplémentaires, consultez la section API de métriques.