Cloud Logging에서 오류 로그 보기

이 페이지에서는 지원되는 요청 유형에 대한 Google Cloud의 작업 제품군의 로그를 보는 방법을 설명합니다.

로깅

다음 각 요청에서 트리거된 오류는 Cloud Logging에 기록됩니다.

Pub/Sub 메시지를 Pub/Sub에 게시할 수 없는 경우에도 오류가 기록됩니다. 자세한 내용은 Pub/Sub 알림 문제해결을 참조하세요.

로깅은 자동으로 수행되므로 사용 설정할 필요가 없습니다. 모니터링 리소스 하나 또는 모두에 Cloud Logging을 중지하려면 로그 제외를 참조하세요.

로그 보기

모든 로그를 확인하려면 로그 뷰어로 이동하세요. 오류 상태인 작업의 로그를 보려면 의료 브라우저의 작업 탭에서 작업에 대한 추가 정보 아이콘을 클릭한 다음 Stackdriver에서 세부정보 보기를 클릭합니다.

로그 필터링

저장소 유형(DICOM 또는 FHIR 저장소), 리전, 데이터 세트별로 로그를 필터링할 수 있습니다.

예를 들어 FHIR 저장소의 로그를 보려면 라벨 또는 텍스트 검색 기준 필터링 아래의 첫 번째 목록에서 의료 FHIR 저장소를 클릭합니다. 리소스 유형별로 검색할 수도 있습니다. 예를 들어 healthcare_dicom_store를 검색하면 resource.typehealthcare_dicom_store로 설정된 작업에 대해 생성된 모든 로그가 표시됩니다.

로그 필드에는 UTF-8 인코딩이 적용됩니다. UTF-8 외의 문자는 물음표로 대체됩니다.

로그 뷰어에 대한 자세한 내용은 로그 보기를 참조하세요.

Cloud Logging을 사용하여 오류 이벤트 찾기

Cloud Logging을 사용하여 오류 원인 이벤트의 감사 로그를 찾을 수도 있습니다. 감사 로그에서 오류 이벤트를 찾으려면 다음을 수행합니다.

  1. Cloud Logging에서 발생한 작업을 검색합니다.

  2. 작업의 로그 세부정보를 사용하여 특정 명령어를 다시 실행합니다.

  3. 해당 이벤트의 감사 로그를 확인합니다. 감사 로그에 대한 자세한 내용은 Cloud Audit Logging 보기를 참조하세요.

로깅되는 내용

Cloud Healthcare API 로그 항목에는 다음과 같은 유형의 디버깅 요청 정보가 포함됩니다.

  • 심각도, 프로젝트 ID, 프로젝트 번호, 타임스탬프와 같은 일반 정보
  • jsonPayload에는 항목의 실제 본문이 포함됩니다. 이 필드에는 오류 코드, 오류 메시지, 가져오기에 의해 오류가 트리거된 소스 파일의 이름이 포함됩니다.
  • operation에는 오류가 발생한 작업의 유형과 ID가 포함됩니다.
  • resource에는 오류에 대한 위치, 데이터 세트, DICOM 또는 FHIR 저장소가 포함됩니다.

오류 개수가 임곗값을 초과하면 Cloud Logging에 제한된 수의 오류가 표시됩니다. 임곗값은 입력 크기에 따라 동적으로 계산됩니다.

로그 저장 위치

Google Cloud의 작업 제품군은 지역화된 제품이 아닙니다. Google Cloud의 작업 제품군에 기록된 로그는 DICOM 및 FHIR 저장소와 다른 리전에 저장될 수 있습니다.

샘플 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"

샘플 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"

다음 단계