Docs Menu
Docs Home
/ / /
C ドライバー
/

クラスター モニタリング

項目一覧

  • Overview
  • イベントにサブスクライブ
  • イベントの説明
  • API ドキュメント

このガイドでは、 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コマンドを送信したときに作成されサーバー。 このアクションは、ハートビートと呼ばれます。
ハートビートが成功したときに作成されます。
ハートビートが失敗したときに作成されます。

各モニタリング サブスクライブのタイプとイベントメソッドに関する情報は、 APIドキュメントの「 アプリケーション パフォーマンス モニタリング 」セクションを参照してください。

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

戻る

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