API Gateway s'intègre parfaitement à Simple Log Service (SLS). Utilisez SLS pour interroger les journaux en temps réel, les télécharger et analyser les statistiques selon plusieurs dimensions. Vous pouvez également exporter les journaux vers Object Storage Service (OSS) ou MaxCompute.

Fonctionnalités
Interrogation de journaux en ligne
Cette fonctionnalité facilite le dépannage et l'analyse statistique.
Journaux d'appels détaillés
Les journaux contiennent les champs suivants : Les champs requestQueryString, requestHeaders, requestBody, responseHeaders et responseBody sont disponibles uniquement pour les instances dédiées. Vous devez les activer sur la page des détails du groupe.
Paramètre | Description |
apiGroupUid | ID du groupe d'API. |
apiGroupName | Nom du groupe d'API. |
apiUid | ID de l'API. |
apiName | Nom de l'API. |
apiStageUid | ID de l'environnement. |
apiStageName | Nom de l'environnement. |
httpMethod | Méthode HTTP utilisée pour l'appel. |
path | Chemin de la requête. |
domain | Nom de domaine utilisé pour l'appel. |
statusCode | Code d'état HTTP. |
errorMessage | Message d'erreur. |
appId | ID de l'application de l'appelant. |
appName | Nom de l'application de l'appelant. |
clientIp | Adresse IP du client. |
exception | Message d'erreur spécifique provenant du service backend. |
exchangeTimestamp | Horodatages des événements d'E/S au cours du cycle de vie de la requête.
|
providerAliUid | ID du compte du fournisseur d'API. |
region | Région. Exemple : |
requestHandleTime | Heure de la requête (UTC). |
requestId | ID de requête unique global. |
requestSize | Taille de la requête en octets. |
responseSize | Taille de la réponse en octets. |
serviceLatency | Temps total passé à accéder aux ressources backend, y compris l'allocation des ressources de connexion, l'établissement de la connexion et l'invocation du service backend. Unité : millisecondes. |
errorCode | Code d'erreur. Exemple : |
requestProtocol | Protocole de requête du client. Valeurs possibles : HTTP, HTTPS et WS. |
instanceId | ID de l'instance où s'exécute le service API. |
initialRequestId | Si une API en appelle une autre (par exemple, API-1 appelle API-2), ce champ enregistre l'ID de requête du premier appel (API-1) dans le journal du second appel (API-2). |
clientNonce | En-tête X-Ca-Nonce de la requête du client. |
requestQueryString | Chaîne de requête de la requête du client (instances dédiées uniquement). |
requestHeaders | En-têtes de la requête du client (instances dédiées uniquement). |
requestBody | Corps de la requête du client, jusqu'à 1 024 octets (instances dédiées uniquement). |
responseHeaders | En-têtes de la réponse de l'API (instances dédiées uniquement). |
responseBody | Corps de la réponse de l'API, jusqu'à 1 024 octets (instances dédiées uniquement). |
consumerAppKey | AppKey de la requête API. |
totalLatency | Latence totale de la requête API en millisecondes. |
customTraceId | ID de trace du journal de bout en bout. |
jwtClaims | Revendications analysées à partir du jeton Web JSON (JWT). Vous pouvez configurer cela dans les paramètres du groupe d'API. |
plugin | Liste des plug-ins qui ont correspondu à la requête API et leur contexte associé. |
Afficher les journaux API avec Simple Log Service
Méthodes de configuration
Deux méthodes de configuration sont disponibles :
Utilisez la fonctionnalité Log Audit dans la console SLS pour synchroniser les journaux API Gateway. Cette méthode collecte les journaux de toutes les régions dans le projet Log Audit. Aucune configuration supplémentaire n'est requise dans API Gateway.
Configurez l'ingestion de données pour API Gateway dans la console SLS. Avec cette méthode, vous devez configurer la synchronisation une fois pour chaque région.
Les sections suivantes décrivent ces deux méthodes.
Pour Alibaba Gov Cloud et Alibaba Finance Cloud, vous ne pouvez synchroniser les journaux SLS qu'en utilisant la première méthode.
Utilisation de Log Audit
-
Ouvrez la page de configuration du service Log Audit et sélectionnez une région centrale, où tous les journaux API Gateway ultérieurs seront livrés.
Le haut de la page Global Configurations affiche la région et le nom du projet central. En dessous, un tableau présente les éléments de configuration pour les produits cloud tels que ActionTrail, Object Storage Service (OSS), RDS, Virtual Private Cloud (VPC), DNS, PolarDB, Server Load Balancer (SLB) et Application Load Balancer (ALB). Les éléments incluent l'interrupteur de collecte de journaux, Storage Mode (Centralized ou By Region), la période de rétention, Sync To Center et Archive After N Days. Activez les interrupteurs de collecte de journaux pour les produits cloud requis, puis cliquez sur Save dans le coin supérieur droit. Dans la section Collection and Synchronization Authorization, si un message indique que le compte n'est pas autorisé à collecter et synchroniser les journaux, effectuez l'autorisation en utilisant manual authorization ou Authorize with AccessKey.
Sélectionnez une méthode d'autorisation et suivez les instructions à l'écran. Cet exemple utilise l'autorisation manuelle.
-
Une fois l'autorisation terminée, les journaux d'appels API Gateway sont disponibles dans le Logstore
apigateway_logau sein du projet central.Les journaux d'appels API Gateway incluent des champs tels que
apiGroupName,apiGroupUid,apiName,apiStageName,apiStageUidetapiUid. Vous pouvez afficher les paires clé-valeur détaillées pour chaque entrée de journal dans l'onglet Raw Logs.
Configuration dans la console API Gateway
1) Assurez-vous d'avoir activé SLS. Ensuite, connectez-vous à la console SLS, sélectionnez la région cible et créez un projet et un Logstore. Cet exemple utilise la région Chine (Hangzhou).
Dans la boîte de dialogue Create Project, saisissez un Project Name (par exemple, gateway-t***), conservez le resource group par défaut et sélectionnez vos préférences dans la section Enable Logging for, telles que Operation Log et Global Log. Cliquez ensuite sur OK. Une fois le projet créé, cliquez sur Create Logstore dans la boîte de dialogue qui apparaît. Lors de la création du Logstore, configurez ses paramètres. Par exemple, définissez Logstore Name sur gateway_log, Type sur Standard, Billing Mode sur Pay-By-Data-Written, Data Retention Period sur 30 jours et Number of Shards sur 2. Activez Auto Split Shard (jusqu'à un maximum de 64 shards) et Log Public IP, puis cliquez sur OK. Dans la dernière boîte de dialogue de confirmation, cliquez sur Data Import Wizard.
2) Configurez l'ingestion de données API Gateway et sélectionnez le produit API Gateway.
Après avoir sélectionné API Gateway, la page Data Source Configuration s'affiche. Confirmez que l'autorisation RAM est terminée (la page affiche « You have authorized Log Service to distribute logs »). Dans la section Create Distribution Rule, confirmez que les journaux d'accès API Gateway sont importés dans le Logstore de destination, puis cliquez sur Next. Continuez à cliquer sur Next lors des étapes restantes pour terminer la configuration.
Affichage des journaux
Connectez-vous à la console SLS pour afficher les journaux et rechercher les journaux d'appels à l'aide de la syntaxe de requête SLS.
Dans les résultats de la requête, chaque entrée de journal contient des champs tels que apiGroupName, apiGroupUid, apiName, __source__, __tag__:__receive_time__ et __topic__. Vous pouvez filtrer les journaux par champ dans le volet Quick Analysis à gauche, ou utiliser la syntaxe de requête dans la zone de recherche en haut pour des recherches précises.
Personnalisation des rapports de requête
Vous pouvez personnaliser les rapports de requête en fonction de vos besoins métier. Pour obtenir des instructions, consultez la rubrique Créer un tableau de bord.