BLOG | NGINX

Votre API est-elle en temps réel ? Testez sa latence avec l'outil rtapi de NGINX

NGINX-Partie-de-F5-horiz-black-type-RGB
Alessandro Fael Garcia Vignette
Alessandro Fael Garcia
Publié le 11 mars 2020

[ Éditeur – Ce billet a été mis à jour avec des informations sur les rapports révisés introduits dans la version 0.2.0 de rtapi .]

Les API sont au cœur même des applications modernes et des architectures numériques en évolution, les appels d'API représentant 83 % de l'ensemble du trafic Web, selon le rapport Akamai State of the Internet Security . Dans le paysage actuel, où il est si facile pour les consommateurs de passer à un concurrent numérique, il est de la plus haute importance qu'ils aient une expérience positive avec votre site ou votre application. La rapidité est très appréciée et dépend en fin de compte d'API réactives, saines et adaptables. Si vous faites bien les choses – votre API est plus rapide que celle de votre concurrent – les développeurs vous choisiront.

Selon le rapport IDC APIs — The Determining Agents Between Success or Failure of Digital Business , plus de 90 % des organisations s'attendent à une latence inférieure à 50 millisecondes (ms), tandis que près de 60 % s'attendent à une latence de 20 ms ou moins. (La latence est définie comme le temps nécessaire à votre infrastructure API pour répondre à un appel API, à partir du moment où une requête arrive à la passerelle API jusqu'au moment où le premier octet d'une réponse est renvoyé au client.)

Nous avons utilisé ces données, ainsi qu’une analyse de bout en bout du cycle de vie de l’API, pour définir une API en temps réel comme une API avec une latence de 30 ms ou moins. De plus, le seuil de latence de 30 ms doit être maintenu jusqu'au 99e percentile des requêtes traitées (ce qui signifie qu'en moyenne, seulement 1 requête sur 100 prend plus de 30 ms). Pour plus de détails, consultez notre blog sur l'analyse comparative des performances des solutions de gestion des API .

Il s’agit d’un défi majeur pour la plupart des entreprises de traiter les appels d’API le plus rapidement possible, en particulier lorsqu’elles utilisent des passerelles d’API à l’architecture complexe comme points d’entrée vers leurs points de terminaison d’API. Alors, comment se mesurent vos API ? Sont-ils déjà suffisamment rapides pour être considérés comme en temps réel ou doivent-ils s’améliorer ? Votre produit semble-t-il un peu lent, mais vous ne savez pas vraiment pourquoi ? Peut-être ne savez-vous pas avec certitude à quoi ressemble la latence de votre API ?

Entrez rtapi – un outil d’analyse comparative de la latence des API en temps réel créé par NGINX qui teste la réactivité de vos passerelles et points de terminaison API et génère des rapports que vous pouvez facilement distribuer et socialiser parmi vos pairs. Deux formats de rapport sont disponibles : un PDF avec un graphique récapitulatif et un tableau au format ASCII de métriques détaillées.

Exécution de rtap

  1. Téléchargez le binaire rtapi depuis GitHub, en utilisant l'une des deux méthodes :

    • Si vous avez installé Golang , exécutez cette commande :

      $ allez sur github.com/nginxinc/rtapi
    • Si vous n'avez pas installé Golang, accédez à github.com/nginxinc/rtapi/releases , téléchargez le binaire pour votre plateforme et rendez-le exécutable.
  2. Spécifiez un ou plusieurs points de terminaison d'API ( cibles ) que vous souhaitez interroger, au format JSON ou YAML comme dans les exemples suivants. Nous vous recommandons d'enregistrer le JSON ou le YAML dans un fichier appelé endpoints.json ou endpoints.yml . (Pour JSON, vous pouvez également inclure les données sur la ligne de commande rtapi à l'étape suivante, en tant que paramètre de l'indicateur --data .)

    Les seuls paramètres requis pour chaque point de terminaison sont target.url et target.method . Si vous ne spécifiez pas target.body et target.header , ils restent vides. Si vous ne spécifiez pas de paramètre dans l'objet query_parameters , rtapi utilise la valeur (par défaut) indiquée dans les exemples suivants.

    Exemple d'entrée JSON

    [
    {
    "target": {
    "url": "https://www.example.com",
    "method": "POST",
    "corps": "{\"id\":\"0\"}",
    "en-tête": {
    "Type de contenu": [
    "application/json"
    ]
    }
    },
    "paramètres de requête": {
    "threads": 2,
    "max_threads": 2,
    "connexions": 10,
    "durée": "10s",
    "request_rate": 500
    }
    }
    ]

    Exemple d'entrée YAML

    - cible : url : https://exemple.com/api/id
    méthode : POST
    corps : '{"id":"0"}'
    en-tête :
          Type de contenu :
    - application/json
    paramètres de requête :
    threads : 2
    max_threads : 2
    connexions : 12
    durée : 10 s
     taux de requête : 500
  3. Exécutez la commande suivante, où --file nomme le fichier contenant la liste au format JSON/YAML des points de terminaison d'API et --output nomme le rapport PDF à générer par rtapi . (Comme indiqué à l'étape 2, vous pouvez fournir une entrée JSON sur la ligne de commande : pour --file endpoints.json, remplacez --data suivi de la chaîne JSON.)

    $ rtapi --fichier endpoints.json --rapport de sortie.pdf

    Pour afficher le tableau des métriques au format ASCII dans le terminal, incluez l'indicateur --print , à la place (ou en plus) de l'indicateur --output .

    $ rtapi --file points de terminaison.json --print

Interprétation du rapport PDF

Le rapport PDF généré par rtapi contient un histogramme HDR de latence de réponse comme celui-ci (à partir d'une passerelle API NGINX Plus configurée à l'aide du module de gestion API du contrôleur NGINX ). L'axe Y montre la latence en millisecondes et l'axe X montre la proportion d'appels traités en moins d'une latence donnée, exprimée en centile. (Dans l'exemple suivant, nous avons compressé l'axe Y pour des raisons d'espace.)

Pour mettre en évidence les résultats de votre API, les lignes pointillées parallèles aux axes se croisent pour afficher la latence mesurée de votre API au 99e percentile ( 99 % sur le graphique). Pour que votre API soit considérée comme en temps réel, la latence à l'intersection doit être inférieure à 30 ms.

Comment NGINX peut-il vous aider ?

La latence de votre API est-elle inférieure à 30 ms ?

Si vous êtes comme la plupart des entreprises avec lesquelles nous discutons, il y a de fortes chances que ce ne soit pas le cas. Avec de nombreuses solutions de passerelle API et de gestion d'API, une latence de 100 ms est courante, et même 500 ms n'est pas si inhabituelle.

Nous pouvons vous aider à améliorer les performances de votre API. NGINX et NGINX Plus sont les passerelles API les plus rapides du secteur et, avec NGINX Controller, peuvent vous aider à acheminer, authentifier, sécuriser, mettre en forme et mettre en cache les appels API en moins de 30 ms. Apprenez-en davantage, parlez à un expert NGINX et découvrez comment NGINX peut vous aider dans votre parcours vers les API en temps réel sur nginx.com/real-time-api .


« Cet article de blog peut faire référence à des produits qui ne sont plus disponibles et/ou qui ne sont plus pris en charge. Pour obtenir les informations les plus récentes sur les produits et solutions F5 NGINX disponibles, explorez notre famille de produits NGINX . NGINX fait désormais partie de F5. Tous les liens NGINX.com précédents redirigeront vers un contenu NGINX similaire sur F5.com."