AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。

モニタリング

このガイドでは、 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() 関数を呼び出します

#include <stdio.h>#include <bson/bson.h>#include <mongoc/mongoc.h> typedef struct { int server_opening_events;} stats_t; static voidserver_opening(const mongoc_apm_server_opening_t *event){ stats_t *stats = (stats_t *) mongoc_apm_server_opening_get_context(event); stats->server_opening_events += 1; printf("Server opening: %s\n", mongoc_apm_server_opening_get_host(event)->host_and_port);} intmain(void){ mongoc_init(); stats_t stats = {0}; mongoc_client_t *client = mongoc_client_new("<connection string URI>"); { mongoc_apm_callbacks_t *cbs = mongoc_apm_callbacks_new(); mongoc_apm_set_server_opening_cb(cbs, server_opening); mongoc_client_set_apm_callbacks(client, cbs, &stats); mongoc_apm_callbacks_destroy(cbs); } // Perform database operations mongoc_client_destroy(client); printf("Observed %d server opening events\n", stats.server_opening_events); mongoc_cleanup(); return EXIT_SUCCESS;}

データベース操作 を実行すると、ドライバーはサーバーへの新しい接続を確立し、サブスクライブはサーバーを開くイベントを記録します。 このコードでは、次のようなメッセージが出力されます。

Server opening: <host>:<port number>

対応する APMコールバック関数を定義することで、SDAM イベントをサブスクライブできます。 次の表は、各 SDAMイベントの名前、タイプのAPIドキュメントへのリンク、イベントが公開されるタイミングを説明したものです。

eventType
説明

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

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

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

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

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

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

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

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

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

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

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