콘텐츠로 이동

가이드 목록 | 이전: TLS와 WSS | 다음: Core 성능

Raw socket monitoring

이 장의 계약 소유 문서Monitoring이 다룬다. 이 챕터는 연결 상태를 관측하는 방법을 사용법 중심으로 설명한다.

Socket monitor는 data receive 경로를 바꾸지 않고 transport와 protocol event를 제공한다. zlink_socket_monitor_open()으로 monitor를 열고 pull API로 소비한다.

Receive 방식

zlink_socket_monitor_recv()를 직접 호출하거나 monitor를 poller에 등록한다. 기존 event loop가 scheduling을 담당할 때 사용한다.

Poller 기반 pull

하나의 event loop가 scheduling을 소유하면 monitor를 poller에 등록한다. Readiness 뒤 zlink_socket_monitor_recv()로 event를 drain한다. Core에는 monitor callback 등록 경로가 없다.

Snapshot

zlink_monitor_status()는 pending message와 automatic HWM field를 포함한 현재 raw socket state와 진단 counter를 반환한다. Snapshot은 한 시점의 관찰 결과다. 전이 순서가 필요하면 event stream을 사용한다.

종료

zlink_monitor_close()로 monitor를 닫는다. Socket을 닫아도 monitor source가 종료된다. 두 handle을 함께 polling하는 코드는 어느 경로에서든 termination이 반환될 수 있음을 처리해야 한다.

Monitor event에는 application payload나 topology state가 포함되지 않는다.