クラスター モニタリング
Overview
このガイドでは、 Cドライバーを使用して、 MongoDBインスタンス、レプリカセット、または シャーディングされたシャーディングされたクラスターのサーバー検出とモニタリング(SDAM) イベントを監視する方法を説明します。これらのイベントは、接続しているMongoDBインスタンスまたはクラスターの状態が変更されたときに発生します。
アプリケーション内の SDAM イベントに関する情報を使用して、クラスターの変更を理解し、クラスターの健全性を評価したり、キャパシティープランニングを実行したりできます。
イベントにサブスクライブ
SDAM イベントは、アプリケーションでサブスクライブすることで、その詳細にアクセスできます。イベントをサブスクライブするには、サブスクライブする各イベントタイプを処理するための APM(Application Performance Monitoring)コールバック関数を定義します。 mongoc_apm_callbacks_t
オブジェクトを mongoc_client_set_apm_callbacks()
関数に渡して、クライアントで APM コールバックのリストを登録します。
このコードは、次のアクションを実行してサーバーオープン イベントを監視します。
server_opening()
APMコールバック関数を定義しますコールバックを保存するための
mongoc_apm_callbacks_t
オブジェクトを作成します提供された APMコールバック関数へのポインターを
mongoc_apm_callbacks_t
オブジェクトに保存するmongoc_apm_set_server_opening_cb()
関数を呼び出しますクライアントとともに
mongoc_apm_callbacks_t
オブジェクトにコールバックを登録するmongoc_client_set_apm_callbacks()
関数を呼び出します
1 2 3 4 5 typedef struct { 6 int server_opening_events; 7 } stats_t; 8 9 static void 10 server_opening (const mongoc_apm_server_opening_t *event) 11 { 12 stats_t *stats = (stats_t *) mongoc_apm_server_opening_get_context (event); 13 stats->server_opening_events += 1; 14 15 printf ("Server opening: %s\n", mongoc_apm_server_opening_get_host (event)->host_and_port); 16 } 17 18 int 19 main (void) 20 { 21 mongoc_init (); 22 23 stats_t stats = {0}; 24 25 mongoc_client_t *client = mongoc_client_new ("<connection string URI>"); 26 27 { 28 mongoc_apm_callbacks_t *cbs = mongoc_apm_callbacks_new (); 29 mongoc_apm_set_server_opening_cb (cbs, server_opening); 30 mongoc_client_set_apm_callbacks (client, cbs, &stats); 31 mongoc_apm_callbacks_destroy (cbs); 32 } 33 34 // Perform database operations 35 36 mongoc_client_destroy (client); 37 38 printf ("Observed %d server opening events\n", stats.server_opening_events); 39 40 mongoc_cleanup (); 41 42 return EXIT_SUCCESS; 43 }
データベース操作を実行すると、ドライバーはサーバーへの新しい接続を確立し、サブスクライブはサーバーを開くイベントを記録します。このコードでは、次のようなメッセージが出力されます。
Server opening: <host>:<port number>
イベントの説明
対応する APMコールバック関数を定義することで、SDAM イベントをサブスクライブできます。次の表は、各 SDAMイベントの名前、タイプのAPIドキュメントへのリンク、イベントが公開されるタイミングを説明したものです。
eventType | 説明 |
---|---|
サーバーのタイプがセカンダリからプライマリに変わるなど、サーバーの説明が変更されたときに作成されます。 | |
既存のサーバーがトポロジーから削除されたときに作成されます。 | |
新しいプライマリの選挙など、トポロジーの説明が変更されたときに作成されます。 | |
ドライバーが最初にクラスターに接続したときに作成されます。 | |
ドライバーがクラスターから切断されたときに作成されます。 | |
サーバーモニターがサーバー に hello コマンドを送信したときに作成されサーバー。 このアクションは、ハートビートと呼ばれます。 | |
ハートビートが成功したときに作成されます。 | |
ハートビートが失敗したときに作成されます。 |
各モニタリング サブスクライブのタイプとイベントメソッドに関する情報は、 APIドキュメントの「 アプリケーション パフォーマンス モニタリング 」セクションを参照してください。
API ドキュメント
このガイドで説明されている関数の詳細については、次のAPIドキュメントを参照してください。