이벤트 계약
쿼리가 예상하는 필드
| 필드 | 유형 | 그것이 존재하는 이유 |
|---|---|---|
| timestamp_utc | Timestamp | UTC 기준 터미널 거래 시간입니다. |
| transaction_id | Utf8 | 하나의 논리적 트랜잭션에 대한 애플리케이션 생성 식별자입니다. |
| service | Utf8 | 트랜잭션을 소유한 애플리케이션 또는 작업자입니다. |
| database_name | Utf8 | 승인된 논리적 데이터베이스 이름입니다. |
| status | Utf8 | 커밋 또는 rolled_back. |
| error_type | Utf8 | 교착 상태 또는 serialization_failure와 같은 제어된 롤백 범주입니다. |
| duration_ms | Float64 | 엔드투엔드 논리적 트랜잭션 기간. |
| account_id | Utf8 | 영향 분석에 사용되는 승인된 고객 또는 테넌트 식별자입니다. |
| environment | Utf8 | 배포 환경. |
DataFusion SQL
쿼리 복사
sql
SELECT
service,
database_name,
COUNT(*) AS transactions,
SUM(CASE WHEN status = 'rolled_back' THEN 1 ELSE 0 END) AS rollbacks,
100.0 * SUM(CASE WHEN status = 'rolled_back' THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS rollback_rate_pct,
COUNT(DISTINCT CASE
WHEN status = 'rolled_back' THEN account_id
ELSE NULL
END) AS affected_accounts,
AVG(duration_ms) AS average_duration_ms
FROM database_transaction_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
AND environment = 'production'
GROUP BY service, database_name
HAVING COUNT(*) >= 10
ORDER BY rollback_rate_pct DESC, transactions DESC;이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.
쿼리 결과
서비스별 거래 롤백 비율
Checkout은 롤백 비율이 가장 높고 영향을 받는 계정 수가 가장 많습니다.
checkout-api
25%
comparison 3%
billing-worker
8.33%
comparison 1%
catalog-api
0%
comparison 0%
| service | database_name | transactions | rollbacks | rollback_rate_pct | affected_accounts | average_duration_ms |
|---|---|---|---|---|---|---|
| checkout-api | app_production | 12 | 3 | 25 | 3 | 290 |
| billing-worker | billing_production | 12 | 1 | 8.33 | 1 | 275 |
| catalog-api | catalog_production | 12 | 0 | 0 | 0 | 107.5 |
합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.
예제 재현
공공 픽스처 다운로드
JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. reproducible 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.
SQL 작동 방식
- 1분자는 모든 재시도가 아니라 터미널 롤백 트랜잭션을 계산합니다.
- 2영향을 받는 계정은 거래 분모를 변경하지 않고 고객 컨텍스트를 추가합니다.
- 3예상되는 직렬화 재시도와 애플리케이션 결함을 구별하려면 제어된 error_type를 별도로 검사해야 합니다.
결정해야 할 극단적인 경우
- 하나의 논리적 작업으로 여러 트랜잭션을 재시도할 수 있습니다. 최종 사용자 결과도 필요한 경우 워크플로 ID를 유지하세요.
- 읽기 전용 트랜잭션은 다른 기준을 가질 수 있으며 관련이 있는 경우 분할되어야 합니다.
- 명령문 매개변수, 연결 문자열 또는 무제한 오류 메시지를 기록하지 마십시오.
추천 대시보드
- 바: 서비스 별 rollback_rate_pct
- 누적 추세: 시간 경과에 따른 커밋 및 롤백
- 표: 릴리스별 error_type 롤백 및 영향을 받는 계정 수
레시피를 활용해 보세요
관련 계측 및 가이드
분석 계속하기
실제 이벤트에서 실행
테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.
무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.