命令监控
概述
本指南展示了如何使用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 文档
要了解更多关于本指南中提到的方法和类型,请参阅以下API文档