命令监控
Overview
本指南向您展示如何使用 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 | 命令不成功时创建。 |
示例事件文档
以下部分显示了每种类型的命令监控事件的输出示例。
CommandStartedEvent
*event.CommandStartedEvent { "Command": "...", "DatabaseName": "...", "CommandName": "...", "RequestID": ..., "ConnectionID": "...", "ServerConnectionID": ..., "ServerConnectionID64": ..., "ServiceID": "..." }
CommandSucceededEvent
*event.CommandSucceededEvent { "DurationNanos": 38717583, "Duration": 38717583, "CommandName": "insert", "RequestID": 13, "ConnectionID": "...", "ServerConnectionID": ..., "ServerConnectionID64": ..., "ServiceID": null, "Reply": "..." }
CommandFailedEvent
*event.CommandFailedEvent { "DurationNanos": 38717583, "Duration": 38717583, "CommandName": "insert", "RequestID": 13, "ConnectionID": "...", "ServerConnectionID": ..., "ServerConnectionID64": ..., "ServiceID": null, "Failure": "..." }
更多信息
要了解有关监控 MongoDB 部署的更多信息,请参阅如何监控 MongoDB一文。
要学习;了解有关执行MongoDB操作的更多信息,请参阅 CRUD操作指南。
API 文档
要进一步了解本指南所提及的方法和类型,请参阅以下 API 文档: