Docs Menu
Docs Home
/ / /
Go 드라이버
/ /

연결 모니터링

이 페이지의 내용

  • 개요
  • 이벤트 구독
  • 이벤트 설명
  • 이벤트 문서 예시
  • connectionPoolCreated
  • connectionPoolReady
  • connectionPoolCleared
  • connectionPoolClosed
  • connectionCreated 이벤트
  • connectionReady
  • 연결종료
  • connectionCheckOutStarted 이벤트
  • connectionCheckOutFailed
  • connectionCheckedOut
  • connectionCheckedIn
  • 추가 정보
  • API 문서

이 가이드에서는 Go 드라이버를 사용하여 드라이버의 연결 풀을 모니터링하는 방법을 보여 줍니다. 연결 풀은 드라이버가 MongoDB 인스턴스를 사용해 유지 관리하는 개방형 전송 제어 프로토콜(TCP) 연결의 집합입니다. 연결 풀은 애플리케이션이 생성해야 하는 새로운 연결 수를 줄이는 데 도움이 되므로 애플리케이션이 더 빠르게 실행될 수 있습니다.

성능을 최적화하거나 클라이언트 수명 주기를 이해하기 위해 애플리케이션의 연결 풀 이벤트에 대한 정보를 사용할 수 있습니다.

애플리케이션에서 연결 풀 이벤트를 구독하여 해당 이벤트에 대한 세부 정보에 액세스할 수 있습니다. 다음 예제에서는 PoolMonitor 를 인스턴스화하고 배포서버에 연결하여 PoolEvent 이벤트를 구독하는 방법을 보여 줍니다.

var eventArray []*event.PoolEvent
cxnMonitor := &event.PoolMonitor{
Started: func(e *event.PoolEvent) {
eventArray = append(eventArray, e)
},
}
clientOpts := options.Client().ApplyURI(uri).SetPoolMonitor(cxnMonitor)
client, err := mongo.Connect(context.TODO(), clientOpts)

다음 표에서는 드라이버가 발생하는 풀 이벤트의 유형에 대해 설명합니다.

풀 이벤트 유형
설명
ConnectionPoolCreated
연결 풀이 생성될 때 생성됩니다.
ConnectionPoolReady
연결 풀이 준비되면 생성됩니다.
ConnectionPoolCleared
풀의 모든 연결이 닫힐 때 생성됩니다.
ConnectionPoolClosed
서버 인스턴스가 삭제되기 전에 연결 풀이 닫힐 때 생성됩니다.
ConnectionCreated
연결이 생성될 때 생성되지만 작업에 사용될 때 반드시 생성되지는 않습니다.
ConnectionReady
연결이 핸드셰이크를 완료하고 작업에 사용할 준비가 된 후에 생성됩니다.
ConnectionClosed
연결이 닫힐 때 생성됩니다.
ConnectionCheckOutStarted
작업이 실행을 위해 연결을 획득하려고 시도할 때 생성됩니다.
ConnectionCheckOutFailed
작업이 실행할 연결을 획득할 수 없을 때 생성됩니다.
ConnectionCheckedOut
작업이 실행을 위한 연결을 성공적으로 획득할 때 생성됩니다.
ConnectionCheckedIn
작업이 실행된 후 연결이 풀에 다시 체크인될 때 생성됩니다.

다음 섹션에서는 각 유형의 연결 풀 모니터링 이벤트에 대한 샘플 출력을 보여줍니다.

*event.PoolEvent
{
"type": "ConnectionPoolCreated",
"address": "...",
"connectionId": 0,
"options": {
"maxPoolSize": 100,
"minPoolSize": 0,
"maxIdleTimeMS": 0
},
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionPoolReady",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionPoolCleared",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionPoolClosed",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCreated",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionReady",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionClosed",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckOutStarted",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckOutFailed",
"address": "...",
"connectionId": 0,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckedOut",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}
*event.PoolEvent
{
"type": "ConnectionCheckedIn",
"address": "...",
"connectionId": 1,
"options": null,
"reason": "",
"serviceId": null,
"error": null
}

MongoDB 배포를 모니터링하는 방법에 대해 자세히 알아보려면 MongoDB를 모니터링하는 방법 문서를 참조하세요.

MongoDB 연결에 학습 보려면 연결 가이드를 참조하세요.

이 가이드에서 사용되는 메서드 또는 유형에 대해 자세히 알아보려면 다음 API 문서를 참조하세요.

돌아가기

명령 모니터링