워크플로 모니터링

Google Cloud Observability는 모니터링, 로깅, 진단 도구를 제공합니다. 이러한 도구를 사용하면 워크플로 배포 및 실행을 모니터링하고 분석하고 애플리케이션의 동작, 상태, 성능을 파악할 수 있습니다.

기본적으로 Workflows는 다음을 수행하도록 구성됩니다.

  • 데이터 및 시스템 감사 로그를 Cloud Logging으로 전송합니다. 수집된 로그를 사용하여 애플리케이션을 디버깅하고, 문제를 해결하고, 유용한 정보를 얻을 수 있습니다.
  • Cloud Monitoring으로 시스템 및 리소스 측정항목을 전송합니다. 수집된 측정항목을 사용하여 상태와 성능을 모니터링하고, 트렌드와 문제를 식별하고, 동작의 변화에 대해 알림을 받을 수 있습니다.

Cloud Logging으로 감사 로그 전송

Workflows는 다음 유형의 감사 로그 데이터를 Cloud Logging으로 전송합니다.

데이터 액세스 감사 로그는 매우 클 수 있으므로 기본적으로 사용 중지되어 있습니다. 자세한 내용은 데이터 액세스 감사 로그 사용 설정을 참고하세요.

Workflows의 감사 로그에 대한 자세한 내용은 다음을 참고하세요.

실행 로그를 Cloud Logging으로 전송할 수도 있습니다.

Cloud Monitoring으로 측정항목 전송

Workflows는 모니터링 리소스의 측정항목 데이터를 Google Cloud Observability로 전송합니다. Monitoring의 모니터링 리소스는 가상 머신, 데이터베이스, 애플리케이션과 같은 논리적 또는 물리적 항목을 나타냅니다. 모니터링 리소스에는 탐색하거나, 대시보드를 통해 보고하거나, 알림을 만드는 데 사용할 수 있는 고유한 측정항목 집합이 포함되어 있습니다. 각 리소스에는 리소스에 관한 추가 정보를 보유하는 키-값 쌍인 리소스 라벨도 있습니다. 리소스 라벨은 리소스와 연결된 모든 측정항목에 사용할 수 있습니다.

모든 리소스 유형을 보려면 모니터링 리소스 유형을 참고하세요. 모든 측정항목 유형을 보려면 Google Cloud 측정항목을 참고하세요. 워크플로에서 Google Cloud Observability로 전송되는 측정항목 유형 목록을 보려면 다음을 펼치세요.

Workflows 측정항목 유형

이 표의 '측정항목 유형' 문자열 앞에 workflows.googleapis.com/가 포함된 프리픽스를 붙여야 합니다. 표의 항목에서는 이 프리픽스가 생략되었습니다. 라벨을 쿼리할 때 metric.labels. 프리픽스를 사용합니다(예: metric.labels.LABEL="VALUE").

