콘텐츠로 건너뛰기
Telemetry
구조화된 이벤트 SQL 레시피

상호 연관된 워크플로우 타임라인 재구성

공유 워크플로 식별자에서 정렬된 서비스 간 워크플로 단계와 경과 시간을 재구성합니다.

고급workflow_timeline_events검토됨 2026-07-28테스트됨 아파치 DataFusion 45.2.0

검토자 Telemetry 제품 팀 . SQL 호환성, 이벤트 계약, 합성 출력 및 운영상의 주의사항. 표준 및 소유권 검토

질문에 답변됨

최근 실패한 워크플로에서 순서대로 어떤 일이 발생했나요?

실패한 워크플로는 종종 API, 대기열, 작업자 및 외부 종속성을 교차합니다. 이 쿼리는 최근에 실패한 워크플로를 선택하고 시작 시간을 찾은 다음 하나의 경과 시간 축에서 상관 관계가 있는 모든 이벤트의 순서를 지정합니다.

이벤트 계약

쿼리가 예상하는 필드

필드유형그것이 존재하는 이유
timestamp_utcTimestampUTC 기준의 이벤트 시간입니다.
workflow_idUtf8워크플로 단계 전반에 걸쳐 공유되는 식별자입니다.
event_nameUtf8제한된 수명주기 이벤트 이름입니다.
statusUtf8괜찮거나 실패했습니다.
serviceUtf8이벤트를 내보낸 서비스입니다.
correlation_idUtf8선택적 요청-워크플로 상관 식별자입니다.
environmentUtf8배포 환경.
DataFusion SQL

쿼리 복사

sql
WITH target_workflow AS (
  SELECT workflow_id
  FROM workflow_timeline_events
  WHERE timestamp_utc >= now() - INTERVAL '24 hours'
    AND environment = 'production'
    AND status = 'failed'
  ORDER BY timestamp_utc DESC
  LIMIT 1
),
workflow_start AS (
  SELECT
    events.workflow_id,
    MIN(events.timestamp_utc) AS started_at
  FROM workflow_timeline_events AS events
  JOIN target_workflow AS target
    ON target.workflow_id = events.workflow_id
  GROUP BY events.workflow_id
)
SELECT
  events.workflow_id,
  ROW_NUMBER() OVER (
    PARTITION BY events.workflow_id
    ORDER BY events.timestamp_utc, events.event_name
  ) AS step_number,
  events.event_name,
  events.service,
  events.status,
  date_part('epoch', events.timestamp_utc - starts.started_at)
    AS elapsed_seconds
FROM workflow_timeline_events AS events
JOIN workflow_start AS starts
  ON starts.workflow_id = events.workflow_id
ORDER BY events.workflow_id, step_number;

이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.

쿼리 결과

실패한 워크플로 이벤트 타임라인

결제와 재고가 모두 성공한 후 워크플로가 시작된 지 47초 후에 배송 생성이 실패합니다.

workflow_idstep_numberevent_nameservicestatuselapsed_seconds
workflow_10241workflow_startedcheckout-apiok0
workflow_10242payment_authorizedcheckout-apiok8
workflow_10243inventory_reservedfulfillment-workerok21
workflow_10244shipment_createdfulfillment-workerfailed47

합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.

Failed workflow event timeline: Reconstruct a Correlated Workflow Timeline 예제 결과의 합성 elapsed_seconds 값에 대한 정적 차트
결정론적 예제 출력의 색인 생성 가능한 SVG입니다. 기사, 런북 또는 저작자가 포함된 디자인 검토를 위해 다운로드하세요.

예제 재현

공공 픽스처 다운로드

JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. reproducible 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.

SQL 작동 방식

  1. 1대상 CTE는 독립적인 실행을 혼합하는 대신 실패한 워크플로 하나를 선택합니다.
  2. 2워크플로 시작은 서비스 전반에 걸쳐 공통 경과 시간 원본을 제공합니다.
  3. 3ROW_NUMBER는 상태 및 서비스 필드가 디버깅 컨텍스트를 유지하는 동안 사람이 읽을 수 있는 단계 시퀀스를 생성합니다.

결정해야 할 극단적인 경우

  • 충돌 방지 워크플로우 식별자와 그것이 전파되는 문서를 사용하십시오.
  • 늦거나 시간이 왜곡되는 이벤트에는 보조 순서 필드로 수집 시간이 필요할 수 있습니다.
  • 대용량 워크플로에는 제한된 이벤트 이름 허용 목록 또는 추적 샘플링이 필요할 수 있습니다.

추천 대시보드

  • 타임라인: event_name의 elapsed_seconds 및 서비스
  • 표: 마지막으로 성공한 단계에서 실패한 워크플로
  • 링크: workflow_id로 필터링된 이벤트 세부정보

알림 안내

실패한 비즈니스 이벤트 또는 워크플로 SLO에 대한 알림 상관된 타임라인을 조사 컨텍스트로 사용합니다.

알림 설정 읽기

레시피를 활용해 보세요

관련 계측 및 가이드

분석 계속하기

실제 이벤트에서 실행

테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.

무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.

API 키 받기