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()メソッドは、選択したストリーム プロセッサに関する実行時統計を返します。
出力ドキュメントには、次のフィールドがあります。
フィールド | タイプ | 説明 |
|---|---|---|
| string | ストリーム プロセッサが定義されている名前空間。 |
| オブジェクト | ストリーム プロセッサの動作状態を説明するドキュメント。 |
| string | ストリーム プロセッサの名前。 |
| string | ストリーム プロセッサの状態。 このフィールドには、次の値を指定できます。
|
| 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がプロセッサの状態を保存するために使用するバイト数。 |
| date | 現在の浮動小数のタイムスタンプ。 |
| 配列 | プロセッサ パイプライン内の各演算子の統計情報。 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 ワークスペースで実行中のストリーム プロセッサに適用されます。