Transférer des journaux serverless vers les volumes Unity Catalog

L’acheminement des journaux serverless consigne les journaux d’application issus de jobs serverless dans un volume du catalogue Unity. Les administrateurs d’espace de travail configurent une destination pour l’espace de travail afin que les équipes puissent conserver les journaux et les traiter avec leurs outils d’observabilité. Les journaux sont livrés de manière asynchrone après l’achèvement de la tâche. La distribution peut prendre plusieurs minutes et varie selon le temps de traitement et de téléchargement.

Important

Cette fonctionnalité est en version bêta. Pour l’utiliser, un administrateur d’espace de travail doit activer la livraison de journaux Serverless vers les volumes du catalogue Unity depuis la page des Previews . Consultez Gérer les préversions d’Azure Databricks.

Conditions requises

  • Un espace de travail avec le calcul serverless et le catalogue Unity activés.
  • Environnement serverless version 5 ou ultérieure.
  • Le rôle d’administrateur de l’espace de travail permettant de configurer la livraison des journaux. Consultez Attribuer le rôle d’administrateur de l’espace de travail à un utilisateur.
  • L’aperçu de la livraison de journaux sans serveur vers les volumes du catalogue Unity est activé pour l’espace de travail. Il se peut qu’il soit déjà activé. Si elle est désactivée, un administrateur de l’espace de travail peut l’activer sur la page des Aperçus. Activer l’aperçu rend la configuration disponible ; elle ne démarre pas la diffusion.
  • Un volume de destination. L’administrateur qui configure la livraison a besoin de USE CATALOG sur son catalogue, de USE SCHEMA sur son schéma, et de READ VOLUME et WRITE VOLUME sur le volume. Consultez les privilèges des volumes du catalogue Unity.

Note

Configurez la livraison uniquement vers un volume approuvé avec un accès restreint. Les journaux livrés peuvent contenir des informations sensibles, y compris des emails utilisateurs, des chemins de stockage, des traces de pile, des identifiants internes et des URL signées temporaires. Les journaux ne sont pas garantis d’être exempts de secrets.

Les utilisateurs ayant accès à la destination peuvent lire les journaux livrés, y compris ceux des tâches d’autres utilisateurs. Limitez l’accès au volume en conséquence.

Activer la livraison de logs

Un administrateur d’espace de travail doit activer le transfert des journaux pour l’espace de travail.

  1. Ouvrez les paramètres depuis le menu utilisateur.
  2. Sous Admin de l’espace de travail, cliquez sur Calcul.
  3. Dans la section Livraison de journaux, activez Livraison de journaux Serverless.
  4. Dans Configurer la livraison des journaux, saisissez un chemin de volume, comme /Volumes/observability/production/serverless_logs, ou cliquez sur l’icône de dossier pour parcourir les volumes.
  5. Cliquez sur Enregistrer. Sauvegarder la destination permet la distribution.

Le paramètre s’applique au niveau de l’espace de travail. Vous n’avez pas besoin de configurer chaque tâche séparément.

Lire les logs transmis

La sortie de l’application inclut la sortie standard et l’erreur standard du code utilisateur, y compris les fonctions définies par l’utilisateur (UDF). Utilisez l’Explorateur de catalogue pour parcourir le volume de destination et inspecter les fichiers livrés. Consultez Utiliser des fichiers dans les volumes de Unity Catalog.

La livraison des logs ne fournit pas de métriques de cluster ni de profils de requête. Utilisez la page d’exécution du travail pour examiner l’état et les performances des exécutions ainsi que les journaux d’application. Consultez Monitor Lakeflow Jobs.

Interroger les journaux livrés avec SQL

Utilisez read_files pour interroger les fichiers texte livrés. Remplacez le chemin du volume dans cet exemple par votre destination. Pour lire les journaux, il vous faut USE CATALOG sur le catalogue, USE SCHEMA sur le schéma et READ VOLUME sur le volume.

Créez une vue temporaire qui extrait les identifiants de tâche et d’exécution du chemin du fichier et conserve chaque ligne de sortie de journal :

CREATE OR REPLACE TEMPORARY VIEW serverless_job_logs AS
SELECT
  regexp_extract(_metadata.file_path, '/job_id=([^/]+)/', 1) AS job_id,
  regexp_extract(_metadata.file_path, '/job_run_id=([^/]+)/', 1) AS job_run_id,
  regexp_extract(_metadata.file_path, '/task_run_id=([^/]+)/', 1) AS task_run_id,
  _metadata.file_name AS file_name,
  value AS log_line
FROM read_files(
  '/Volumes/observability/production/serverless_logs/',
  format => 'text'
);

Trouver des lignes contenant des erreurs dans l’ensemble des exécutions de tâches :

SELECT job_id, job_run_id, task_run_id, file_name, log_line
FROM serverless_job_logs
WHERE log_line LIKE '%ERROR%';

Identifiez les tâches ayant le plus de lignes d’erreur :

SELECT
  job_id,
  count(*) AS error_lines,
  count(DISTINCT job_run_id) AS affected_runs
FROM serverless_job_logs
WHERE log_line LIKE '%ERROR%'
GROUP BY job_id
ORDER BY error_lines DESC;

Ces requêtes recherchent le texte ERRORlittéral . Ajustez le filtre pour qu’il corresponde au format de journalisation de votre application. Consultez read_filesTVF.

Changer la destination ou désactiver la livraison

Pour changer la destination, ouvrez Paramètres > Compute > Livraison des journaux, cliquez sur l’icône du crayon à côté du nom du volume, entrez ou parcourez un nouveau chemin, puis cliquez sur Enregistrer. L’enregistrement d’une destination permet la livraison, y compris lorsque la livraison a été désactivée.

Pour désactiver la diffusion, ouvrez les paramètres > Compute > la diffusion des journaux et désactivez la diffusion des journaux Serverless. Le paramètre conserve la destination pour que vous puissiez activer la distribution à nouveau sans sélectionner un autre volume. La désactivation de la diffusion ne supprime pas les fichiers déjà écrits sur le volume. Gérez l’accès et la conservation de ces fichiers séparément.

Résoudre les problèmes de logs manquants

Si les logs n’apparaissent pas après l’achèvement de la tâche :

  1. Vérifiez que la livraison de journaux Serverless est activée dans Paramètres > Calcul > Livraison de journaux. Activer l’aperçu seul ne lance pas la livraison.
  2. Vérifiez que le volume configuré existe et que l’administrateur qui a configuré la livraison conserve les autorisations requises.
  3. Confirmez que la tâche utilise un calcul sans serveur et produit la sortie de l’application. Prévoyez plusieurs minutes après la fin de la tâche pour la livraison asynchrone. Le délai de traitement et d’envoi peut retarder la livraison.

Pour la livraison classique de journaux de calcul, voir Livraison de journaux de calcul.