Récupérer des logs de manière périodique pour analyse - Cloud

Guide d'utilisation des API Talend Cloud

Version
Cloud
Language
Français
Product
Talend Cloud
Module
Talend API Designer
Talend API Tester
Talend Data Preparation
Talend Data Stewardship
Talend Management Console
Content
Création et développement > Création d'APIs
Création et développement > Test d'API
Last publication date
2024-02-12

Utilisez l'endpoint /monitoring/executions/{runId}/logs et l'endpoint /monitoring/executions/{runId}/logs/status pour récupérer les logs d'exécution d'une période donnée.

  • Utilisez la méthode POST sur l'endpoint /monitoring/executions/{runId}/logs pour générer le log complet de la période donnée d'une exécution, ainsi que le jeton pour accéder à ce log. Ce jeton est valide une heure après génération.

    Pour assurer la complétude de votre log, vérifiez que l'exécution pour laquelle vous avez besoin du log est terminée et attendez 30 secondes avant d'envoyer l'appel d'API.

  • Utilisez la méthode POST sur l'endpoint /monitoring/executions/{runId}/logs/status pour vérifier si le log est prêt à être téléchargé et générer une URL de téléchargement.

Avant de commencer

  • Générez des jetons d'accès :

    Une fois généré, un jeton de compte de service expire après 30 minutes. S'il expire, générez un nouveau jeton à l'aide de la méthode POST sur l'endpoint https://api.<env>.cloud.talend.com/security/oauth/token. Pour plus d'informations concernant la génération de ce jeton, consultez Générer un jeton de compte de service.

  • L'utilisateur·trice de ce service doit avoir les droits Author, Viewer et Executor pour l'espace de travail auquel appartient la tâche à monitorer.
  • Vous devez connaître l'ID d'exécution de la tâche à monitorer.

    Cet ID est disponible sur la page Task execution log (Log d'exécution de la tâche), sous le nom Task execution ID (ID d'exécution de la tâche). Vous pouvez également obtenir cet ID via un appel GET depuis l'endpoint /processing/executables/tasks/{taskId}/executions.

Pourquoi et quand exécuter cette tâche

Dans cet exemple, Talend API Tester est utilisé pour émettre des requêtes d'API. Pour plus d'informations concernant Talend API Tester, consultez le Guide d'utilisation de Talend Cloud API Tester.

Procédure

  1. Ouvrez Talend API Tester dans votre navigateur et sélectionnez POST dans la liste Method.
  2. Dans le champ près de la liste déroulante Method (Méthode), saisissez l'endpoint à utiliser : https://api.<env>.cloud.talend.com/monitoring/executions/<runId>/logs.
  3. Cliquez sur le bouton Add query parameter (Ajouter un paramètre de requête) pour ajouter les paramètres startTime et endTime. Ces paramètres vous permettent de limiter la requête à une période de vos logs.
    La valeur de la date doit suivre ce format :
    yyyy-mm-ddThh:mm:ssZ
    Par exemple, 2021-09-01T07:01:45Z.
  4. Facultatif : Ajoutez le paramètre fileFormat afin de déterminer le format du fichier de log à générer.
    Les formats disponibles sont
    • json

      C'est aussi le format par défaut.

    • text

      Ce format est lisible par l'humain.

  5. Facultatif : Ajoutez le paramètre newFileName pour indiquer s'il faut inclure les ID de tâches et les ID d'exécution dans le nom du fichier de log à générer.
    Ce paramètre est de type booléen. Configurez-le à true pour inclure ces ID ou à false pour utiliser l'ancien format de nom de fichier. Il est recommandé de configurer cette valeur à true car l'ancien format de nom de fichier va être déprécié.
  6. Dans la zone HEADERS (EN-TÊTES), cliquez sur Add header (Ajouter un en-tête). Dans le champ name (nom) qui s'affiche, saisissez Authorization et dans le champ value (valeur), saisissez Bearer, ainsi que votre jeton d'accès personnel ou le jeton d'accès au compte de service. Saisissez un espace afin de séparer Bearer du jeton.
  7. Vérifiez que l'exécution dont vous souhaitez consulter le log est bien terminée.
  8. Attendez au moins 30 secondes.
    Ignorez cette étape si la fin de l'exécution est survenue plus de 30 secondes auparavant.
  9. Cliquez sur Send pour envoyer votre requête.
    La réponse contient la taille du log complet généré et le jeton pour y accéder. Par exemple :
    {
    "size": the_full_log_size,
    "token": "the_generated_token"
    }
  10. Cliquez sur le bouton Save (Sauvegarder) afin de sauvegarder cette requête dans votre référentiel, dans Talend API Tester. Lorsque vous sauvegardez la requête, vous devez lui donner un nom. Dans cet exemple, la requête est nommée generate-full-log-and-token.
  11. Créez une requête dans Talend API Tester pour émettre un appel POST.
  12. Dans la liste Method (Méthode), sélectionnez POST.
  13. Dans le champ près de la liste déroulante Method (Méthode), saisissez l'endpoint à utiliser : https://api.<env>.cloud.talend.com/monitoring/executions/<runId>/logs/status.
  14. Dans le champ Body (Corps), saisissez le jeton à usage unique obtenu de la requête précédente.

    Exemple

    Dans Talend API Tester, vous pouvez utiliser l'Expression Builder pour saisir une expression, au lieu du jeton statique, pour obtenir dynamiquement le jeton le plus récent généré par la requête précédente. Cette requête doit avoir été sauvegardée dans votre référentiel, dans Talend API Tester. Dans cet exemple, la requête sauvegardée est generate-full-log-and-token.

    Voici un exemple de ce à quoi peut ressembler l'Expression Builder :

  15. Cliquez sur Send pour envoyer votre requête.
    La réponse contient l'URL de téléchargement du log complet généré et le statut indiquant si ce log est prêt à être téléchargé.

    Si le statut indique que le log n'est pas prêt (le statut n'est pas READY), émettez l'appel à nouveau. Lorsque le log est prêt, utilisez l'URL retournée pour le télécharger.

    Par exemple :
    {
    "presignedURL": "URL_to_download_logs",
    "status": "READY"
    }

Résultats

Vous pouvez intégrer ces requêtes d'API dans votre système de monitoring afin de générer et télécharger périodiquement le log complet d'une période donnée à des fins analytiques.

Une seule exécution est utilisée dans ce scénario à des fins de démonstration. Si vous souhaitez analyser toutes les exécutions d'une tâche, vous pouvez utiliser une méthode GET sur l'endpoint suivant, pour obtenir l'ID de ces exécutions :
 https://api.<env>.cloud.talend.com/processing/executables/tasks/{taskId}/executions

Passez ensuite chaque ID dynamiquement aux endpoints /monitoring/executions/{runId}/logs et /monitoring/executions/{runId}/logs/status, afin de préparer les logs à utiliser.

Vous pouvez développer un programme, comme un Job Talend, pour automatiser le processus complet dans votre système de monitoring.