클러스터 모니터링
개요
이 가이드 에서는 C 운전자 를 사용하여 MongoDB 인스턴스, 복제본 세트 또는 샤딩된 클러스터 에서 서버 검색 및 모니터 (SDAM) 이벤트를 모니터링 하는 방법을 보여줍니다. 이러한 이벤트는 연결된 MongoDB 인스턴스 또는 클러스터 의 상태 가 변경될 때 발생합니다.
애플리케이션 의 SDAM 이벤트에 대한 정보를 사용하여 클러스터 변경 사항을 이해하거나, 클러스터 상태를 평가하거나, 용량 계획을 수행할 수 있습니다.
이벤트 구독
애플리케이션 에서 SDAM 이벤트를 구독 하면 해당 이벤트에 대한 세부 정보에 액세스 할 수 있습니다. 이벤트 를 구독 하려면 구독 하려는 각 이벤트 유형을 처리하다 하는 APM(애플리케이션 성능 모니터링) 콜백 함수를 정의하세요. mongoc_apm_callbacks_t
객체 를 mongoc_client_set_apm_callbacks()
함수에 전달하여 클라이언트 에 APM 콜백 목록을 등록합니다.
이 코드는 다음 조치를 수행하여 서버 열기 이벤트를 모니터링합니다.
server_opening()
APM 콜백 함수를 정의합니다.콜백을 저장
mongoc_apm_callbacks_t
객체 를 만듭니다.mongoc_apm_callbacks_t
객체 에 제공된 APM 콜백 함수에 대한 포인터를 저장하는mongoc_apm_set_server_opening_cb()
함수를 호출합니다.mongoc_apm_callbacks_t
객체 의 콜백 을 클라이언트 에 등록하는mongoc_client_set_apm_callbacks()
함수를 호출합니다.
1 2 3 4 5 typedef struct { 6 int server_opening_events; 7 } stats_t; 8 9 static void 10 server_opening (const mongoc_apm_server_opening_t *event) 11 { 12 stats_t *stats = (stats_t *) mongoc_apm_server_opening_get_context (event); 13 stats->server_opening_events += 1; 14 15 printf ("Server opening: %s\n", mongoc_apm_server_opening_get_host (event)->host_and_port); 16 } 17 18 int 19 main (void) 20 { 21 mongoc_init (); 22 23 stats_t stats = {0}; 24 25 mongoc_client_t *client = mongoc_client_new ("<connection string URI>"); 26 27 { 28 mongoc_apm_callbacks_t *cbs = mongoc_apm_callbacks_new (); 29 mongoc_apm_set_server_opening_cb (cbs, server_opening); 30 mongoc_client_set_apm_callbacks (client, cbs, &stats); 31 mongoc_apm_callbacks_destroy (cbs); 32 } 33 34 // Perform database operations 35 36 mongoc_client_destroy (client); 37 38 printf ("Observed %d server opening events\n", stats.server_opening_events); 39 40 mongoc_cleanup (); 41 42 return EXIT_SUCCESS; 43 }
데이터베이스 작업을 수행할 때 운전자 는 서버 에 대한 새 연결을 설정하고 구독자는 서버 열기 이벤트 를 기록합니다. 이 코드는 다음과 유사한 메시지를 출력합니다.
Server opening: <host>:<port number>
이벤트 설명
해당 APM 콜백 함수를 정의하여 SDAM 이벤트를 구독 할 수 있습니다. 다음 표에서는 각 SDAM 이벤트 의 이름, 해당 유형의 API 문서 링크, 이벤트 게시 시기를 설명합니다.
eventType | 설명 |
---|---|
서버 유형이 세컨더리 에서 프라이머리 로 변경되는 등 서버 설명이 변경될 때 생성됩니다. | |
새 서버 가 토폴로지 에 추가될 때 생성됩니다. 이 SDAM 이벤트 를 구독하는 애플리케이션 예시 는 이 페이지의 이벤트 구독하기를 참조하세요. | |
토폴로지 에서 기존 서버 가 제거될 때 생성됩니다. | |
새 프라이머리 투표 가 있는 경우와 같이 토폴로지 설명이 변경될 때 생성됩니다. | |
운전자 가 클러스터 에 처음 연결할 때 생성됩니다. | |
운전자 가 클러스터 에서 연결 해제될 때 생성됩니다. | |
서버 모니터 가 서버 에 hello 명령을 보낼 때 생성됩니다. 이 조치 을 하트비트라고 합니다. | |
하트비트가 성공할 때 생성됩니다. | |
하트비트가 실패할 때 생성됩니다. |
각 모니터링 구독자 유형 및 이벤트 메서드에 대한 정보는 API 문서의 애플리케이션 성능 모니터링 섹션에서 확인할 수 있습니다.
API 문서
이 가이드 에서 설명하는 함수에 대해 학습 보려면 다음 API 설명서를 참조하세요.