Docs Menu
Docs Home
/ / /
C 드라이버
/

클러스터 모니터링

이 페이지의 내용

  • 개요
  • 이벤트 구독
  • 이벤트 설명
  • API 문서

이 가이드 에서는 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#include <stdio.h>
2#include <bson/bson.h>
3#include <mongoc/mongoc.h>
4
5typedef struct {
6 int server_opening_events;
7} stats_t;
8
9static void
10server_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
18int
19main (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
설명

mongoc_apm_server_changed_t

서버 유형이 세컨더리 에서 프라이머리 로 변경되는 등 서버 설명이 변경될 때 생성됩니다.

새 서버 가 토폴로지 에 추가될 때 생성됩니다. 이 SDAM 이벤트 를 구독하는 애플리케이션 예시 는 이 페이지의 이벤트 구독을 참조하세요.

토폴로지 에서 기존 서버 가 제거될 때 생성됩니다.

새 프라이머리 투표 가 있는 경우와 같이 토폴로지 설명이 변경될 때 생성됩니다.

운전자 가 클러스터 에 처음 연결할 때 생성됩니다.

운전자 가 클러스터 에서 연결 해제될 때 생성됩니다.

서버 모니터 가 서버 에 hello 명령을 보낼 때 생성됩니다. 이 조치 을 하트비트라고 합니다.

하트비트가 성공할 때 생성됩니다.

하트비트가 실패할 때 생성됩니다.

각 모니터링 구독자 유형 및 이벤트 메서드에 대한 정보는 API 문서의 애플리케이션 성능 모니터링 섹션에서 확인할 수 있습니다.

이 가이드 에서 설명하는 함수에 대해 학습 보려면 다음 API 설명서를 참조하세요.

돌아가기

애플리케이션 모니터링