이벤트 계약
쿼리가 예상하는 필드
| 필드 | 유형 | 그것이 존재하는 이유 |
|---|---|---|
| timestamp_utc | Timestamp | 잠금 대기가 관찰된 시간입니다. |
| database_name | Utf8 | 승인된 논리적 데이터베이스 이름입니다. |
| blocked_query_fingerprint | Utf8 | 차단된 애플리케이션 작업에 대한 정규화된 레이블입니다. |
| blocking_query_fingerprint | Utf8 | 잠금을 유지하는 작업에 대한 정규화된 레이블입니다. |
| lock_type | Utf8 | 제어된 잠금 카테고리. |
| wait_ms | Float64 | 관찰된 잠금 대기 시간(밀리초)입니다. |
| resolved | Boolean | 차단된 상태로 유지되지 않고 대기가 종료되었는지 여부입니다. |
| deadlock_detected | Boolean | 데이터베이스가 교착 상태 결과를 보고했는지 여부입니다. |
| transaction_id | Utf8 | 애플리케이션 안전 트랜잭션 식별자입니다. |
| environment | Utf8 | 배포 환경. |
DataFusion SQL
쿼리 복사
sql
SELECT
database_name,
blocked_query_fingerprint,
blocking_query_fingerprint,
COUNT(*) AS lock_wait_incidents,
COUNT(DISTINCT transaction_id) AS affected_transactions,
AVG(wait_ms) AS average_wait_ms,
MAX(wait_ms) AS maximum_wait_ms,
SUM(CASE WHEN NOT resolved THEN 1 ELSE 0 END) AS unresolved_incidents,
SUM(CASE WHEN deadlock_detected THEN 1 ELSE 0 END) AS deadlocks
FROM database_lock_wait_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
AND environment = 'production'
GROUP BY
database_name,
blocked_query_fingerprint,
blocking_query_fingerprint
HAVING COUNT(*) >= 3
ORDER BY deadlocks DESC, maximum_wait_ms DESC;이 읽기 전용 쿼리는 빈 유형의 테이블에 대해 계획되고 실행됩니다. 아파치 DataFusion 45.2.0. 결정론적 샘플 출력은 합성되어 별도로 검토됩니다. 자신의 데이터에 대해 필드 유형, 임계값 및 비즈니스 정의를 검증합니다. 테스트 방법론을 읽어보세요.
쿼리 결과
차단된 작업에 의한 최대 잠금 대기
주문 업데이트에는 더 긴 대기 시간, 해결되지 않은 사건, 감지된 교착 상태가 표시됩니다.
UPDATE orders SET status = ?
3,200 ms
comparison 2 ms
REFRESH customer_summary
700 ms
comparison 0 ms
| database_name | blocked_query_fingerprint | blocking_query_fingerprint | lock_wait_incidents | affected_transactions | average_wait_ms | maximum_wait_ms | unresolved_incidents | deadlocks |
|---|---|---|---|---|---|---|---|---|
| app_production | UPDATE orders SET status = ? | SELECT order FOR UPDATE | 8 | 8 | 1,600 | 3,200 | 2 | 2 |
| analytics_production | REFRESH customer_summary | INSERT customer_event | 6 | 6 | 500 | 700 | 0 | 0 |
합성 예제 출력. 운영 결정에 사용하기 전에 자체 이벤트 스키마 및 임계값에 대해 쿼리를 실행하세요.
예제 재현
공공 픽스처 다운로드
JSON 번들은 타입이 지정된 이벤트 계약을 포함합니다. reproducible 입력 행, 정확한 SQL, 예상 출력, 검토 참고 사항 및 엔진 버전. CSV에는 표시된 결과가 포함됩니다.
SQL 작동 방식
- 1차단 및 차단 지문은 매개변수화된 SQL을 수집하지 않고도 경합 관계를 가시적으로 유지합니다.
- 2고유한 트랜잭션 수는 동일한 대기의 반복된 샘플로부터 결과를 보호합니다.
- 3교착 상태 및 해결되지 않은 사고는 단순히 높은 평균 대기 시간보다 우선순위가 높습니다.
결정해야 할 극단적인 경우
- 폴링은 하나의 사건에 대해 여러 가지 관찰을 내보낼 수 있습니다. 거래 또는 사건 식별자를 보존합니다.
- 데이터베이스 잠금 보기는 민감한 명령문 텍스트를 노출할 수 있습니다. 이벤트를 발생시키기 전에 수집 시 정규화합니다.
- 예상되는 유지 관리 잠금은 분할될 수 있도록 승인된 워크로드 범주를 포함해야 합니다.
추천 대시보드
- 바: maximum_wait_ms by blocked_query_fingerprint
- 테이블: 차단자와 차단된 작업의 지문 쌍
- 통계: 해결되지 않은 사건 및 교착 상태
레시피를 활용해 보세요
관련 계측 및 가이드
분석 계속하기
실제 이벤트에서 실행
테이블을 만들고, 필드를 조정하고, 결과를 저장하세요.
무료로 시작하고, 구조화된 이벤트를 보내고, 쿼리 결과를 차트, 공유 대시보드 위젯 또는 알림 입력으로 사용하세요.