Cloud Logging でのエラーログの表示

このページでは、サポートされているリクエスト タイプについて Google Cloud Observability でログを表示する方法について説明します。

ロギング

次の各リクエストでトリガーされたエラーは、Cloud Logging に記録されます。

Pub/Sub メッセージを Pub/Sub に公開できない場合も、エラーが記録されます。詳細については、Pub/Sub 通知のトラブルシューティングをご覧ください。

ロギングは自動的に行われ、手動で有効にする必要はありません。1 つまたはすべてのモニタリング対象リソースの Cloud Logging を無効にするには、ログの除外をご覧ください。

ログの表示

ログを表示するには、ログ エクスプローラに移動します。

エラー ステータスでオペレーションのログを表示するには、次の手順に従います。

  1. Google Cloud コンソールで、Cloud Healthcare API ブラウザに移動します。

    Cloud Healthcare API ブラウザに移動する

  2. データセットを選択してください。

  3. [オペレーション] タブをクリックします。

  4. オペレーションのリストで、[アクション] リストから [Cloud Logging の詳細を表示する] を選択し、誤ったオペレーションの詳細を表示します。

ログのフィルタリング

データストアのタイプ、リージョン、データセットでログをフィルタリングできます。

たとえば、FHIR ストアのログを表示するには、最初のリストの [ラベルまたはテキスト検索でフィルタ] にある [Healthcare FHIR ストア] をクリックします。リソースタイプで検索することもできます。たとえば、healthcare_dicom_store を検索すると、resource.typehealthcare_dicom_store に設定されたオペレーションについて生成されたすべてのログが表示されます。

ログフィールドには UTF-8 エンコードが適用されます。UTF-8 以外の文字列は、疑問符に置き換えられます。

ログ エクスプローラの詳細については、ログ エクスプローラの使用をご覧ください。

Cloud Logging を使用したエラーイベントの発見

Cloud Logging を使用すると、エラーの原因となっているイベントの監査ログを見つけることもできます。監査ログでエラーイベントを見つける手順は次のとおりです。

  1. Cloud Logging で、原因となっているオペレーションを検索します。

  2. オペレーションのログの詳細を使用して、特定のコマンドを再実行します。

  3. 対応するイベントの監査ログを表示します。監査ログの詳細については、Cloud 監査ログの表示をご覧ください。

ログの内容

Cloud Healthcare API のログエントリには、デバッグ リクエスト用に次のタイプの情報が含まれています。

  • 重大度、プロジェクト ID、プロジェクト番号、タイムスタンプなどの一般情報。
  • jsonPayload には、エントリの実際の本文が含まれます。このフィールドには、エラーコード、エラー メッセージ、インポートがエラーになったソースファイルの名前が含まれます。
  • operation には、エラーが発生したオペレーションのタイプと ID が含まれます。
  • resource には、エラーに関連する場所、データセット、データストアが含まれます。

エラーの数がしきい値を超えると、Cloud Logging に一定数のエラーが表示されます。しきい値は、入力数に基づいて動的に計算されます。

ログの保存場所

Google Cloud Observability はリージョン別のプロダクトではありません。Google Cloud Observability に書き込まれたログは、データストアとは異なるリージョンに保存できます。

DICOM インポートログ エントリの例

次のサンプルログ エントリは、gs://DICOM_FILENAME.dcmprojects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/dicomStores/DICOM_STORE_ID にインポートしようとしたときに発生した empty DICOM instance found エラーを示しています。

 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"

FHIR インポートログ エントリの例

次のサンプルログ エントリは、gs://FHIR_FILENAME.ndjsonprojects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/fhirStore/FHIR_STORE_ID にインポートしようとしたときに発生した cannot import resource エラーを示しています。

 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"

アノテーション インポート ログエントリの例

次のサンプルログ エントリは、gs://ANNOTATION_FILE.jsonprojects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/annotationStores/ANNOTATION_STORE_ID にインポートしようとしたときに発生した failed to parse Cloud Storage object エラーを示しています。

jsonPayload: {
  @type:
  "type.googleapis.com/google.cloud.healthcare.logging.ImportAnnotationLogEntry"
  error: {
    code:  3
    message:  "failed to parse Cloud Storage object"
  }
  source:  "gs://ANNOTATION_FILE.json"
}
logName:
"projects/PROJECT_ID/logs/healthcare.googleapis.com%2Fimport_annotations"
operation: {
  id:
  "projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID/operations/OPERATION_ID"
  producer:  "healthcare.googleapis.com/ImportAnnotations"
}
receiveTimestamp:  "TIMESTAMP"
resource: {
  labels: {
    annotation_store_id:  "ANNOTATION_STORE_ID"
    dataset_id:  "DATASET_ID"
    location:  "LOCATION"
    project_id:  "PROJECT_ID"
  }
  type:  "healthcare_annotation_store"
}
severity:  "ERROR"
timestamp:  "TIMESTAMP"

DICOM 匿名化ログ エントリの例

次のサンプルログエントリは、データセット projects/PROJECT_ID/locations/LOCATION/datasets/DATASET_ID の DICOM インスタンス INSTANCE_ID を匿名化しようとしたときに発生した cannot de-identify dicom instance エラーを示しています。

 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"

次のステップ