Monitoramento
Visão geral
Nesta página, você pode aprender como configurar o monitoramento no Driver MongoDB .NET/C#. Monitoramento é o processo de coleta de informações sobre o desempenho do seu aplicativo e o uso de recursos durante a execução. Isso pode ajudá-lo a tomar decisões informadas ao projetar e depurar seu aplicação.
O driver fornece informações sobre sua aplicação emitindo eventos. Você pode se inscrever nesses eventos de driver para monitorar seu aplicação.
Observação
Registro de eventos
Esta página explica como monitorar seu aplicação no código. Para saber como registrar essas informações em um registro externo, consulte Registro de registro.
Tipos de evento
O tipo de evento que o driver emite depende da operação que está sendo executada. A tabela a seguir descreve os tipos de eventos que o driver emite:
eventType | Descrição |
---|---|
Eventos de comando | Eventos relacionados aos comandos do banco de dados de dados MongoDB , como Como medida de segurança, o driver redige o conteúdo de alguns eventos de comando. Isso protege as informações confidenciais contidas nesses eventos de comando. |
Eventos de descoberta e monitoramento de servidores (SDAM) | Eventos relacionados a alterações no estado da implantação do MongoDB . |
Eventos do pool de conexões | Eventos relacionados ao pool de conexões mantido pelo driver. |
Para obter uma lista completa de eventos que o driver emite, consulte a documentação da API para o namespace MongoDB .Driver.Core.Events .
Inscrevendo-se em eventos
Para monitorar um evento, você deve assinar um método de ouvinte na sua instância do MongoClient
. As etapas a seguir descrevem como assinar eventos:
Crie um objeto
MongoClientSettings
.Defina a propriedade
ClusterConfigurator
no objetoMongoClientSettings
como uma função lambda que aceita um objetoClusterBuilder
.Na função lambda, chame o método
Subscribe<TEvent>()
no objetoClusterBuilder
para cada evento que você deseja assinar. SubstituaTEvent
pelo tipo de evento . Passe o método do manipulador de evento como argumento para o métodoSubscribe<TEvent>()
.
O exemplo de código a seguir mostra como assinar ClusterOpenedEvent
, ServerHeartbeatSucceededEvent
e ConnectionPoolReadyEvent
. Este exemplo pressupõe que os métodos ClusterEventHandler
, HeartbeatEventHandler
e ConnectionPoolEventHandler
sejam definidos em outras partes do seu código.
var clientSettings = MongoClientSettings.FromConnectionString(MongoConnectionString); clientSettings.ClusterConfigurator = clusterBuilder => { clusterBuilder .Subscribe<ClusterOpenedEvent>(ClusterEventHandler) .Subscribe<ServerHeartbeatSucceededEvent>(HeartbeatEventHandler) .Subscribe<ConnectionPoolReadyEvent>(ConnectionPoolEventHandler); };
Dica
Você pode se inscrever em qualquer número de eventos, e esses eventos podem ser de diferentes tipos.
Documentação da API
Para saber mais sobre os métodos e classes utilizados para monitorar eventos no driver, consulte a seguinte documentação da API: