Afficher les journaux d'erreurs dans Cloud Logging

Cette page explique comment afficher les journaux de la suite d'opérations Google Cloud pour les types de requêtes compatibles.

Logging

Les erreurs déclenchées dans chacune des requêtes suivantes sont consignées dans Cloud Logging.

Les erreurs sont également consignées si un message Pub/Sub ne peut pas être publié sur Pub/Sub. Consultez la section Dépannage des notifications Pub/Sub pour en savoir plus.

La journalisation est automatique et n'a pas besoin d'être activée. Pour désactiver Cloud Logging pour une ou toutes les ressources surveillées, consultez la section Exclusions de journaux.

Afficher les journaux

Pour afficher tous les journaux, accédez à la visionneuse de journaux. Pour afficher les journaux des opérations avec un état d'erreur, cliquez sur l'icône d'informations associé à l'opération sur l'onglet OPÉRATIONS dans le navigateur Healthcare, puis cliquez sur Afficher les détails dans Stackdriver.

Filtrer les journaux

Vous pouvez filtrer les journaux par type de magasin (DICOM ou FHIR), par région, et par ensemble de données.

Par exemple, pour afficher les journaux des magasins FHIR, cliquez sur Magasin FHIR Healthcare dans la première liste sous Filtrer par libellé ou recherche textuelle. Vous pouvez également effectuer une recherche par type de ressource. Par exemple, la recherche de healthcare_dicom_store affiche tous les journaux générés pour les opérations avec resource.type défini sur healthcare_dicom_store.

Le codage UTF-8 est appliqué aux champs de journaux. Les caractères qui ne sont pas au format UTF-8 sont remplacés par des points d'interrogation.

Pour en savoir plus sur la visionneuse de journaux, consultez la section Afficher les journaux.

Rechercher des événements associés à des erreurs à l'aide de Cloud Logging

Vous pouvez également utiliser Cloud Logging pour rechercher le journal d'audit d'un événement à l'origine d'une erreur. Pour trouver un événement d'erreur dans les journaux d'audit, procédez comme suit :

  1. Recherchez l'opération à l'origine de l'erreur dans Cloud Logging.

  2. À l'aide des détails du journal de l'opération, exécutez à nouveau la commande spécifique.

  3. Consultez les journaux d'audit pour l'événement correspondant. Pour en savoir plus sur les journaux d'audit, consultez la section Consulter les journaux d'audit Cloud.

Contenu consigné

Les entrées de journal de l'API Cloud Healthcare contiennent les types d'informations suivants pour les requêtes de débogage :

  • Informations générales, telles que le niveau de gravité, l'ID de projet, le numéro de projet, et l'horodatage.
  • jsonPayload contient le corps réel de l'entrée. Ce champ contient le code d'erreur, le message d'erreur et le nom du fichier source dont l'importation a déclenché l'erreur.
  • operation contient le type et l'ID de l'opération qui a généré l'erreur.
  • resource contient l'emplacement, l'ensemble de données et le magasin DICOM ou FHIR impliqués dans l'erreur.

Si le nombre d'erreurs dépasse un certain seuil, un nombre limité d'erreurs apparaît dans Cloud Logging. Le seuil est calculé de manière dynamique en fonction de la taille de l'entrée.

Emplacement de stockage des journaux

La suite des opérations Google Cloud n'est pas un produit régionalisé. Les journaux écrits dans la suite des opérations Google Cloud peuvent être stockés dans une région différente des magasins DICOM et FHIR.

Exemple d'entrée de journal d'importation DICOM

L'exemple d'entrée de journal suivant affiche une erreur empty DICOM instance found qui s'est produite lors de la tentative d'importation de gs://DICOM_FILENAME.dcm dans projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID.

 jsonPayload: {
  @type:  "type.googleapis.com/google.cloud.healthcare.logging.ImportDicomLogEntry"
  error: {
   code:  3
   message:  "empty DICOM instance found"
  }
  source:  "gs://DICOM_FILENAME.dcm"
 }
 logName:  "projects/PROJECT_ID/logs/healthcare.googleapis.com%2Foperations"
 operation: {
  id:  "PROJECT_ID"
  producer:  "import_dicom"
 }
 receiveTimestamp:  "TIMESTAMP"
 resource: {
  labels: {
   dataset_id:  "DATASET_ID"
   dicom_store_id:  "DICOM_STORE_ID"
   location:  "LOCATION"
   project_id:  "PROJECT_ID"
  }
  type:  "healthcare_dicom_store"
 }
 severity:  "ERROR"
 timestamp:  "TIMESTAMP"

Exemple d'entrée de journal d'importation FHIR

L'exemple d'entrée de journal suivant affiche une erreur cannot import resource qui s'est produite lors de la tentative d'importation de gs://FHIR_FILENAME.ndjson dans projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStore/FHIR_STORE_ID.

 jsonPayload: {
  @type:  "type.googleapis.com/google.cloud.healthcare.logging.ImportFhirLogEntry"
  error: {
   code:  3
   message:  "cannot import resource Patient/PATIENT_ID, conflicting resource already exists"
  }
  source:  "gs://FHIR_FILENAME.ndjson"
 }
 logName:  "projects/PROJECT_ID/logs/healthcare.googleapis.com%2Foperations"
 operation: {
  id:  "PROJECT_ID"
  producer:  "import_fhir"
 }
 receiveTimestamp:  "TIMESTAMP"
 resource: {
  labels: {
   dataset_id:  "DATASET_ID"
   fhir_store_id:  "FHIR_STORE_ID"
   location:  "LOCATION"
   project_id:  "PROJECT_ID"
  }
  type:  "healthcare_fhir_store"
 }
 severity:  "ERROR"
 timestamp:  "TIMESTAMP"

Exemple d'entrée de journal d'anonymisation DICOM

L'exemple d'entrée de journal suivant affiche une erreur cannot de-identify dicom instance qui s'est produite lors de la tentative de suppression de l'identification de l'instance DICOM INSTANCE_ID dans l'ensemble de données projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID.

 jsonPayload: {
  @type:  "type.googleapis.com/google.cloud.healthcare.logging.DeidentifyLogEntry"
  error: {
   code:  2
   message:  "Failed to process instance INSTANCE_ID"
  }
  resourceName:  "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID"
 }
 logName:  "projects/PROJECT_ID/logs/healthcare.googleapis.com%2Fdeidentify_dataset"
 operation: {
  id:  "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
  producer:  "healthcare.googleapis.com/DeidentifyDataset"
 }
 receiveTimestamp:  "TIMESTAMP"
 resource: {
  labels: {
   dataset_id:  "DATASET_ID"
   location:  "LOCATION"
   project_id:  "PROJECT_ID"
  }
  type:  "healthcare_dataset"
 }
 severity:  "ERROR"
 timestamp:  "TIMESTAMP"

Étape suivante