カスタムメトリクス

カスタムメトリクスは、基本的に単純なカウンタであるアキュムレーターを使用してストリームまたはバッチ パイプラインに追加できます。 これは、 Apache Spark および Apache Flink フレームワークの機能です。 概念は似ていますが、アキュムレーターの実行可能コードはストリームまたはバッチ パイプラインでは異なります。 コーディングの詳細については、 HERE を参照してください。

概念

アキュムレーターの基本的な使用は、パイプラインデザインのデータ処理ワークフローにおける重要なイベントに関連付けられています。 目標は、そのイベントの結果を数値で表現して取得することです。 アキュムレータは、単純なカウンタまたは合計値として設定できます。 これにより、レポートできるデータの種類が制限されます。

各アキュムレータは 、名前値に関連付けられています。 このキー値のペア (kVp) は、パイプラインの実行時にパイプラインサービスによって報告されるメトリックを構成します。 キー は 常にメトリックの名前であり、セマンティック上意味があるように選択する必要があります。 これは、 Grafana でレポートされたときに、メトリックがどのように識別されるかを示します。

図 1 に、パイプラインデータ処理とメトリックレポートの関係を示します。 このプロセスは、基本的に、標準のパイプラインメトリックに使用されるレポートメカニズムと同じです。 そのため、 Grafana は、標準のメトリックデータとともにカスタムのメトリックデータを収集し、ホームに表示できます。

パイプラインコードのカスタムアキュムレーターの簡単な図
図 1. パイプラインコードのカスタムアキュムレータ

警告

Spark アキュムレーターを使用する場合、プログラマーが注意する必要がある注意事項があります。

  1. 変換内の計算は遅延的に評価されるため、 RDD でアクションが発生しない限り、変換は実行されません。 その結果 、 RDD で何らかのアクションが発生しない限り、map()filter()などの内部機能で使用されているアキュムレーターは実行されません。
  2. Spark では、アクション内のアキュムレーターの更新が 1 回のみ保証されます。 そのため、タスクを再起動してリネージを再計算しても、アキュムレーターは 1 回のみ更新されます。
  3. Spark では、この変換については保証していません。 そのため、タスクを再起動してリネージを再計算すると、アキュムレーターが複数回更新される場合に望ましくない副作用が生じる可能性があります。
  4. 安全な場所に置くために、アキュムレーターは必ず作業範囲内で使用してください。

Flink アキュムレーターを使用する場合、プログラマーが注意する必要がある注意事項があります。

  1. Flink パイプラインの実行が遅れています。 パイプラインのメインメソッドが実行されても、データの読み込みと変換は直接行われません。 各操作が作成され、パイプラインの明示的なワークフローに追加されます。 実際には、 execute() 実行環境での呼び出しによって実行が明示的にトリガーされたときに、操作が実行されます。 全体的な結果は JobExecutionResultexecute() 実行環境のメソッドから返されたオブジェクトに保存されます。 ただし、これは、実行がジョブの完了を待っている場合にのみ機能します。
  2. 現在、アキュムレーターの結果は、ジョブ全体が終了した後でのみ利用できます。
  3. すべてのアキュムレーターが 1 つのジョブにつき 1 つの名前空間を共有します。 このため、ジョブのさまざまなオペレータ機能で同じアキュムレータを使用できます。 Flink は、同じ名前のすべてのアキュムレーターを内部的に結合します。
  4. Flink には現在、以下のアキュムレーターが内蔵されています。 IntCounterLongCounterDoubleCounter 、および Histogram です。 これらのインター フェイスはそれぞれ、標準のアキュムレーター・インターフェイスを使用します。 HERE platform パイプライン は ヒストグラム アキュムレーターをサポートしていません
  5. 最も単純なアキュムレータはカウンタです。 Accumulator.add(V value) メソッドを使用して増分できます。 ジョブの最後に、 Flink がすべての部分的な結果を合計 ( 結合 ) し、最終結果をパイプラインサービスに送信します。

も参照してください

注 : リファレンスの例

以下のリファレンスは、 HERE platform の保証または機能の保証なしに提供されています。 既存 HERE の Apache ドキュメントのギャップを埋めるために、これらのドキュメントは共有されています。 すべての例は、 Apache Flink または Apache Spark の一般的なものです。

」に一致する結果は 件です

    」に一致する結果はありません