측정항목 유형 실행 단계(리소스 계층 구조 수준)
표시 이름
종류, 유형, 단위
모니터링 리소스
설명
라벨
await_callback_step_count GA(프로젝트)
Await Callback Step Count
DELTAINT641
workflows.googleapis.com/Workflow
콜백을 기다리는 실행된 단계 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
callback_requests_count GA(프로젝트)
콜백 요청 수
DELTAINT641
workflows.googleapis.com/Workflow
콜백을 트리거하기 위해 이루어진 요청 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
callback_timeout_count GA(프로젝트)
콜백 제한 시간 수
DELTAINT641
workflows.googleapis.com/Workflow
시간 초과된 콜백 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
cmek_protected_workflow_count GA(프로젝트)
CMEK 보호 워크플로 수
DELTAINT641
workflows.googleapis.com/Workflow
CMEK 보호로 배포된 워크플로 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
compute_slice_count GA(프로젝트)
Compute Slice Count
DELTAINT641
workflows.googleapis.com/Workflow
실행된 컴퓨팅 슬라이스 수입니다. 단계는 실행되는 단계 유형에 따라 작업 슬라이스로 실행됩니다 (예: HTTP 요청은 '할당' 단계와 별도로 실행됨). 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
type: 계산 슬라이스의 유형입니다(예: 'IO_REQUEST' 또는 'WAKEUP').
has_parallel: (BOOL) 워크플로에서 병렬 단계를 사용하는지 여부입니다.
compute_slice_latencies GA(프로젝트)
Compute Slice Latencies
DELTADISTRIBUTIONms
workflows.googleapis.com/Workflow
컴퓨팅 슬라이스가 예약된 시점부터 실행된 시점까지의 지연 시간입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
type: 계산 슬라이스의 유형입니다(예: 'IO_REQUEST' 또는 'WAKEUP').
has_parallel: (BOOL) 워크플로에서 병렬 단계를 사용하는지 여부입니다.
compute_step_count GA(프로젝트)
계산된 걸음 수
DELTAINT641
workflows.googleapis.com/Workflow
실행된 컴퓨팅 단계 수입니다 (예: '할당' 및 'for' 단계). 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
compute_step_latencies GA(프로젝트)
계산 단계 지연 시간
DELTADISTRIBUTIONms
workflows.googleapis.com/Workflow
실행된 컴퓨팅 단계의 지연 시간입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
create_callback_step_count GA(프로젝트)
콜백 걸음 수 생성
DELTAINT641
workflows.googleapis.com/Workflow
콜백을 만드는 실행된 단계 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
method: 생성된 콜백의 메서드 유형입니다(예: 'POST').
deployment_attempt_count GA(프로젝트)
배포 시도 수
DELTAINT641
workflows.googleapis.com/Workflow
워크플로 배포 시도 횟수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
result: 배포 시도 상태입니다.
deployment_latencies GA(프로젝트)
배포 지연 시간
DELTADISTRIBUTIONms
workflows.googleapis.com/Workflow
워크플로 배포 시도 지연 시간입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
duplicate_event_count GA(프로젝트)
중복 이벤트 수
DELTAINT641
workflows.googleapis.com/Workflow
수신된 중복 이벤트 트리거 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
event_type: 이벤트 유형입니다.
event_time_to_ack_latencies GA(프로젝트)
지연 시간 확인 이벤트 시간
DELTADISTRIBUTIONms
workflows.googleapis.com/Workflow
이벤트가 시작된 시점부터 워크플로 서비스가 이를 확인한 시점까지의 지연 시간입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
event_type: 이벤트 유형입니다.
event_trigger_count GA(프로젝트)
이벤트 트리거 수
DELTAINT641
workflows.googleapis.com/Workflow
수신된 이벤트 트리거 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
event_type: 이벤트 유형입니다.
result: 이벤트 트리거의 결과입니다.
execution_backlog_size GA(프로젝트)
실행 대기열 크기
GAUGEINT641
workflows.googleapis.com/Workflow
아직 시작되지 않은 실행 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
execution_times 베타(프로젝트)
실행 시간
DELTADISTRIBUTIONs
workflows.googleapis.com/Workflow
워크플로 실행 시간의 분포
revision_id: 실행된 워크플로의 버전 ID입니다.
external_step_count 베타(프로젝트)
외부 걸음 수
DELTAINT641
workflows.googleapis.com/Workflow
워크플로에 대해 실행된 외부 단계 수입니다.
finished_execution_count 베타(프로젝트)
실행 완료 수
DELTAINT641
workflows.googleapis.com/Workflow
워크플로의 완료된 실행 횟수입니다.
status: 워크플로의 실행 상태입니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
internal_execution_error_count GA(프로젝트)
내부 실행 오류 수
DELTAINT641
workflows.googleapis.com/Workflow
내부 오류로 실패한 실행 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
internal_step_count 베타(프로젝트)
내부 걸음 수
DELTAINT641
workflows.googleapis.com/Workflow
워크플로에 대해 실행된 내부 단계 수입니다.
io_internal_request_count GA(프로젝트)
IO 내부 요청 수
DELTAINT641
workflows.googleapis.com/Workflow
워크플로에서 Google 서비스에 보낸 I/O 요청 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
service_domain: 호출되는 Google 서비스의 도메인입니다(예: 'bigquery.googleapis.com').
io_step_count GA(프로젝트)
IO 단계 수
DELTAINT641
workflows.googleapis.com/Workflow
실행된 I/O 단계 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
io_result: I/O 단계 결과입니다.
io_step_type: I/O 단계 유형입니다.
destination_type: I/O 단계 대상 유형입니다.
had_system_error: (BOOL) I/O 단계에 시스템 오류가 있는지 여부입니다.
io_step_latencies GA(프로젝트)
IO 단계 지연 시간
DELTADISTRIBUTIONms
workflows.googleapis.com/Workflow
실행된 I/O 단계의 지연 시간입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
io_result: I/O 단계 결과입니다.
io_step_type: I/O 단계 유형입니다.
had_system_error: (BOOL) I/O 단계에 시스템 오류가 있는지 여부입니다.
kms_decrypt_latencies GA(프로젝트)
KMS 복호화 지연 시간
DELTADISTRIBUTIONms
workflows.googleapis.com/Workflow
CMEK용 워크플로별 KMS에 대한 복호화 요청 지연 시간입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
status: 복호화 요청 상태입니다.
attempts: (INT64) 복호화 요청의 시도 횟수입니다.
kms_decrypt_request_count GA(프로젝트)
KMS 복호화 요청 수
DELTAINT641
workflows.googleapis.com/Workflow
서비스에서 CMEK에 대해 실행한 KMS 복호화 요청 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
status: 복호화 요청 상태입니다.
kms_encrypt_latencies GA(프로젝트)
KMS 암호화 지연 시간
DELTADISTRIBUTIONms
workflows.googleapis.com/Workflow
CMEK용 워크플로별 KMS에 대한 암호화 요청 지연 시간입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
status: 암호화 요청의 상태입니다.
attempts: (INT64) 암호화 요청의 시도 횟수입니다.
kms_encrypt_request_count GA(프로젝트)
KMS 암호화 요청 수
DELTAINT641
workflows.googleapis.com/Workflow
서비스에서 CMEK에 대해 실행한 KMS 암호화 요청 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
status: 암호화 요청의 상태입니다.
parallel_branch_step_count GA(프로젝트)
병렬 브랜치 단계 수
DELTAINT641
workflows.googleapis.com/Workflow
병렬 브랜치를 사용하여 실행된 단계 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
parallel_branch_substep_count GA(프로젝트)
병렬 브랜치 하위 단계 수
DELTAINT641
workflows.googleapis.com/Workflow
병렬 브랜치 내에서 실행된 단계 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
parallel_iteration_step_count GA(프로젝트)
병렬 반복 단계 수
DELTAINT641
workflows.googleapis.com/Workflow
동시 반복을 사용하여 실행된 단계 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
parallel_iteration_substep_count GA(프로젝트)
병렬 반복 하위 단계 수
DELTAINT641
workflows.googleapis.com/Workflow
병렬 반복 내에서 실행된 단계 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
parallel_unhandled_exceptions_limit_count GA(프로젝트)
처리되지 않은 동시 예외 한도 수
DELTAINT641
workflows.googleapis.com/Workflow
처리되지 않은 동시 예외 한도에 도달한 횟수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
pending_io_requests GA(프로젝트)
대기 중인 IO 요청
GAUGEINT641
workflows.googleapis.com/Workflow
진행 중인 I/O 요청 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
sent_bytes_count 베타(프로젝트)
전송된 네트워크 바이트 수
DELTAINT64By
workflows.googleapis.com/Workflow
워크플로에서 전송한 발신 HTTP 바이트 (URL, 헤더, 본문) 수입니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
started_execution_count 베타(프로젝트)
시작된 실행 수
DELTAINT641
workflows.googleapis.com/Workflow
워크플로의 시작된 실행 수입니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
started_vpcsc_executions_count GA(프로젝트)
시작된 VPC-SC 실행 수
DELTAINT641
workflows.googleapis.com/Workflow
시작된 VPC-SC 제한 실행 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.
vpcsc_protected_io_count GA(프로젝트)
VPC-SC 보호 IO 수
DELTAINT641
workflows.googleapis.com/Workflow
VPC-SC를 사용하여 이루어진 I/O 요청 수입니다. 60초마다 샘플링됩니다. 샘플링되면 데이터는 최대 120초 동안 표시되지 않습니다.
revision_id: 실행된 워크플로의 버전 ID입니다.

