Monitoramento de clusters
Visão geral
Este guia mostra como usar o driver C para monitorar eventos de descoberta e monitoramento do servidor (SDAM) em uma instância do MongoDB , conjunto de réplicas ou cluster fragmentado. Esses eventos ocorrem quando há alguma alteração no estado da instância ou cluster MongoDB ao qual você está conectado.
Você pode usar informações sobre eventos SDAM em seu aplicação para entender as alterações do cluster, avaliar a integridade do cluster ou executar o planejamento da capacidade.
Inscrever-se para receber eventos
Você pode acessar detalhes sobre eventos SDAM assinando-os em seu aplicação. Para assinar um evento, defina uma função de chamada de resposta de chamada de monitoramento do desempenho do aplicativo (APM) para lidar com cada tipo de evento que você deseja assinar. Passe um objeto mongoc_apm_callbacks_t
para a função mongoc_client_set_apm_callbacks()
para registrar a lista de chamadas de resposta APM com um cliente.
Este código monitora os eventos de abertura do servidor executando as seguintes ações:
Define uma função de chamada de resposta de chamada APM
server_opening()
Cria um objeto
mongoc_apm_callbacks_t
para armazenar chamadas de respostaChama a função
mongoc_apm_set_server_opening_cb()
, que armazena um ponteiro para a função de chamada de resposta de resposta APM fornecida no objetomongoc_apm_callbacks_t
Chama a função
mongoc_client_set_apm_callbacks()
, que registra a chamada de resposta de resposta no objetomongoc_apm_callbacks_t
com o cliente
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 }
Quando você executa uma operação de banco de dados de dados, o driver estabelece uma nova conexão com o servidor e seu assinante registra o evento de abertura do servidor . O código gera mensagens que se assemelham ao seguinte:
Server opening: <host>:<port number>
Descrições de evento
Você pode se inscrever em eventos SDAM definindo a função de chamada de resposta de resposta APM correspondente. A tabela a seguir fornece o nome de cada evento SDAM , links para a documentação da API do tipo e descreve quando o evento é publicado:
eventType | Descrição |
---|---|
Criado quando a descrição do servidor muda, como o tipo do servidor mudando de secundário para primário. | |
Criado quando um novo servidor é adicionado à topologia. Para um exemplo de aplicação que se inscreve neste evento SDAM, consulte Inscrever-se em eventos nesta página. | |
Criado quando um servidor existente é removido da topologia. | |
Criado quando a descrição da topologia muda, como quando há uma eleição de uma nova primária. | |
Criado quando o driver se conecta pela primeira vez ao cluster. | |
Criado quando o driver se desconecta do cluster. | |
Criado quando o monitor do servidor envia um comando | |
Criado quando a pulsação é bem-sucedida. | |
Criado quando o heartbeat falha. |
Você pode encontrar informações sobre cada tipo de assinante de monitoramento e método de evento em Monitoramento de desempenho do aplicativo da documentação da API.
Documentação da API
Para saber mais sobre as funções discutidas neste guia, consulte a seguinte documentação da API: