このページでは、サポートされているリクエスト タイプについて Google Cloud Observability でログを表示する方法について説明します。
ロギング
次の各リクエストでトリガーされたエラーは、Cloud Logging に記録されます。
- DICOM の匿名化
- DICOM のエクスポート
- DICOM のインポート
- データセットの匿名化
- FHIR の匿名化
- FHIR のエクスポート
- FHIR インポート
- HL7v2 エクスポート
- HL7v2 インポート
Pub/Sub メッセージを Pub/Sub に公開できない場合も、エラーが記録されます。詳細については、Pub/Sub 通知のトラブルシューティングをご覧ください。
ロギングは自動的に行われ、手動で有効にする必要はありません。1 つまたはすべてのモニタリング対象リソースの Cloud Logging を無効にするには、ログの除外をご覧ください。
ログの表示
ログを表示するには、ログ エクスプローラに移動します。
エラー ステータスでオペレーションのログを表示するには、次の手順に従います。
Google Cloud コンソールで、Cloud Healthcare API ブラウザに移動します。
データセットを選択してください。
[オペレーション] タブをクリックします。
オペレーションのリストで、[アクション] リストから [Cloud Logging の詳細を表示する] を選択し、誤ったオペレーションの詳細を表示します。
ログのフィルタリング
データストアタイプ、リージョン、データセットでログをフィルタできます。
たとえば、FHIR ストアのログを表示するには、最初のリストの [ラベルまたはテキスト検索でフィルタ] にある [Healthcare FHIR ストア] をクリックします。リソースタイプで検索することもできます。たとえば、healthcare_dicom_store
を検索すると、resource.type
が healthcare_dicom_store
に設定されたオペレーションについて生成されたすべてのログが表示されます。
ログフィールドには UTF-8 エンコードが適用されます。UTF-8 以外の文字列は、疑問符に置き換えられます。
ログ エクスプローラの詳細については、ログ エクスプローラの使用をご覧ください。
Cloud Logging を使用したエラーイベントの発見
Cloud Logging を使用すると、エラーの原因となっているイベントの監査ログを見つけることもできます。監査ログでエラーイベントを見つける手順は次のとおりです。
Cloud Logging で、原因となっているオペレーションを検索します。
オペレーションのログの詳細を使用して、特定のコマンドを再実行します。
対応するイベントの監査ログを表示します。監査ログの詳細については、Cloud 監査ログの表示をご覧ください。
ログの内容
Cloud Healthcare API のログエントリには、デバッグ リクエスト用に次のタイプの情報が含まれています。
- 重大度、プロジェクト ID、プロジェクト番号、タイムスタンプなどの一般情報。
jsonPayload
には、エントリの実際の本文が含まれます。このフィールドには、エラーコード、エラー メッセージ、インポートがエラーになったソースファイルの名前が含まれます。operation
には、エラーが発生したオペレーションのタイプと ID が含まれます。resource
には、エラーに関連する場所、データセット、データストアが含まれます。
エラーの数がしきい値を超えると、Cloud Logging に一定数のエラーが表示されます。しきい値は、入力数に基づいて動的に計算されます。
ログの保存場所
Google Cloud Observability はリージョン別のプロダクトではありません。Google Cloud Observability に書き込まれたログは、データストアとは異なるリージョンに保存できます。
DICOM インポートログ エントリの例
次のサンプルログ エントリは、gs://DICOM_FILENAME.dcm
を projects/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.ndjson
を projects/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.json
を projects/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"