2024년 12월 5일 22:01:39(UTC)에 생성된 표입니다.

측정항목 데이터 읽기

Cloud Monitoring API의 timeSeries.list 메서드를 사용하여 시계열 데이터라고도 하는 측정항목 데이터를 읽을 수 있습니다. 언어별 클라이언트 라이브러리를 사용하거나 측정항목 탐색기로 차트를 만드는 등 메서드를 호출하는 방법에는 여러 가지가 있습니다.양식 기반 API 탐색기를 사용하여 timeSeries.list 메서드를 사용해 볼 수도 있습니다. 측정항목 및 시계열에 대한 소개는 측정항목, 시계열, 리소스를 참고하세요. 측정항목 데이터를 읽는 방법을 알아보려면 시계열 데이터 검색을 참고하세요.

할당량 측정항목 모니터링

다음 예에서는 API 탐색기를 사용하여 워크플로의 총 소비된 할당량 할당을 쿼리하는 방법을 보여줍니다. 특히 Consumer Quota 리소스 유형에서 serviceruntime.googleapis.com/quota/allocation/usage 측정항목을 사용합니다. 추가 라벨 필터 (service, quota_metric)를 설정하여 할당량 유형을 지정할 수 있습니다. 추가 예시와 알림 정책을 만드는 방법을 비롯하여 할당량 측정항목을 모니터링하는 방법에 관한 자세한 내용은 할당량 측정항목 차트 생성 및 모니터링을 참고하세요.

  1. timeSeries.list 참조 페이지를 엽니다.

  2. 이 방법 사용해 보기 창이 표시되지 않으면 사용해 보기를 클릭합니다.

  3. 이름 필드에 다음 형식을 사용하여 Google Cloud 프로젝트 ID를 입력합니다.

    projects/PROJECT_ID
    
  4. filter 필드에서 단일 측정항목 유형을 지정하고 원하는 경우 측정항목 라벨 및 기타 정보를 지정합니다. 예를 들면 다음과 같습니다.

    metric.type = "serviceruntime.googleapis.com/quota/allocation/usage" AND resource.labels.service = "workflowexecutions.googleapis.com"
    
  5. interval.endTime 필드에 반환되는 데이터 양을 제한하고 사용량에 적용되는 종료 시간을 입력합니다. RFC 3339 문자열 형식이어야 합니다(예: 2024-11-07T03:01:02Z).

  6. interval.startTime 필드에 반환되는 데이터 양을 제한하고 사용량에 적용되는 시작 시간을 입력합니다. RFC 3339 문자열 형식이어야 합니다(예: 2024-11-07T03:01:00Z).

  7. 실행을 클릭합니다.

    결과는 다음과 비슷하며 350동시 실행 할당량 측정항목을 나타냅니다.

    {
    "timeSeries": [
       {
          "metric": {
          "labels": {
             "quota_metric": "workflowexecutions.googleapis.com/concurrency"
          },
          "type": "serviceruntime.googleapis.com/quota/allocation/usage"
          },
          "resource": {
          "type": "consumer_quota",
          "labels": {
             "service": "workflowexecutions.googleapis.com",
             "project_id": "PROJECT_ID",
             "location": "europe-west1"
          }
          },
          "metricKind": "GAUGE",
          "valueType": "INT64",
          "points": [
          {
             "interval": {
                "startTime": "2024-11-07T03:01:02Z",
                "endTime": "2024-11-07T03:01:02Z"
             },
             "value": {
                "int64Value": "350"
             }
          }
          ]
       }
    
  8. 접힌 API 탐색기 측면 패널에서 전체 화면 을 클릭하여 API 탐색기를 펼칠 수 있습니다. 전체 화면 패널에는 코드 샘플, application/json 응답, 원시 HTTP 응답이 포함된 추가 창이 표시됩니다. 예를 들어 이 경우 다음과 유사한 curl 명령어를 볼 수 있습니다.

    curl \
    'https://monitoring.googleapis.com/v3/projects/PROJECT_ID/timeSeries?filter=metric.type%20%3D%20%22serviceruntime.googleapis.com%2Fquota%2Fallocation%2Fusage%22%20AND%20resource.labels.service%20%3D%20%22workflowexecutions.googleapis.com%22&interval.endTime=2024-11-07T03%3A01%3A02Z&interval.startTime=2024-11-07T03%3A01%3A00Z&key=YOUR_API_KEY' \
       --header 'Authorization: Bearer YOUR_ACCESS_TOKEN' \
       --header 'Accept: application/json' \
       --compressed
    

Monitoring 대시보드 및 알림 사용

Monitoring 대시보드 및 관련 차트를 사용하여 워크플로 측정항목에 대한 데이터를 시각화할 수 있습니다.

Monitoring에서 이러한 측정항목을 모니터링하려면 커스텀 대시보드를 만듭니다. 이러한 측정항목을 기반으로 알림을 추가할 수도 있습니다.

다음 단계