Contrôler l'ingestion de journaux Dataflow

Les filtres d'exclusion vous permettent de contrôler le volume des journaux Dataflow ingérés par Cloud Logging tout en rendant la journalisation détaillée disponible pour le débogage. Vous pouvez utiliser des filtres d'exclusion pour empêcher l'ingestion des entrées de journal correspondantes par Cloud Logging ou le routage vers la destination du récepteur. Créez des filtres d'exclusion à l'aide du langage de requête Logging. Le langage de requête Logging vous permet de spécifier un sous-ensemble parmi toutes les entrées de journal d'une ressource Google Cloud sélectionnée, telle qu'un projet ou un dossier.

En utilisant des filtres d'exclusion, vous pouvez réduire les coûts Cloud Logging engendrés par l'ingestion de journaux Dataflow. Pour en savoir plus sur la tarification de l'ingestion de journaux pour Cloud Logging, consultez la section Synthèse des tarifs de Cloud Logging. Pour en savoir plus sur le fonctionnement des filtres d'exclusion et sur leurs limites, consultez la section Filtres d'exclusion dans la documentation Cloud Logging.

Les tâches Dataflow émettent plusieurs types de journaux. Cette page explique comment filtrer les journaux des tâches Dataflow et les journaux des nœuds de calcul.

Créer des filtres d'exclusion de journaux

Cet exemple crée un filtre d'exclusion sur le récepteur Cloud Logging _Default. Le filtre exclut tous les journaux Dataflow de gravité DEFAULT, DEBUG, INFO et NOTICE d'être ingérés dans Cloud Logging. Les journaux de gravité WARNING, ERROR, CRITICAL, ALERT et EMERGENCY sont toujours capturés. Pour en savoir plus sur les niveaux de journalisation acceptés, consultez la section LogSeverity.

Avant de commencer

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

Autorisations

Pour commencer, vérifiez les points suivants :

  • Vous disposez d'un projet Google Cloud avec des journaux que vous pouvez consulter dans l'explorateur de journaux.

  • Vous disposez de l'un des rôles IAM suivants pour le projet Google Cloud source à partir duquel vous acheminez les journaux.

    • Propriétaire (roles/owner)
    • Administrateur Logging (roles/logging.admin)
    • Rédacteur de configuration des journaux (roles/logging.configWriter)

    Les autorisations contenues dans ces rôles vous permettent de créer, supprimer ou modifier des récepteurs. Pour en savoir plus sur la définition des rôles IAM, consultez le guide du contrôle des accès de Logging.

  • Vous disposez d'une ressource dans une destination compatible ou vous pouvez en créer une.

    Vous devez créer la destination de routage avant le récepteur, via Google Cloud CLI, la console Google Cloud ou les API Google Cloud. Vous pouvez créer la destination dans n'importe quel projet Google Cloud de n'importe quelle organisation. Avant de créer la destination, assurez-vous que le compte de service du récepteur dispose des autorisations d'écriture sur la destination.

Ajouter un filtre d'exclusion

Les étapes suivantes montrent comment ajouter un filtre d'exclusion Cloud Logging à vos journaux Dataflow. Ce filtre d'exclusion sélectionne toutes les entrées de journal Dataflow dont la gravité est DEFAULT, DEBUG, INFO et NOTICE des tâches dont le nom de tâche Dataflow ne se termine pas par La chaîne debug. Le filtre exclut ces journaux de l'ingestion dans le bucket Cloud Logging Default.

  1. Dans la console Google Cloud, accédez à la page Explorateur de journaux :

    Accéder au routeur de journaux

  2. Recherchez la ligne comportant le récepteur _Default, développez l'option Actions, puis cliquez sur Modifier le récepteur.

  3. Dans Choisir des journaux à exclure du récepteur, cliquez sur Ajouter une exclusion dans la section Créer un filtre d'exclusion.

  4. Saisissez un nom pour votre filtre d'exclusion.

  5. Dans la section Créer un filtre d'exclusion, collez le texte suivant dans la zone:

    resource.type="dataflow_step" AND
    labels."dataflow.googleapis.com/job_name"!~".*debug" AND
    severity=(DEFAULT OR DEBUG OR INFO OR NOTICE)
    
    • La première ligne sélectionne toutes les entrées de journal générées par le service Dataflow.
    • La deuxième ligne sélectionne toutes les entrées de journal dont le champ job_name ne se termine pas par la chaîne debug.
    • La troisième ligne sélectionne toutes les entrées de journal avec la gravité DEFAULT, DEBUG, INFO ou NOTICE.
  6. Cliquez sur Mettre à jour le récepteur.

