Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs 菜单
Docs 主页
/ /

监控应用程序事件

本指南向您展示如何在MongoDB Rust驱动程序中设立和配置监控。

监控收集有关运行的程序的活动的信息,您可以将这些信息与应用程序性能管理库一起使用。

通过监控Rust驾驶员,您可以了解驱动程序的资源使用情况和性能。这些信息可帮助您在设计和调试应用程序时做出明智的决策。

本指南介绍如何执行以下任务:

  • 监控命令事件

  • 监控服务器发现和监控 (SDAM) 事件

  • 监控连接池事件

您可以使用Rust驾驶员监控驾驶员发送到MongoDB 部署的命令的结果。

使用有关应用程序中命令事件的信息,或监控命令以学习;了解有关驾驶员如何执行这些命令的更多信息。

您可以监控以下命令事件:

事件名称
说明

在命令启动时创建。

命令成功时创建。

命令不成功时创建。

通过将 EventHandler实例分配为 command_event_handler客户端选项的值来监控命令事件。要构造处理所有命令事件的 EventHandler,请使用 callback()async_callback() 方法。

以下示例连接到MongoDB 部署,指示客户端监控命令事件,并打印每个事件:

let mut client_options = ClientOptions::parse("<connection string>").await?;
client_options.command_event_handler = Some(EventHandler::callback(|ev| println!("{:?}", ev)));
let client = Client::with_options(client_options)?;
// ... perform actions with the client to generate events

您可以使用Rust驾驶员监控MongoDB实例、副本集或分片集群中的拓扑结构事件。当实例或集群的状态发生变化时,驾驶员会创建拓扑结构事件,也称为服务器发现和监控 (SDAM) 事件。

使用有关应用程序中拓扑结构更改的信息,或监控集群更改以详细学习;了解它们如何影响应用程序。

您可以监控以下 SDAM 事件:

事件名称
说明

当实例状态发生变化时创建,例如当副本集成员从从节点变为主节点时。

在打开与实例(例如副本集成员)的连接时创建。

在与实例(例如副本集成员)的连接关闭时创建。

在拓扑结构发生更改时创建,例如选举新的主节点时或mongos代理断开连接时。

在驱动程序尝试连接到实例之前创建。

在拓扑结构中的所有实例连接关闭后创建。

在驱动程序向实例发出hello命令之前创建。

hello命令从 MongoDB 实例成功返回时创建。

当针对 MongoDB 实例的hello命令未返回成功响应时创建。

通过将 EventHandler实例分配为 sdam_event_handler客户端选项的值来监控 SDAM 事件。要构造处理所有 SDAM 事件的 EventHandler,请使用 callback()async_callback() 方法。

以下示例连接到MongoDB 部署,指示客户端监控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

您可以使用Rust驾驶员来监控驱动程序的连接池。连接池是驾驶员与MongoDB实例维护的一设立开放式传输控制协议 (TCP) 连接。连接池减少了应用程序需要创建的新连接数,从而提高了应用程序的运行速度。

使用有关应用程序中连接池变更的信息,或监控连接池以学习;了解有关驾驶员如何使用连接的更多信息。

您可以监控以下连接池事件:

事件名称
说明

在创建连接池时创建。

当连接池准备就绪时创建。

当连接池被清除时创建。

在销毁服务器实例之前关闭连接池时创建。

在创建连接时创建,但不一定是在用于操作时创建。

在连接成功完成握手并准备好操作后创建。

在连接关闭时创建。

当操作尝试获取用于执行的连接时创建。

当操作无法获取用于执行的连接时创建。

当操作成功获取用于执行的连接时创建。

在执行操作后,当连接被检回连接池时创建。

通过将 EventHandler实例分配为 cmap_event_handler客户端选项的值来监控连接池事件。要构造处理所有连接池事件的 EventHandler,请使用 callback()async_callback() 方法。

以下示例连接到MongoDB 部署,指示客户端监控连接池事件,并打印每个事件:

let mut client_options = ClientOptions::parse("<connection string>").await?;
client_options.cmap_event_handler = Some(EventHandler::callback(|ev| println!("{:?}", ev)));
let client = Client::with_options(client_options)?;
// ... perform actions with the client to generate events

要了解有关监控 MongoDB 部署的更多信息,请参阅如何监控 MongoDB一文。

要学习;了解有关提高应用程序性能的更多信息,请参阅 性能注意事项指南。

要进一步了解本指南所提及的方法和类型,请参阅以下 API 文档:

后退

MongoDB Vector Search

在此页面上