클러스터 모니터링
이 페이지의 내용
개요
이 가이드에서는 Rust 드라이버를 사용하여 MongoDB 인스턴스, 복제본 세트 또는 샤드 cluster에서 토폴로지 이벤트를 모니터링하는 방법을 보여줍니다. 연결된 인스턴스 또는 cluster의 상태가 변경될 때 드라이버는 토폴로지 이벤트(서버 검색 및 모니터링(SDAM) 이벤트라고도 함)를 생성합니다.
애플리케이션의 토폴로지 변경 사항에 대한 정보를 사용하거나 cluster 변경 사항을 모니터링하여 애플리케이션에 미치는 영향에 대해 자세히 알아볼 수 있습니다.
이 가이드에는 다음 섹션이 포함되어 있습니다.
이벤트 설명
다음과 같은 SDAM 이벤트를 모니터 할 수 있습니다.
이벤트 이름 | 설명 |
---|---|
복제본 세트 노드가 세컨더리에서 프라이머리로 변경되는 경우와 같이 인스턴스 상태가 변경될 때 생성됩니다. | |
복제본 세트 멤버와 같은 인스턴스에 대한 연결이 열릴 때 생성됩니다. | |
복제본 세트 멤버와 같은 인스턴스에 대한 연결이 닫힐 때 생성됩니다. | |
새 프라이머리가 투표되거나 mongos 프록시 연결이 끊어지는 경우와 같이 토폴로지 설명이 변경될 때 생성됩니다. | |
드라이버가 인스턴스에 연결을 시도하기 전에 생성됩니다. | |
토폴로지의 모든 인스턴스 연결이 닫힌 후에 생성됩니다. | |
드라이버가 인스턴스에 hello 명령을 실행하기 전에 생성됩니다. | |
hello 명령이 MongoDB 인스턴스에서 성공적으로 반환될 때 생성됩니다. | |
MongoDB 인스턴스에 대한 hello 명령이 성공적인 응답을 반환하지 않을 때 생성됩니다. |
이벤트 모니터링 예시
EventHandler
인스턴스 를 sdam_event_handler
클라이언트 옵션의 값으로 할당하여 SDAM 이벤트를 모니터 할 수 있습니다. 모든 SDAM 이벤트를 처리하는 EventHandler
를 구성하려면 callback()
또는 async_callback()
메서드를 사용합니다.
다음 예시 에서는 MongoDB deployment 에 연결하여 클라이언트 에게 SDAM 이벤트를 모니터 하도록 지시하고 각 이벤트 를 출력합니다.
let mut client_options = ClientOptions::parse("<connection string>").await?; client_options.sdam_event_handler = Some(EventHandler::callback(|ev| println!("{:?}", ev))); let client = Client::with_options(client_options)?; // ... perform actions with the client to generate events
이벤트 문서 예시
다음 섹션에서는 각 유형의 SDAM 이벤트에 대한 샘플 출력을 보여줍니다.
ServerDescriptionChangedEvent
ServerDescriptionChangedEvent { address: ..., topology_id: ..., previous_description: ..., new_description: ..., }
ServerOpeningEvent
ServerOpeningEvent { address: ..., topology_id: ..., }
ServerClosedEvent
ServerClosedEvent { address: ..., topology_id: ..., }
토폴로지 설명 변경 이벤트
TopologyDescriptionChangedEvent { topology_id: ..., previous_description: ..., new_description: ..., }
토폴로지OpeningEvent
TopologyOpeningEvent { topology_id: ..., }
토폴로지 닫힘 이벤트
TopologyClosedEvent { topology_id: ..., }
ServerHeartbeatStartedEvent
ServerHeartbeatStartedEvent { server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
ServerHeartbeatSucceededEvent
ServerHeartbeatSucceededEvent { duration: ..., reply: ..., server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
ServerHeartbeatFailedEvent
ServerHeartbeatFailedEvent { duration: ..., failure: ..., server_address: ..., awaited: false, driver_connection_id: 12, server_connection_id: ..., }
추가 정보
MongoDB 배포 모니터링에 대해 자세히 알아보려면 MongoDB를 모니터링하는 방법 문서를 참조하세요.
MongoDB 연결에 학습 보려면 연결 가이드를 참조하세요.
API 문서
이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.