Acheminer les logs serverless vers des volumes Unity Catalog
La livraison de logs Serverless écrit les logs d’application des jobs serverless dans un volume Unity Catalog. Les administrateurs de workspace configurent une destination pour le workspace afin que les équipes puissent conserver les logs et les traiter avec leurs outils d’observabilité. Les logs sont livrés de manière asynchrone après l’exécution du job. La livraison peut prendre plusieurs minutes et varie en fonction du temps de traitement et d’upload.
Bêta
Cette fonctionnalité est en version bêta. Pour l’utiliser, un administrateur de workspace doit activer la distribution de logs serverless vers des volumes Unity Catalog depuis la page Aperçus . Voir Gérer les aperçus Databricks.
Conditions requises
- Un workspace avec compute serverless et Unity Catalog activés.
- Serverless version d’environnement 5 ou version ultérieure.
- Le rôle d’administrateur de workspace pour configurer la livraison des logs. Voir Attribuer le rôle d’administrateur de workspace à un utilisateur.
- La prévisualisation de la livraison des logs serverless vers les volumes Unity Catalog est activée pour le workspace. Il est peut-être déjà activé. S’il est désactivé, un administrateur de workspace peut l’activer sur la page Aperçus. L’activation de la prévisualisation rend la configuration disponible ; cela ne start pas la livraison.
- Volume de destination. L’administrateur qui configure l’acheminement doit avoir
USE CATALOGsur le catalogue,USE SCHEMAsur le schéma, etREAD VOLUMEetWRITE VOLUMEsur le volume. Voir Privilèges pour les volumes Unity Catalog.
Configurez la distribution uniquement vers un volume approuvé avec un accès restreint. Les logs distribués peuvent contenir des informations sensibles, notamment des e-mails d’utilisateurs, des chemins de stockage, des traces de pile, des identifiants internes et des URL signées temporaires. Il n’est pas garanti que les logs sont dépourvus de secrets.
Les utilisateurs ayant accès à la destination peuvent lire les logs acheminés, y compris les logs des jobs d’autres utilisateurs. Restreignez l’accès au volume en conséquence.
Activer la livraison des journaux
Un administrateur de workspace doit activer l’acheminement des logs pour le workspace.
- Ouvrez Paramètres depuis le menu utilisateur.
- Sous Administrateur du Workspace , cliquez sur Compute .
- Dans la section Livraison des logs , activez la Livraison des logs serverless .
- Dans Configurer l’acheminement des logs , saisissez un chemin de volume , tel que
/Volumes/observability/production/serverless_logs, ou cliquez sur l’icône de dossier pour parcourir les volumes. - Cliquez sur Enregistrer . L’enregistrement de la destination active la distribution.
Le paramètre s'applique au niveau du workspace. Il n'est pas nécessaire de configurer chaque job séparément.
Lire les logs livrés
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. Voir Travailler avec des fichiers dans les volumes Unity Catalog.
La distribution de logs ne fournit pas les métriques de cluster ni les profils de query. Utilisez la page d’exécution du job pour étudier le statut et les performances de l’exécution ainsi que les logs de l’application. Voir Surveiller les Lakeflow Jobs.
Logs de livraison de query avec SQL
Utilisez read_files pour effectuer une query sur les fichiers texte livrés. Remplacez le chemin de volume dans cet exemple par votre destination. Pour lire les Logs, vous devez avoir USE CATALOG sur le catalogue, USE SCHEMA sur le schéma et READ VOLUME sur le volume.
Créer une vue temporaire qui extrait les identifiants de job et d’exécution du chemin de fichier et conserve chaque ligne de sortie de log :
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'
);
Recherchez les lignes contenant des erreurs dans les exécutions de job :
SELECT job_id, job_run_id, task_run_id, file_name, log_line
FROM serverless_job_logs
WHERE log_line LIKE '%ERROR%';
Identifiez les jobs présentant le plus grand nombre 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 queries recherchent le texte littéral ERROR. Ajustez le filtre pour qu'il corresponde au format de journalisation de votre application. Voir read_files fonction table-valued.
Modifier la destination ou désactiver la distribution
Pour modifier la destination, ouvrez Paramètres > Compute > Livraison des logs , cliquez sur l’icône en forme de crayon à côté du nom du volume, saisissez ou recherchez un nouveau chemin, puis cliquez sur Enregistrer . L'enregistrement d'une destination active la livraison, même si elle était désactivée.
Pour désactiver la livraison, ouvrez Paramètres > Compute > Livraison de logs et désactivez Livraison de logs Serverless . Ce paramètre conserve la destination afin que vous puissiez réactiver la livraison sans sélectionner un autre volume. La désactivation de la livraison ne supprime pas les fichiers déjà écrits dans le volume. Gérez l’accès et la conservation de ces fichiers séparément.
Dépanner les logs manquants
Si les logs n’apparaissent pas après l’achèvement du job :
- Vérifiez que la livraison des logs serverless est activée dans Paramètres > Compute > Livraison des logs . L’activation de la préversion ne start pas la livraison en soi.
- Vérifiez que le volume configuré existe et que l’administrateur qui a configuré la livraison possède les autorisations requises.
- Confirmez que le job utilise le compute serverless et produit une sortie d’application. Laissez passer quelques minutes après la fin du job pour la distribution asynchrone. Le temps de traitement et d’upload peut retarder la distribution.
Pour la livraison de logs de compute classique, voir Livraison de logs de compute.