Atlas Stream Processing はモニタリングとアラートを提供し、ユーザーはパフォーマンスとステータスのインサイトを活用してワークフローを改善できます。
Atlas UI でストリーム プロセッサのワークスペースを監視する
すべての Stream Processing ワークスペースについて、Atlas UI でストリーム プロセッサを監視できます。
Atlas で、プロジェクトの Stream Processing ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Streaming Data見出しの下のStream Processingをクリックします。
Atlas Stream Processingページが表示されます。
[Monitoring] タブをクリックします。
[Monitoring] タブには、選択したストリーム プロセッサに関するさまざまな実行時統計情報が表示されます(以下に限定されません)。
取り込まれたメッセージの数
正常に処理されたメッセージの数
デッド文字キューに送信されたメッセージの数
ソース接続が Apache Kafka の場合、トピックのパーティションにおける現在のオフセットとブローカー上の最新オフセットとの間のラグ、およびすべてのパーティション ラグの合計を監視できます。
ストリーム プロセッサの監視メソッド
Atlas Stream Processing は、ストリーム プロセッサに関するオンデマンド レポート作成用に次のメソッドを提供します。
sp.processor.sample()メソッドを使用すると、現在実行中のストリーム プロセッサによって出力されるドキュメントの小さなサンプルを確認できます。 ユーザーは、サンプリングされた結果と期待される結果を比較して、集計パイプライン設計におけるエラーを診断できます。
メソッドは、選択したストリームsp.processor.stats() プロセッサに関する実行時間統計を返します。これを呼び出す方法については、「 ストリーム プロセッサの統計情報を表示する 」を参照してください。
ストリーム プロセッサ メトリクス
次のメトリクスは、ストリーム プロセッサのランタイム動作を説明します。 Atlas Stream Processingsp.processor.stats() Monitoringは、 出力ドキュメント、Atlas UIの タブ、および Atlas Administration APIと Datadog および OpenTelemetry の統合を通じてそれらをレポートします。
出力ドキュメントには、次のフィールドがあります。
フィールド | タイプ | 説明 |
|---|---|---|
| string | ストリーム プロセッサが定義されている名前空間。 |
| オブジェクト | ストリーム プロセッサの動作状態を説明するドキュメント。 |
| string | ストリーム プロセッサの名前。 |
| string | ストリーム プロセッサのエンジン状態。これは単一のワーカーでの内部実行状態を表します。このフィールドには、次の値を指定できます。
これは、ストリームプロセッサーの Atlas コントロールプレーンのライフサイクル状態を報告する |
| integer | サイズ フィールドが表示される単位。 |
| integer | ストリームに公開されたドキュメントの数。 ドキュメントは、パイプライン全体を通過する場合ではなく、 |
| integer | ストリームに公開されたバイト数またはキロバイト数。 バイトは、パイプライン全体を通過する場合ではなく、 |
| integer | ストリームによって処理されたドキュメントの数。 ドキュメントはストリームによってパイプライン全体を通過すると、ストリームによって「処理済み」と見なされます。 |
| integer | ストリームによって処理されたバイト数またはキロバイト数。 バイトはパイプライン全体を通過すると、ストリームによって「処理済み」と見なされます。 |
| integer | |
| integer | |
| integer | 最新の変更ストリーム再開トークンによって表されるイベント時間とoplog 内の最新のイベントとの差(秒単位)。 |
| token | 最新の変更ストリーム再開トークン。 変更ストリーム ソースを持つストリーム プロセッサにのみ適用されます。 |
| ドキュメント | ストリーム プロセッサ全体のレイテンシ統計です。Atlas Stream Processing は、 |
| integer | 過去 30 秒間に処理されたすべてのドキュメントの推定 50 パーセンタイル レイテンシ。パイプラインにウィンドウ ステージが含まれている場合、レイテンシ測定にはウィンドウの間隔が含まれます。 例えば、 |
| integer | 過去 30 秒間に処理されたすべてのドキュメントの推定 99 パーセンタイル レイテンシ。パイプラインにウィンドウ ステージが含まれている場合、レイテンシ測定にはウィンドウの間隔が含まれます。 例えば、 |
| datetime | 直近の 30 秒測定ウィンドウが開始した時刻(ウォールタイム)。 |
| datetime | 直近の 30 秒間の測定ウィンドウが終了した時点のウォール時間。 |
| string | レイテンシが計測される時間の単位。この値は常に |
| integer | 直近の 30 秒測定ウィンドウでストリームプロセッサが処理したドキュメント数。 |
| integer | 直近の 30 秒測定ウィンドウで取得された、個々のレイテンシ測定値の合計(マイクロ秒単位)。 |
| integer | Windowsがプロセッサの状態を保存するために使用するバイト数。 |
| integer | ストリーム プロセッサがアクティブなスロットリングに費やした累計時間(ミリ秒単位)。 パイプラインに複数の |
| integer | ストリーム プロセッサが設定されたレート制限内に収まるようにメッセージを遅延させた回数。 パイプラインに複数の |
| date | 現在の浮動小数のタイムスタンプ。 |
| integer | ストリーム プロセッサの合計並列処理。 Atlas Stream Processing では、 このフィールドはパイプライン全体を要約するため、 例、 この値を使用して、構成した並列処理とストリーム プロセッサ層で使用可能な並列処理を比較します。詳しくは、「 Atlas Stream Processing 階層選択ガイド 」を参照してください。 |
| 配列 | プロセッサ パイプライン内の各演算子の統計情報。 Atlas Stream Processing では、
|
| integer | 演算子の最大メモリ使用量(バイトまたはキロバイト単位)。 |
| integer | 演算子の合計実行時間(ミリ秒)。 |
| date | 最小オープンウィンドウの開始時刻。この値は任意です。 |
| date | 最大オープンウィンドウの開始時刻。この値は任意です。 |
| 配列 | 特定のソースとシンク演算子のターゲットごとの統計。 この配列の各要素は、入力コレクションや出力コレクションやApache Kafkaトピックなど、単一の入力ターゲットまたは出力ターゲットを表すドキュメントです。演算子に応じて、各ドキュメントには次のフィールドのサブセットが含まれます。 Apache Kafka MongoDB ターゲット
MongoDB MongoDB ターゲット
Atlas Stream Processing は、Apache Kafka 最大で100件の明確に区別されたターゲットのターゲットごとの統計を記録します。その後、ストリームプロセッサは |
| 配列 | Apache Kafkaエージェントのパーティションのオフセット情報。 |
| integer | Apache Kafkaトピックのパーティション番号。 |
| integer | 指定されたパーティションに対するストリーム プロセッサのオフセット。 この値は、ストリーム プロセッサが処理した以前のオフセットに |
| integer | ストリーム プロセッサがApache Kafkaプロバイダーと指定されたパーティションのチェックポイントに最後にコミットしたオフセット。このオフセットを介するすべてのメッセージは、最後のチェックポイントに記録されます。 |
| ブール値 | パーティションがアイドル状態であるかどうかを示すフラグ。この値はデフォルトで |
Atlas Stream Processing ログ
Atlas Stream Processing では、次の 2 種類のストリーム処理ワークスペースのアクティビティ ログが提供されます。
- 操作ログ(主に以下の動作を追跡するログ)
- 個々のストリーム プロセッサ。
- 監査ログ(主に認証とセキュリティを追跡)
- ストリーム処理ワークスペース レベルでのアクティビティ。
垂直オートスケーリングが有効になっているプロセッサーの場合、操作ログには、各スケールアップイベントとスケールダウンイベントがレコードされます。それには、プロセッサーが移動した元の階層と移動先の階層、およびイベントをトリガーしたメトリクスが含まれます。
Atlas Stream Processing の運用ログまたは監査するログをダウンロードするには:
Atlas で、プロジェクトの Stream Processing ページに移動します。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Streaming Data見出しの下のStream Processingをクリックします。
Atlas Stream Processingページが表示されます。
ログをダウンロードするストリーム処理ワークスペースのペインに移動し、省略記号をクリックします。
モーダルウィンドウで、ダウンロードするログのタイプを選択します。
Stream processorフィールドに、ログをダウンロードするストリーム プロセッサの名前を指定します。すべてのストリーム プロセッサのログをダウンロードするには、このフィールドを空白のままにします。
[Time Period ドロップダウンから、ログをダウンロードする間隔を選択します。
注意
ログがクエリ可能になるまでには、作成後から最大 5 分かかります。
デッド文字キュー
デッドレターキュー (DLQ) 内のドキュメントを検討して、ストリームプロセッサーの障害モードを分析することができます。DLQ に書き込まれたドキュメントは、以下の形式をとります。
{ "processorName": "<stream-processor-name>", "instanceName": "<workspace-name>", "dlqTime": { "$date": "<datetime>" }, "operatorName": "<stream-operator-name>", "errInfo": { "reason": "<error-description>" }, "doc": { "_id": { "$oid": "<object-id>" }, . . . }, "_stream_meta": { "<stage-metadata>": { "<metadata-field>": "<metadata-value>", . . . }, . . . } }
DLQ ドキュメントには、次のフィールドが含まれています。
フィールド | タイプ | 条件付き | 説明 |
|---|---|---|---|
processorName | string | 常に | ドキュメントの発生元となるストリームプロセッサの名前。 |
instanceName | string | 条件付き | プロセッサが実行される Stream Processing ワークスペースの名前。プロジェクトに複数のワークスペースが含まれている場合にのみ書き込まれます。 |
dlqTime.$date | ISODate | 常に | Atlas Stream Processingがデッドレターキュー (DLQ)にドキュメントを登録した日時。 |
operatorName | string | 常に | |
errInfo.reason | string | 常に | ドキュメントプロセシングの失敗の理由。 |
doc | ドキュメント | 常に | この 障害イベントによりDLQ に書込まれた完全なドキュメント。 |
_stream_meta | ドキュメント | 常に | ストリーム メタデータを含むドキュメント。このドキュメントの内容は、指定された入力に対する $meta ステージの出力と同じです。詳細については、$meta 構文リファレンスを参照してください。 |
サードパーティメトリクス統合
Atlas Stream Processing はサードパーティーのメトリクス統合をサポートしており、ユーザーはカスタムロジックやビューを開発することなく、ストリームプロセッサーのパフォーマンスをレコードして分析できます。
DataDog は、接頭語 mongodb.atlas.stream_processing を使用して Atlas Stream Processing メトリクスを追跡します。統合を設定し、利用可能なメトリクスを表示するには、「DataDog との統合」を参照してください。
OpenTelemetry (OTel) コレクターにメトリクスを送信するには、「OpenTelemetry (OTel) との統合」を参照してください。
ストリーム プロセッサ アラート
Atlas Stream Processing は、プロセッサの状態が変化したとき、またはプロセッサがさまざまな取り込みや出力のしきい値に達したときにアラートをトリガーします。使用可能な Atlas Stream Processing アラートのリストについては、「 Atlas Stream Processing アラート 」を参照してください。アラート構成の詳細については、「 アラート設定の構成 」を参照してください。
次の方法で、Atlas Stream Processing アラートを対象にすることができます。
プロジェクト内のすべてのストリーム プロセッサ
設定された述語に一致する Stream Processing ワークスペース内のすべてのストリーム プロセッサ
設定された述語に一致する名前を持つすべてのストリーム プロセッサ
すべてのストリーム プロセッサ以外のターゲットに対して、同じアラートに複数のターゲットを設定できます。
Atlas Stream Processing は、デフォルトで Stream Processor State is failed アラートを構成します。これはプロジェクト レベルのアラートであるため、構成されているプロジェクト内の任意の stream processing ワークスペースで実行中のストリーム プロセッサに適用されます。