本文へスキップ

ヒープメモリメトリクス通知設定

ノート

次のJava公式文書へのリンクを参照してください。

アプリケーションプロジェクトのヒープメモリ関連のメトリクスとメトリクス通知設定について案内します。

ヒープメモリメトリクス

ヒープメモリ(HeapMemory)は、Java仮想マシン(JVM)がプログラムを実行するために割り当てたデータ保存領域で、インスタンスや配列などの主要データを保存します。 ヒープエリアは、インスタンスのライフサイクルおよびGCと密接な関係を持ちます。 GCは不要なインスタンスをヒープ領域から解除し、ヒープ領域の空き領域を確保する作業です。

ヒープメモリーウィジェット

ヒープメモリ関連指標を通じてサーバー別の最大ヒープメモリ、現在のヒープメモリを確認し、状況を監視することができます。 また、最大値と現在値のギャップを把握し、適切にヒープメモリを設定することができます。 ヒープメモリ使用量の最小値が持続的に上昇する場合、メモリリークが疑われる可能性があります。

メトリクス照会

ホーム画面 > プロジェクト選択 > サイトマップ > 分析 > メトリクス照会

メトリクス照会メニューで確認できるヒープメモリ関連指標を案内します。

Heap Memory

app_proc_counterカテゴリーの選択後、確認できます。

  • Heapコミットheap_committed

    JVMが使用できるようにコミットされたヒープメモリを意味します。

  • 初期Heapheap_init

    JVMがメモリ管理のためにOSにリクエストした最初のヒープメモリを意味します。

  • Heap最大サイズheap_max

    JVMがメモリ管理に使用できる最大ヒープメモリを意味します。

  • Heap使用量heap_used

    JVMで使用中のヒープメモリを意味します。

  • Heap総使用量heap_use

    JVMが割り当てられたヒープメモリの総量を意味します。

Non-heap Memory

java_memoryカテゴリーの選択後、確認できます。

  • Heapコミットnonheap_committed

    JVMがメモリ管理のためにOSにリクエストした最初の非ヒープメモリを意味します。

  • 最初Non-heapnonheap_init

    JVMがメモリ管理のためにOSにリクエストした最初の非ヒープメモリを意味します。

  • Non-heap総使用量nonheap_max

    JVMでメモリ管理に使用できる最大の非ヒープメモリ使用量を意味します。

    ノート

    Metaspace及びJITコードキャッシュ最大メモリサイズが定義されていない場合は-1を返します。

  • Non-heap使用量nonheap_used

    JVMで使用された非ヒープメモリを意味します。

メトリクスチャート

ホーム画面 > プロジェクト選択 > 分析 > メトリクスチャート

メトリクスチャートメニューで確認できるヒープメモリー関連指標を案内します。

  • Heap最大サイズheap_max

    JVMがメモリ管理に使用できる最大ヒープメモリを意味します。

  • Heap総使用量heap_use

    JVMが割り当てられたヒープメモリの総量を意味します。

  • Heap使用量heap_use

    JVMで使用中のヒープメモリを意味します。

  • Heap Perm領域の使用量heap_perm

    Perm領域のメモリ使用量を意味します。

  • Heap Pending Finalizationの数heap_pending_finalization

    待機中のFinalizationを持っているObjectの概算の数を意味します。

ノート

アプリケーション指標については次の文書を参照してください。

ヒープメモリメトリクス通知設定

ホーム画面 > プロジェクト選択 > アラート通知 > メトリクスタブ選択

ヒープメモリ関連のアラート通知を使用するには、メトリクスアラート通知を設定する必要があります。 メトリクスアラート通知は、デフォルト通知より細かく精巧な通知設定が可能です。 詳細については、次の文書を参照にしてください。 以下の例では、ヒープメモリ使用量(heap_used)を基準にメトリクス通知を設定する方法をご案内します。

ヒープメモリメトリクス通知設定1

  1. アラート通知下位のイベント設定メニューからメトリクスタブを選択します。

  2. 画面上段右側から+イベント追加ボタンを選択します。

  3. メトリクスイベント画面の指示線1領域でイベント名カテゴリレベルメッセージイベント発生条件などを設定してください。

    • イベント名を入力します。

      Heap Memory

    • レベルはイベント発生時のアラートレベルを意味します。 レベルを設定します。 基本設定はCriticalレベルです。

    • カテゴリ入力画面でJavaMemory(java_memory)を選択してください。

    • イベントメッセージを入力します。 例示メッセージの場合、ヒープメモリ使用量が設定したしきい値を超えたら、該当イベントの発生時刻とともに送信されます。

      ${heap_used}${time}${metricThreshold}を超えました。

    • フィールド、オペレーター、しきい値を入力して、アラート通知条件を設定します。 ヒープ使用量が50,000,000 byte超過時に通知を発生させる通知の例は次のとおりです。

      フィールドheap_used、オペレーター>、しきい値50000000

  4. 指示線2領域で指示線aイベント受信に関する詳細要件を設定し、該当のイベント通知ルールを指示線bテストしてみてください。

    ヒープメモリメトリクス通知設定2

    • 指示線aイベント受信設定

      • 発生回数は最近nの期間中、当該イベントが n'回発生した場合、通知を送信するようにします。

        最近1分の間、該当イベント3回発生時に通知が送信されます。

      • イベント発生の一時停止は、当該通知発生後に設定した時間の間に同じ通知が発生しないようにします。

    • 指示線b通知ルールテストオプションでは、選択した期間中に該当のイベント通知設定時、何回のアラート通知が発生したかを確認できます。

      過去の60分の間、1分内に続けて3回以上ヒープメモリ使用量(heap_used)が 50,000,000byteを超えたイベント発生時に、送信した通知件数は合計66件です。

  5. メトリクスイベント画面の下段の指示線3保存 ボタンをクリックして通知設定を完了してください。

ヒープメモリ使用量確認

ホーム画面 > プロジェクト選択 > 分析 > メトリクスチャート

選択した期間中のヒープメモリ使用量(heap_used)の詳細を確認したい場合は、メトリクスチャートへ移動してください。

メトリクスチャート

  1. 上段の指示線1タイムピッカーを通じて照会したい期間を指定してください。

  2. 左側の指標一覧から指示線2カテゴリJavaMemory(java_memory)を選択してください。

  3. 指示線3JavaMemoryカテゴリ下位からheap_usedを選択してください。 チャート領域から、例のようにヒープメモリ使用量チャートを照会することができます。

  4. heap_usedウィジェット上段右側のもっと見るアイコンをクリックし、オプションメニューから詳細アイコンを選択すると、モニタリング対象の指標推移を個別に確認することができます。

    メトリクスチャート詳細 1

  5. タグフィルターを選択すると、次のようにエージェント、エージェントグループ、エージェントホストなどを選択して個別チャートを照会することができます。

    メトリクスチャート詳細 2