Docs 菜单
Docs 主页
/ / /
Rust 驱动程序
/ /

集群监控

在此页面上

  • Overview
  • 事件描述
  • 事件监控示例
  • 示例事件文档
  • ServerDescriptionChangedEvent
  • ServerOpeningEvent
  • ServerClosedEvent
  • TopologyDescriptionChangedEvent
  • TopologyOpeningEvent
  • TopologyClosedEvent
  • ServerHeartbeatStartedEvent
  • ServerHeartbeatSucceededEvent
  • ServerHeartbeatFailedEvent
  • 更多信息
  • API 文档

本指南向您展示如何使用 Rust 驱动程序监控 MongoDB 实例、副本集或分片集群中的拓扑结构事件。当您连接到的实例或集群的状态发生任何变化时,驱动程序会创建拓扑结构事件,也称为服务器发现和监控 (SDAM) 事件。

您可以使用有关应用程序中拓扑更改的信息,也可以监控集群更改以详细了解它们如何影响应用程序。

本指南包括以下部分:

  • 事件描述描述了驱动程序可以生成的 SDAM 事件。

  • 事件订阅示例提供了示例代码,演示如何订阅 SDAM 事件。

  • 示例事件文档提供了每个 SDAM 事件的示例。

  • 其他信息提供了指向本指南中提及的类型和方法的资源和 API 文档的链接。

您可以监控以下 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

以下部分显示了每种类型的 SDAM 事件的输出示例。

ServerDescriptionChangedEvent {
address: ...,
topology_id: ...,
previous_description: ...,
new_description: ...,
}
ServerOpeningEvent {
address: ...,
topology_id: ...,
}
ServerClosedEvent {
address: ...,
topology_id: ...,
}
TopologyDescriptionChangedEvent {
topology_id: ...,
previous_description: ...,
new_description: ...,
}
TopologyOpeningEvent {
topology_id: ...,
}
TopologyClosedEvent {
topology_id: ...,
}
ServerHeartbeatStartedEvent {
server_address: ...,
awaited: false,
driver_connection_id: 12,
server_connection_id: ...,
}
ServerHeartbeatSucceededEvent {
duration: ...,
reply: ...,
server_address: ...,
awaited: false,
driver_connection_id: 12,
server_connection_id: ...,
}
ServerHeartbeatFailedEvent {
duration: ...,
failure: ...,
server_address: ...,
awaited: false,
driver_connection_id: 12,
server_connection_id: ...,
}

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

要了解有关连接到 MongoDB 的更多信息,请参阅连接指南。

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

后退

监控