Exemple : API REST Log Management

Cet exemple explique comment utiliser l'API REST Log Management de gestion des journaux d'opérations cloud pour demander et extraire des journaux à partir des serveurs de flux de travaux de votre abonnement de cloud.

L'exemple couvre l'obtention de la liste des demandes de journal, la découverte des types de journaux disponibles, la demande et le téléchargement d'un journal et, enfin, la suppression des demandes de journal et des fichiers journaux associés.
Avant de commencer
Tous les appels d'API nécessitent un jeton CSRF (cross site forgery request) valide dans l'en-tête IBM-CSRF-TOKEN de l'appel. Obtenez un jeton CSRF via POST /instance/services/csrf_token. Pour plus d'informations, voir Prévention de la falsification de requêtes entre sites (CSRF).
Afficher la liste des demandes d'extraction de journal présentes dans votre abonnement
Utilisez l'appel suivant pour extraire les demandes :
GET /instance/services/logs
Vous pouvez filtrer les demandes par environnement, par exemple l'environnement de développement, et inclure la pagination :
GET /instance/services/logs/?environment=dev&offset=5&size=10
Découvrir les types de journaux disponibles
Plusieurs types de journaux sont pris en charge. Pour obtenir la liste des types de journaux activés dans votre abonnement, utilisez l'appel suivant :
GET /instance/services/log_types
La liste inclut le nom d'affichage activé pour traduction de chaque type de journal et la liste des propriétés disponibles.
Demander un type de journal spécifique à un environnement
Utilisez l'appel suivant pour demander un journal :
POST /instance/services/logs
Les détails de la demande de journal sont transmis en tant qu'objet JSON dans le corps de la demande de l'appel. Par exemple, pour demander les journaux du cluster d'application dans l'environnement de développement, le corps de l'appel doit inclure le type d'environnement et de journal :
POST /instance/services/logs
	...
	{
	  "environment": "dev",
	  "log_type": "AppCluster"
	}
Selon les propriétés prises en charge pour votre type de journal, vous pouvez ajouter des critères de filtre au corps de l'appel en définissant les propriétés correspondantes dans l'objet JSON. Par exemple, pour demander un journal de cluster d'application contenant tous les événements consignés entre 13h07 et 13h17 le 16 août 2019 avec le niveau de journalisation le plus élevé, utilisez l'appel suivant :
POST /instance/services/logs
	...
	{
	  "environment": "dev",
	  "log_type": "AppCluster",
	  "start_time": "2019-08-16T13:17:22.421Z",
	  "duration": 10,
	  "min_log_level": "all"
	}
La réponse contient l'ID de journal ainsi que le statut et les détails de la demande de journal. Vous pouvez utiliser l'ID de journal pour extraire le statut, les détails de la demande de journal et le fichier journal. Si vous spécifiez une propriété non prise en charge pour un type de journal, l'API renvoie une erreur. Si vous n'incluez pas toutes les propriétés prises en charge, les valeurs par défaut sont utilisées pour les propriétés manquantes.
Extraire le journal demandé
Vérifiez le statut d'une demande d'extraction de journal en ajoutant le paramètre log_id à l'appel GET :
GET /instance/services/logs/8015
Lorsque la demande de journal renvoyée contient le statut "available", vous pouvez utiliser l'appel suivant avec le type de contenu "application/zip" pour extraire le fichier .zip contenant les journaux :
GET /instance/services/logs/8015/file
Supprimer les demandes de journal et les fichiers journaux associés
Supprimez la demande de journal et les fichiers journaux à l'aide de l'appel suivant :
DELETE /instance/services/logs/8015