명령 모니터링
이 페이지의 내용
개요
이 가이드에서는 Go 드라이버를 사용하여 드라이버가 MongoDB deployment로 전송하는 명령의 결과를 모니터링하는 방법을 보여 줍니다.
애플리케이션의 명령 이벤트에 대한 정보를 사용하여 쿼리 성능의 변화를 이해하거나 병목 현상을 해결할 수 있습니다.
이벤트 구독
애플리케이션에서 명령 이벤트를 구독하여 해당 이벤트에 대한 세부 정보에 액세스할 수 있습니다. 다음 예제에서는 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 문서를 참조하세요.