パフォーマンスを自己モニターするためのノードの構成

統合サーバーのパフォーマンス・モニターおよびアラートを有効にして構成します。 メッセージ・フロー・ノードは、設定された数の処理済みメッセージに対して確立された独自のベースラインの下で実行されている場合に、アラートを出します。

始める前に

このタスクの概要

ノードの自己モニター機能を使用して、実行に時間がかかりすぎているが、パフォーマンスの低いバックエンド・システムが原因である可能性があるフローとして示される問題の診断を高速化します。 統合サーバーでパフォーマンス・アラートを有効にすると、各ノードがメッセージの処理に要する平均時間を設定するためのトレーニング・フェーズとして、初期メッセージ数が使用されます。 このフェーズの後、定義された時間制限まで、各ノードのベースライン時間からの逸脱が警告メッセージとして報告されます。

潜在的なパフォーマンス低下のアラートを設定できるように、警告メッセージ BIP8514W がシステム・ログに記録されます。 警告メッセージには、メッセージ・フローに関する情報と、パフォーマンスが低下しているメッセージ・フロー内のノードに関する情報が含まれています。 BIP メッセージには、そのベースラインに対するノードの現在の経過時間に関する情報も含まれています。

server.conf.yaml ファイルを変更することで、パフォーマンスを自己モニターするようにノードを構成できます。 統合サーバーを再始動すると、定義した新しい設定が有効になります。 server.conf.yaml ファイルの Statistics セクションの PerformanceAlert 部分に、以下の属性の値を設定します。

alertOn
パフォーマンス・アラートを有効にするかどうかを制御します。 有効な値は true または false です。 デフォルトは false です。
alertInterval
メッセージ・フロー・ノードのパフォーマンス・アラート・イベント・メッセージがログに記録される間隔を秒単位で設定します。 デフォルト値は 300 です。
warmupMessageCount
入力メッセージの初期数をウォームアップ・フェーズとして設定し、スレッド・レベルごとにメッセージ・フロー・ノードの平均経過時間のベースラインを設定します。 デフォルト値は 200 です。
alertMinNodeElapsedTime
メッセージ・フロー・ノードがパフォーマンス・アラートに適格となるまでの経過時間の最小レベルをミリ秒単位で設定します。 デフォルト値は 1000 です。
メッセージ・フロー・ノードの実行時間がこのプロパティー値よりも短い場合、ノードの実行時間が alertMinNodeElapsedTimeDeviation プロパティー値に構成された値よりも逸脱していても、そのノードの BIP8514W はログに記録されません。
alertMinNodeElapsedTimeDeviation
パフォーマンス警告メッセージをログに記録するために、メッセージ・フロー・ノードの偏差をパーセンテージとして設定します。デフォルト値は 50 です。
メッセージ・フロー・ノードの平均経過時間が「2000」ミリ秒として計算され、 alertMinNodeElapsedTimeDeviation が「50」に設定されている場合、メッセージ・フロー・ノードの実行時間が「3000」(2000 + 2000 の 50 パーセント) を超えると、そのノードの BIP8514W メッセージがログに記録されます。
startMessageFlowStatistics
パフォーマンス偏差に応じて、メッセージ・フロー統計およびアカウンティング・データ収集の自動開始を制御します。 有効な値は true および false です。 デフォルト値は false です。
statisticsCollectionDuration
startMessageFlowStatistics が「true」に設定されている場合に、メッセージ・フロー統計およびアカウンティング・データを収集する期間を分単位で設定します。 この間隔を過ぎると、統計は自動的に使用不可になります。 デフォルト値は 10 です。

以下のステップを使用して、最初の 5000 件のメッセージに対するノードの平均処理時間を判別するためのノード設定の例を構成します。 モニター対象のノードの経過時間が 800 ミリ秒を超えています。 偏差が 50% を超えると、60 秒ごとにシステム・ログでアラートが生成されます。 以下のようにプロパティーを設定します。

手順

  1. YAML エディターを使用して server.conf.yaml 構成ファイルを開きます。

    YAML エディターにアクセスできない場合は、プレーン・テキスト・エディターを使用してファイルを編集できます。 ただし、タブ文字を含めないようにする必要があります。 タブ文字は、YAML ファイル内では無効であり、統合サーバー構成が失敗する原因となります。 プレーン・テキスト・エディターを使用している場合は、YAML 検証ツールを使用してファイルの内容を検証してください。

  2. パフォーマンスのモニターとアラートを有効にするには、 alertOn 属性を true に変更します。
  3. alertInterval を 60 に設定します。
  4. warmupupMessageCount を 5000 に設定します。
  5. alertMinNodeElapsedTime を 800 に設定します。
    この値の設定が低すぎると、メッセージ・フロー内の多くのノードがモニター対象として適格になる可能性があり、システム・ログに表示される警告が多すぎる可能性があります。 外部サービスと対話する最も複雑なノードおよびノードを許可する時間を設定します。
  6. alertMinNodeElapsedTimeDeviation を 50 に設定します。
    この値の設定が低すぎると、システム上の短い問題や一時的な問題に関するパフォーマンス・アラートが表示される可能性があります。 この値を alertInterval とともに使用して、メッセージ・フローのパフォーマンスが実際に低下していることを確認します。 例えば、定期的にアラートが表示され続ける場合は、システムに進行中の問題があることを示している可能性があります。
  7. オプション: startMessageFlowStatistics を true に変更できます。
    true に設定すると、いずれかのメッセージ・フロー・ノードでパフォーマンスの低下が観測された場合に、メッセージ・フローのアカウンティングと統計が csv フォーマット・ファイルに保存されます。
  8. オプション: statisticsCollectionDuration を 10 に設定します。
    startMessageFlowStatistics が true に設定されている場合は、時間を分単位で設定して、統計収集の期間を設定できます。
  9. server.config.yaml ファイルを保存します。
  10. 変更を有効にするために、統合サーバーを再始動します。

  PerformanceAlert:
    alertOn: true                          # choose 1 of : true|false, explicitly set 'true' to activate performance alerts in syslog. If unset will default to 'false'
    alertInterval: 60                      # Sets the interval in seconds at which performance alert event messages are logged
    warmupMessageCount: 5000                 # Sets the initial number of input messages as the warmup phase to calculate the average elapsed time of a message flow node at per thread level
    alertMinNodeElapsedTime: 800           # Sets the minimum level for the elapsed time in milli seconds for a message flow node to qualify for performance alerts.
                                             # The message flow nodes that consume less than this threshold value are not monitored for performance.
    alertMinNodeElapsedTimeDeviation: 50    # Sets the deviation in percentage for a message flow node to log performance alert event messages
    startMessageFlowStatistics: true       # choose 1 of : true|false, explicitly set 'true' to activate statistics collection automatically upon performance deviation. If unset will default to 'false'
    statisticsCollectionDuration: 10        # Sets the duration in minutes to collect the message flow snapshot statistics. After this interval statistics will be disabled automatically.

次のタスク

ノード・フローが実行され、各ノードのベースライン処理時間が設定されるのを待ちます。 ノードの実行時間がベースラインを超えている場合は、システム・ログでメッセージを探してください。