本文へスキップ

バッチアプリケーション

バッチ アプリケーションでWhaTapエージェントを適用する方法です。バッチアプリケーションは、WASとは異なり、アプリケーションが実行と中断を繰り返す特長があります。したがって、一般的なウェブアプリケーションとは異なるモニタリングを行う必要があります。

Batch Application

エージェントダウンロード

次のコマンドを実行して、バッチアプリケーションをモニタリングするエージェントをダウンロードできます。

wget https://api.whatap.io/agent/whatap.agent.batch.tar.gz
バッチエージェントファイルの構成

whatap.agent.batch.tar.gz

whatap.agent-x.y.z.jar:Javaエージェント

whatap.agent.batch.host-x.y.z.jar: バッチホスト(Batch Host) - 収集サーバーにデータ送信

whatap.conf: バッチホスト(Batch Host)設定ファイル(ファイルがない場合は、新しくファイルを作成し設定>エージェントのインストールメニューにlicensewhatap.server.host項目を追加してください。)

agent/whatap.agent.batch-x.y.z.jar: バッチエージェント - アプリケーションデータを収集してバッチホストに送信

agent/whatap.conf: バッチエージェント設定ファイル

エージェント設定

バッチホスト(Batch Host) 設定

licensewhatap.server.hostオプション値は、プロジェクトの設定>エージェントのインストールメニューから確認できます。

whatap.conf
# default setting
license=
whatap.server.host=

# ステップを分割して送信する
split_trace_enabled=true

# 1つのトレースに表示する最大ステップ数
trace_step_max_count=1024

バッチエージェント設定

agent/whatap.conf
# default setting
net_udp_listen_ip=0.0.0.0
net_udp_listen_port=6611

# バッチホストと通信設定
net_udp_listen_ip=0.0.0.0
net_udp_listen_port=6611

# バッチジョブでhttp call最大個数
trace_httpc_limit=1000000

# バッチジョブにおけるsql最大個数
trace_sql_limit=1000000

# アクティブスタックの表示有無
active_stack_enabled=true
# 5回以内
active_stack_time1=5000
# 5回以降
active_stack_time2=10000
# 最初のスタックの開始時間
active_stack_start_wait_time=1000

バッチジョブ(Batch Job) を実行する

バッチジョブ(Batch Job)は、トランザクションの観点からモニタリングする必要があります。そのため、WhaTapのJavaエージェントは、JobプロセスのJobエージェントと、この情報をサーバに中継するためにHostエージェントに分離された2つのエージェントを実行する必要があります。

バッチホスト(Batch Host) 実行コマンド

Batch Host Agent
java -cp {BATCH_HOST_HOME}/whatap.agent.batch.host-x.y.z.jar:{BATCH_HOST_HOME}/whatap.agent-x.y.z.jar -Dwhatap.name=batch whatap.agent.batch.App
Batch Host Agent, Java 17 or later
java --add-opens=java.base/java.lang=ALL-UNNAMED -cp {BATCH_HOST_HOME}/whatap.agent.batch.host-x.y.z.jar:{BATCH_HOST_HOME}/whatap.agent-x.y.z.jar -Dwhatap.name=batch whatap.agent.batch.App

バッチエージェント(Batch Agent) 実行コマンド

Batch Agent
java -javaagent:{BATCH_AGENT_HOME}/whatap.agent.batch-x.y.z.jar -jar {APP_PATH}/batch-application.jar
Batch Agent, Java 17 or later
java -javaagent:{BATCH_AGENT_HOME}/whatap.agent.batch-x.x.x.jar --add-opens=java.base/java.lang=ALL-UNNAMED -jar {APP_PATH}/batch-application.jar
ノート

バッチジョブ(BatchJob)エージェントとバッチホスト(Batch Host)エージェントは、バッチジョブ(Batch Job)を実行するホストでインストールおよび実行してください。

Time Limitの設定

Batch Job(Batch Job) AgentとBatch Host(Batch Host) Agentは、UDPを使用して通信します。

Batch Job UDP

バッチジョブ(Batch Job)は、通常、長時間に渡って実行します。 数十秒の長さになることがあります。 したがって、バッチジョブ(Batch Job)ごとにtime_limitの値が異なる場合があります。バッチジョブ(Batch Job)が実行される推定処理時間をtime_limitオプションで設定してください。

time_limit=300000
warning_time=70% of time_limit
step_interval=5000

アクティブイコライザーカラーの設定

バッチジョブ(Batch Job)の実行時間がtime_limitの70%に達すると黄色で表示し、time_limitを超えると赤色で表示するように次のように設定してください。

whatap.conf
## 終了予定時間の70%
yellow_time = time_limit * 0.7;
## 終了予定時間を超過
red_time = time_limit;

Batch Job UDP

ノート

サーバ運用者は、バッチジョブ(Batch Job)が遅延しているかどうかをリアルタイムで確認する場合は、'time_limit'値を適切に設定してください。

アクティブスタックの収集間隔を設定

バッチジョブ(Batch Job) エージェントは、step_intervalオプション値の間隔でアクティブスタックを収集できます。

step_interval=5000

バッチエージェントのメトリクス指標の収集

ダッシュボードは、バッチホスト(Batch Host)のHeap Memoryを収集し、バッチアプリケーションの性能指標はメトリクス(TagCount: batch_job_counter)で収集します。

batch_job_counter

  • batch job:pidhostnamejob_name
  • gc:gc_countgc_time_sumgc_oldgen_count
  • heap:heap_totheap_useheap_maxheap_pending_finalheap_perm
  • cpu:cputime
  • thread count:thread_total_startedthread_countthread_daemonthread_peak_count