Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
C ドライバー
/

クラスター モニタリング

このガイドでは、 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#include <stdio.h>
2#include <bson/bson.h>
3#include <mongoc/mongoc.h>
4
5typedef struct {
6 int server_opening_events;
7} stats_t;
8
9static void
10server_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
18int
19main (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
説明

mongoc_apm_server_changed_t

サーバーのタイプがセカンダリからプライマリに変わるなど、サーバーの説明が変更されたときに作成されます。

新しいサーバーがトポロジーに追加されたときに作成されます。 この SDAMイベントをサブスクライブする例アプリケーションについては、このページの「 サブスクライブ」を参照してください。

既存のサーバーがトポロジーから削除されたときに作成されます。

新しいプライマリの選挙など、トポロジーの説明が変更されたときに作成されます。

ドライバーが最初にクラスターに接続したときに作成されます。

ドライバーがクラスターから切断されたときに作成されます。

サーバーモニターがサーバー にhelloコマンドを送信したときに作成されサーバー。 このアクションは、ハートビートと呼ばれます。

ハートビートが成功したときに作成されます。

ハートビートが失敗したときに作成されます。

You can find information about each monitoring subscriber type and event method in the Application Performance Monitoring section of the API documentation.

このガイドで説明されている関数の詳細については、次のAPIドキュメントを参照してください。

戻る

アプリケーションを監視する

項目一覧