Docs Menu
Docs Home
/ / /
Go
/ /

接続監視

項目一覧

  • Overview
  • イベントにサブスクライブ
  • イベントの説明
  • イベント ドキュメントの例
  • ConnectionPoolCreed
  • ConnectionPoolReady
  • ConnectionPoolCleared
  • ConnectionPoolClosed
  • ConnectionCreed
  • ConnectionReady
  • ConnectionClosed
  • 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」 に関する記事をご覧ください。

MongoDB への接続の詳細については、「 接続ガイド 」を参照してください。

このガイドで言及されているメソッドとタイプの詳細については、次のAPIドキュメントを参照してください。

戻る

コマンド監視