本页面介绍如何在 Google Cloud 的运维套件中查看受支持的请求类型的日志。
日志记录
以下各个请求中触发的错误都会记录到 Cloud Logging 中。
如果 Pub/Sub 消息无法发布到 Pub/Sub,则也会记录错误。如需了解详情,请参阅对 Pub/Sub 通知进行问题排查。
Logging 会自动运行,因此无需启用。如需为一个或所有受监控的资源停用 Cloud Logging,请参阅日志排除。
查看日志
如需查看所有日志,请前往日志浏览器。
如需查看存在错误状态的操作的日志,请按照以下步骤操作:
在 Google Cloud 控制台中,打开 Cloud Healthcare API 浏览器。
选择数据集。
点击操作标签页。
在操作列表中,从操作列表中选择在 Cloud Logging 中查看详情,以查看存在错误的操作的详细信息。
过滤日志
您可以按数据存储区类型、区域和数据集过滤日志。
例如,如需查看 FHIR 存储区的日志,请点击按标签过滤或搜索文字下第一个列表中的 Healthcare FHIR Store。您还可以按资源类型进行搜索。例如,搜索 healthcare_dicom_store
会显示为 resource.type
设置为 healthcare_dicom_store
的操作生成的所有日志。
系统为日志字段强制执行 UTF-8 编码。非 UTF-8 字符将被替换为问号。
如需详细了解日志浏览器,请参阅使用日志浏览器。
使用 Cloud Logging 查找错误事件
您还可以使用 Cloud Logging 查找导致错误的事件的审核日志。如需在审核日志中查找错误事件,请执行以下操作:
在 Cloud Logging 中搜索导致该事件的操作。
使用操作的日志详细信息,重新运行特定命令。
查看相应事件的审核日志。如需详细了解审核日志,请参阅查看 Cloud Audit Logs。
记录的内容
Cloud Healthcare API 日志条目包含以下类型的用于调试请求的信息:
- 一般信息,例如严重性、项目 ID、项目编号和时间戳。
jsonPayload
包含条目的实际正文。此字段包含错误代码、错误消息以及其导入触发了错误的源文件的名称。operation
包含产生错误的操作的类型和 ID。resource
包含错误中涉及的位置、数据集和数据存储区。
如果错误数量超过阈值,则 Cloud Logging 中将显示有限数量的错误。系统会根据输入的大小动态计算阈值。
日志的存储位置
Google Cloud 的运维套件不是地区化产品。写入 Google Cloud 的运维套件的日志可存储在与数据存储区不同的区域。
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"