Tester le filtre d'exclusion

Vous pouvez vérifier que le filtre fonctionne correctement en exécutant un exemple de tâche Dataflow, puis en affichant les journaux.

Une fois le job démarré, procédez comme suit pour afficher les journaux de ce job :

  1. Dans la console Google Cloud, accédez à la page Jobs de Dataflow.

    Accédez aux jobs

    Une liste des tâches Dataflow ainsi que leur état respectif apparaissent.

  2. Sélectionnez une tâche.

  3. Sur le panneau Journaux de la page Informations sur la tâche, cliquez sur Afficher.

  4. Vérifier qu'aucun journal n'apparaît dans les Journaux de la tâche et qu'aucun journaux DEFAULT ,DEBUG ,INFO ou NOTICE n'apparaissent dans l'onglet Journaux des nœuds de calcul .

Contourner le filtre d'exclusion

Le nom de la tâche Dataflow (job_name) permet de fournir un mécanisme de contournement pour les scénarios dans lesquels les journaux Dataflow générés doivent être capturés. Vous pouvez utiliser ce contournement pour réexécuter une tâche ayant échoué et capturer toutes les informations de journal.

Le filtre créé dans ce scénario conserve toutes les entrées de journal lorsque le champ job_name se termine par la chaîne debug. Lorsque vous souhaitez contourner le filtre d'exclusion et afficher tous les journaux d'une tâche Dataflow, ajoutez debug au nom de la tâche. Par exemple, pour contourner le filtre d'exclusion, vous pouvez utiliser le nom de tâche dataflow-job-debug.

Comparer le nombre de journaux

Si vous souhaitez comparer le volume de journaux ingérés avec et sans filtre d'exclusion, exécutez une tâche en ajoutant debug à son nom, et une tâche sans. Utilisez la métrique des octets de journaux basée sur les journaux et définie par le système pour afficher et comparer les données d'ingestion. Pour plus d'informations sur l'affichage des données d'ingestion, consultez la section Afficher les données d'ingestion dans l'explorateur de métriques.

Créer une destination externe

Une fois le filtre d'exclusion créé, vous pouvez créer un récepteur Cloud Logging supplémentaire. Utilisez ce récepteur pour rediriger l'ensemble complet des journaux Dataflow vers une destination externe compatible, telle que BigQuery, Pub/Sub ou Splunk.

Dans ce scénario, les journaux externes ne sont pas stockés dans l'explorateur de journaux, mais sont disponibles dans la destination externe. L'utilisation d'une destination externe vous permet de mieux contrôler les coûts engendrés par le stockage des journaux dans l'explorateur de journaux.

Pour connaître la procédure expliquant comment contrôler la manière dont Cloud Logging achemine les journaux, consultez la page Configurer et gérer les récepteurs. Pour capturer tous les journaux Dataflow d'une destination externe, dans l'onglet Sélectionner les journaux à inclure dans le récepteur, saisissez l'expression de filtre suivante dans le champ Créer un filtre d'inclusion :

resource.type="dataflow_step"

Pour trouver les entrées de journal que vous avez acheminées de Cloud Logging vers des destinations compatibles, consultez la section Afficher les journaux dans les destinations de récepteurs.

Suivre les messages de journal Dataflow par gravité

Les filtres d'exclusion ne s'appliquent pas aux métriques basées sur les journaux définies par l'utilisateur. Ces métriques comptabilisent le nombre d'entrées de journal correspondant à un filtre donné ou enregistrent des valeurs particulières dans les entrées de journal correspondantes. Pour suivre le nombre de messages de journal Dataflow en fonction de leur gravité, vous pouvez créer une métrique basée sur les journaux pour les journaux Dataflow. Les journaux sont suivis même lorsque les messages de journal sont exclus de l'ingestion.

Les métriques basées sur les journaux définies par l'utilisateur vous sont facturées. Pour en savoir plus sur les tarifs, consultez la section Métriques facturables.

Pour configurer des métriques basées sur les journaux définies par l'utilisateur, consultez la page Créer une métrique de compteur. Pour suivre les journaux Dataflow, saisissez le texte suivant dans la zone Créer un filtre de la section Sélection du filtre :

resource.type="dataflow_step"