文档菜单
文档首页
/ / /
Go 驱动程序
/ /

命令监控

本页内容

  • 概述
  • 订阅事件
  • 事件描述
  • 示例事件文档
  • CommandStartedEvent
  • CommandSucceededEvent
  • CommandFailedEvent
  • 更多信息
  • API 文档

本指南展示了如何使用Go驱动程序监控驱动程序发送到您的MongoDB部署的命令的结果。

您可以在应用程序中使用命令事件的信息来了解查询性能的变化或解决瓶颈。

您可以通过在应用程序中订阅它们来访问有关命令事件的详细信息。以下示例演示了如何通过实例化一个 CommandMonitor 并连接到一个部署来订阅CommandStartedEvent 事件

var eventArray []*event.CommandStartedEvent
cmdMonitor := &event.CommandMonitor{
Started: func(ctx context.Context, e *event.CommandStartedEvent) {
eventArray = append(eventArray, e)
},
}
clientOpts := options.Client().ApplyURI(uri).SetMonitor(cmdMonitor)
client, err := mongo.Connect(context.TODO(), clientOpts)

您可以订阅以下命令监控事件之一或多个

事件名称
描述
CommandStartedEvent
在命令开始时创建。
CommandSucceededEvent
在命令成功时创建。
CommandFailedEvent
在命令未成功时创建。

以下部分显示了每种类型的命令监控事件的示例输出。

*event.CommandStartedEvent
{
"Command": "...",
"DatabaseName": "...",
"CommandName": "...",
"RequestID": ...,
"ConnectionID": "...",
"ServerConnectionID": ...,
"ServerConnectionID64": ...,
"ServiceID": "..."
}
*event.CommandSucceededEvent
{
"DurationNanos": 38717583,
"Duration": 38717583,
"CommandName": "insert",
"RequestID": 13,
"ConnectionID": "...",
"ServerConnectionID": ...,
"ServerConnectionID64": ...,
"ServiceID": null,
"Reply": "..."
}
*event.CommandFailedEvent
{
"DurationNanos": 38717583,
"Duration": 38717583,
"CommandName": "insert",
"RequestID": 13,
"ConnectionID": "...",
"ServerConnectionID": ...,
"ServerConnectionID64": ...,
"ServiceID": null,
"Failure": "..."
}

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

要了解更多关于执行MongoDB操作的信息,请参阅CRUD 操作 指南。

要了解更多关于本指南中提到的方法和类型,请参阅以下API文档

返回

集群监控