本文へスキップ

マルチ メトリクスアラートの通知

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

メトリクスイベントとは

メトリクスイベントは、基本イベント(アプリケーションイベント、サーバーイベントなど)より具体的で複雑なイベントを設定するために使用します。プロジェクトがリアルタイムで収集中のメトリクスデータに基づいてイベントを設定できます。使用状況に応じて、2つの設定方法のいずれかを選択してイベントを設定できます。

  • メトリックスイベント
  • 複合メトリクスイベント
ノート
  • メトリクスの詳細については、次の文書を参照してください。

  • 新しいUIを適用してユーザーの利便性が強化されたイベント設定 Newメニューでメトリクスイベントを追加できます。詳しい内容は、次の文書を参照してください。

  • アラート設定権限のあるメンバーのみが利用できます。メンバー権限についての詳細は、次の文書を参照してください。

メトリックスイベント

アラート通知 > アラート設定メニューから画面の上にあるメトリックスを選択します。画面の右上にある アラート通知追加を選択します。メトリクスイベント画面が表示されます。

メトリクスイベント

基本情報を入力

  • イベント名:追加するイベント名を入力します。

  • イベント活性化:イベントの活性化の有無を選択します。

  • テンプレート:作成されたテンプレートを選択して、簡単にイベントを設定できます。テンプレートを使用しない場合は、使用しないを選択します。

    ノート

    テンプレート一覧の詳細については次の文書を参照してください。

  • カテゴリ:メトリクス データを区切る単位です。メトリクスイベント設定時に必須の設定値です。

    メトリクスイベント - カテゴリ

    • カテゴリ選択オプションは、 名前データ収集間隔、 キー情報を表示します。イベントを設定する際には該当カテゴリのキーを使用します。

    • カテゴリは、直近3時間以内にプロジェクトで収集されたメトリクスデータを照会し、一覧に表示します。カテゴリ選択オプションに収集間隔が表示されない場合は、直接入力するオプションを選択して、カテゴリキーを入力します。

  • レベル
    • イベント発生時の警告レベルを示します。CriticalWarningInfoレベルで分けます。CriticalWarningレベル設定時イベント状態が解消されたら追加に通知する選択オプションが有効になります。

    • イベント状態が解消されたら追加に通知する: イベントの項目から発生したイベント状態が解消されたら追加に通知するの送信可否を選択できます。トグルボタンを選択して機能をオンまたはオフできます。

  • メッセージ
    • イベント発生時に出力する通知メッセージを入力します。${Tag}または${Field}を入力してメッセージに変数を適用できます。変数に入力するキーは、選択したメトリクス データカテゴリに含まれる値である必要があります。メトリックス照会メニューで入力できるタグまたはフィールドキーを確認できます。

      Message example

    • 時間アイコンボタンをクリックすると、以前に入力したメッセージの履歴を確認できます。

  • 受信テスト

    必須項目であるイベント名カテゴリレベルメッセージ情報に基づいて通知を発生させ、メッセージをチェックする機能です。

    ノート
    • テスト中は、実際のメトリクス値や変数への置換機能が機能しません。

    • イベント受信オプションで受信者タグが設定されているユーザーに限ってテスト通知を送信します。すべて受信を選択した場合、すべてのユーザーにテスト通知を送信します。

    • 受信テストを利用するには、必須項目(イベント名カテゴリレベルメッセージ)に値を入力または選択する必要があります。

  • イベント発生条件

    イベント発生条件

    指示線4フィールド、指示線5演算子の選択、指示線6しきい値を入力して、イベントが発生する条件を設定します。

  • アラート通知対象のフィルタリング

    アラート通知対象のフィルタリング

    指示線7タグ、指示線8演算子の選択、指示線9フィルタリング値を入力して、ターゲットをフィルタリングします。入力がない場合は、全体エージェントにアラート通知を送信します。

ノート
  • イベント発生条件アラート通知対象のフィルタリングで使用できる基本文法と演算子の一覧は、次の文書を参照してください。

  • イベント発生条件アラート通知対象のフィルタリングオプションは、選択入力または直接入力オプションを選択できます。

  • イベント設定内容が保存された後は、そのオプション値は直接入力オプションで管理します。以降選択入力オプションに切り替えると、オプション値が初期化される可能性があります。

  • イベント発生条件と対象に、特殊文字(~!@#$%^&*()_+=-[]`)を入れるか、数字から始まるフィールド名を入力すると、エラーが発生する場合があります。その時は、直接入力オプションを選択し、次のように中括弧(${})にくくって入力します。

    ${4xxErrorType} == '401'

通知設定

イベント受信設定

  • 発生回数:選択した時間の間にイベント発生条件で設定したイベントが入力した回数分発生すると、アラート通知が送信されます。

    ノート
    • 選択時間を使用しないに設定すると、入力した回数だけ連続して発生通知が送信されます。
    • イベント状態が解消されたら追加に通知するオプションを有効にした場合、選択時間は、使用しないに選択することをお勧めします。
    • カテゴリオプションで選択した項目のログ収集の周期は5秒です。
  • イベント発生の一時中止:過剰なアラート通知が発生しないようにするオプションです。最初のアラート通知の後、選択された時間にアラート通知は送信されません。 また、イベント履歴メニューに記録されません。

  • 関連カテゴリ:関連カテゴリを最大5つまで設定し、通知を閲覧するときに参照します。

  • イベント受信タグ:イベント受信タグを選択すると、そのタグを持つプロジェクトメンバーと3rd-partyプラグインに通知を送信できます。イベント受信タグを選択しない場合は、プロジェクトの全体メンバーにアラート通知を送信します。

    ノート

    アラート通知 > イベント受信設定メニューでプロジェクトメンバーと3rd-partyプラグインにタグを設定できます。

イベントルールテスト

アラート通知テスト

選択した時間の間に設定したイベント条件を実行して、何回の警告通知が発生したかを確認できます。実行ボタンを選択すると、右上に通知発生件数情報が表示されます。イベント発生条件で選択したフィールドとしきい値をチャート上に表示します。

ノート
  • イベント発生条件についての詳細は、次の文書を参照してください。

  • イベントルールテスト機能は、最大24時間のデータに基づいてテストできます。

マルチ メトリクス イベント

複合指標イベントを利用するには、次の内容を理解する必要があります。

複合指標イベントは、メトリクスデータより複雑なルールを使用してイベントを生成し、アラート通知を送信します。 複合メトリクスは、次のような状況で効果的に使用できます。

  • 複数のエージェントから受信したデータに対して総合的にイベント判定を行う必要がある場合
  • 過去のデータと現在のデータを比較して、イベント判定を行う必要がある場合

メトリクスイベントは、エージェントからメトリクスを受信するたびにイベント判定を行います。 一方、複合メトリクスイベントは、各エージェントから収集したメトリクスをデータベースに保存します。 そして、もう一度照会してイベント判定を行います。 このような特性から、複数のエージェントのデータを統合して活用したり、過去のデータを活用することができます。 ただし、MXQLと呼ばれるWhaTap独自のデータ言語を使用するため、MXQLを覚える必要があります。 そのため、ユーザーが基本的なMXQLの内容を理解するだけで効果的にイベントを設定できるようにイベントテンプレートを提供します。 テンプレートを利用し、イベント対象とイベント条件に対するクエリのみ修正することでイベントを適用できます。

  1. アラート通知 > アラート設定メニューの画面からメトリックスを選択します。

  2. 複合指標セクションの右側にあるアラート通知追加を選択します。

  3. 複合指標画面が表示されたら、チャートで生成するを選択します。

イベント設定ウィンドウが表示されます。

複合メトリクスイベント設定

ノート

複合メトリクスイベントを設定するには、イベント設定権限が必要です。

ノート

複合メトリクスにイベントテンプレートの詳細については次の文書を参照してください。

イベントデータ照会

複合指標イベントは、メトリクスデータのクエリ言語であるMXQLベースにイベント条件を生成します。 チャートで生成する機能は、MXQLを自動作成するコンボボックス機能を提供します。 イベントデータを照会してチャートを構成し、アラート通知条件を直接入力するためのテンプレートです ウィジェットまたはテキストオプションを選択してイベントを設定します。

時系列チャートを設定するオプションからイベント設定時に使用するMXQLをオートコンプリートさせることができます。

イベントデータ参照

  • フィルター:イベント条件の対象を選択します。 演算式、タグ、フィルタリング値を入力して、フィルタリング条件を作成します。

    フィルター

  • グループ化:グループ化されたメトリクスデータを選択します。 複数を選択できます。

  • タイム単位:グループ化されたデータを分割する時間基準を設定します。 時間単位で選択して設定できます。

  • フィールド:アラート通知条件に使用するフィールドを選択します。 複数を選択できます。

通知

アラート通知設定の基本情報を入力します。

  • イベント活性化:トグルボタンをクリックして、イベント活性化の有無を選択できます。

  • レベル: 危険(Critical), 警告(Warning), 情報の中で一つのレベルを選択します。

    イベント状態が解消されたら追加に通知する: イベント項目中に発生したイベント状態が解消されたら追加に通知する送信可否を選択できます。 トグルボタンを選択し、機能をオンまたはオフできます。

  • 題名:アラート通知のタイトルを入力します。

  • メッセージ:イベント発生時に出力する通知メッセージを入力します。 ${Tag}または${Field}を入力してメッセージに変数を適用できます。 変数に入力するキーは、選択したメトリクスデータカテゴリにある値を入力します。 メトリックス照会メニューで入力できるタグまたはフィールドキーを確認できます。

    Message example

アラート通知ポリシー

アラート通知を送信する条件を入力します。

  • データ照会範囲:イベント条件に使用するMXQLのリアルタイムデータの照会範囲を設定します。 イベント データの照会に含まれるフィールドのみ使用できます。

    複合メトリクスイベントは、DBに保存されたメトリクスを照会して使用します。 最初にデータを照会する時間範囲を指定する必要があります。 データ取得時間を5分で選択すると、過去5分間に収集されたデータが照会して、イベント発生条件を確認します。 直近のデータに対するイベントを設定する場合は短く、長い期間に対する統計的なアクセスの場合は長く設定できます。

    ノート

    実際の使用例については、次の文書を参照してください。

  • 条件:MXQLに反映するフィールドと演算規則、しきい値を入力します。

追加情報

アラート通知を受信するために追加オプションを設定します。

  • 間隔:選択した時間の間隔で通知条件を確認します。

  • ミュート:頻繁な警告通知の発生を防ぐオプションです。 最初の警告通知以降、選択した時間の間には警告通知を送信しません。 また、イベント履歴メニューに残りません。

  • イベント受信タグ:イベント受信タグを選択すると、該当タグを持つプロジェクトメンバーと3rd-partyプラグインに通知を送信できます。 イベント受信タグを選択しない場合は、プロジェクトの全体メンバーに警告通知を送信します。

    ノート

    アラート通知 > イベント受信設定メニューでプロジェクトメンバーと3rd-partyプラグインにタグを設定できます。

アラート条件テスト

イベントルールテスト

選択した時間に設定したイベント条件を実行し、アラート通知の件数を確認できます。 実行ボタンを選択すると、通知発生の件数情報が表示され、イベント発生条件で選択したフィールドとしきい値をチャートに表示します。

イベント設定に含まれているほとんどの内容は、MXQLを使用して指定されます。 MXQLが適切に作成されたかをミュレーションできる機能を提供します。 シミュレーション機能は、過去24時間のデータを照会してイベント判定をした後、何件のメトリクスが照会され、そのうち何件のイベント判定が成功したかを表示します。

メトリクスイベントの修正と削除

  1. アラート通知 > アラート設定メニューから移動した後メトリックスタブを選択します。

  2. イベント一覧から修正または削除する項目の右端の編集アイコンボタンをクリックします。

  3. メトリクスまたは複合メトリクスのイベント設定ウィンドウが表示すると、各オプションを修正して、保存ボタンを選択します。

    選択したイベントを削除するには、イベント設定画面の右上にある削除アイコン 削除ボタンを選択します。

発生条件、対象選択ガイド

メトリクスアラート通知でイベントの発生条件とイベント対象選択では同じ文法を使用します。 ただし、イベントの生成条件は、フィールド(Field)のKeyを変数として使用し、イベント対象選択は、タグ(Tag)のKeyを変数として使用します。

基本文法

  • 文字列をそのまま入力すると変数、バッククォート(' ')またはダブルクォート('' ")で囲むとtextとして認識します。

    oid == "oid"
    1. oid : 変数
    2. == : 関数
    3. "oid" : text
    // onameがott-1235の場合

    // 正常な場合
    onname = 'ott-1235'またはonname = "ott-1235"

    // 異常な場合、通知は機能しません。
    onname = ott-1235
  • 数字をそのまま入力すると、number、バッククォート(' ')またはダブルクォート('' '')で囲むとtextとして認識します。

    oid == 123
    1. oid : 変数
    2. == : 関数
    3. 123 : number
    // oidが123の場合

    // 正常な場合
    oid = 123

    // 異常な場合、通知は機能しません。
    id == '123' または oid == '123'

使用可能な演算子の一覧

オペレーター使い方説明
==operand1 == operand2operand1とoperand2の値が同じであることを確認します。
!=operand1 != operand2operand1とoperand2の値が異なることを確認します。
>operand1 > operand2operand1の値がoperand2の値より大きいことを確認します。
>=operand1 >= operand2operand1の値がoperand2の値より大きいことを確認します。
<operand1 < operand2operand1の値がoperand2の値より小さいことを確認します。
<=operand1 <= operand2operand1の値がoperand2の値より小さいことを確認します。
likeoperand1 like operand2operand1にoperand2が含まれているかどうかをパターンで検索します。
&&expression1 && expression2expression1とexpression2の両方がtrueであることを確認します。
andexpression1 and expression2expression1とexpression2がいずれもtrueが確認します。
&&と同じ役割を果たす演算子です。
||expression1 || expression2expression1またはexpression2がtrueであることを確認します。
orexpression1 or expression2expression1またはexpression2がtrueか確認します。
||と同じ役割を果たす演算子です。

likeの使い方

ワイルドカード(*)含む文字列を簡単に検索できます。

  • 特定のキーワードで始まる文字列検索


    Key like "Value*"

  • 特定のキーワードで終わる文字列検索


    Key like "*Value"

  • 特定のキーワードを含む文字列検索


    Key like "*Value*"

  • キーワードの中にワイルドカード(*)が使用できません。


    //対応しない文法
    Key like "Va*lue"

  • like演算子からワイルドカード(*)を省略する場合、equals(==)で動作します。


    //以下の2つの文章は全く同じ結果になります。
    Key like "Value"
    Key == "Value"

使用可能なメソッド一覧

メソッド使い方説明
startsWithstartsWith(param1, param2)param1をKeyとするValueがparam2で始まる場合は、true、反対の場合は、false
endsWithendsWith(param1, param2)param1をKeyとするValueがparam2で終わる場合、true、反対の場合は、false
isNullisNull(param1)param1がnullの場合は、true、反対の場合は、false
isNotNullisNotNull(param1)param1がnullでない場合は、true、反対の場合は、false
isEmptyisEmpty(param1)param1がnullまたはEmptyString("")の場合は、true、反対の場合は、false
isNotEmptyisNotEmpty(param1)param1がnullでも、EmptyString("")でもない場合は、true、反対の場合は、false

startsWith

startsWith(Key, "Value")

endsWith

endsWith(Key, "Value")

isNull

isNull(Key)

isNotNull

isNotNull(Key)

isEmpty

isEmpty(Key)

isNotEmpty

isNotEmpty(Key)

レベル動作ガイド

  1. 優先順位に基づくイベント発生

    複数のレベル条件を同時に満たす場合、最も優先度の高いイベントのみが発生します。

    設定:
    - Warning: CPU > 70%
    - Critical: CPU > 90%

    現在の状態: CPU 95%
    → 結果: Critical イベントのみ発生(Warning は抑制)
  2. レベル上昇

    低レベルのイベントが進行中の状態で、高レベル条件を満たした場合、両方のレベルが「進行中」となります。

    設定:
    - Warning: CPU > 70%
    - Critical: CPU > 90%

    シナリオ:
    1) CPU 80% → Warning 発生(進行中)
    2) CPU 95% → Warning(進行中)、Critical(進行中)
  3. レベル下降

    進行中の高レベルイベントが低レベル条件に戻った場合、高レベルは解消され、低レベルが維持されます。

    設定:
    - Warning: CPU > 70%
    - Critical: CPU > 90%

    シナリオ:
    1) CPU 97% → Critical 発生
    2) CPU 85% → Critical 解消、Warning 維持
    3) CPU 65% → Warning 解消
  4. 動作フロー

    - Warning: CPU > 70%
    - Critical: CPU > 90%

    メトリック値: 60% → 75% → 92% → 85% → 60%
    状態: 正常 Warning Critical Warning 正常
    (発生) (発生) (維持) (解消)
    Warning
    (維持)
ノート

進行中のイベントは、条件が満たされている限りアクティブ状態を維持し、条件が解除されるまで継続します。

条件設定ガイド

注意

指標名が数字で始まる場合、または特殊文字を含む場合は ${指標名} の形式で記述する必要があります。

  • 括弧 (), []
  • 演算子 +, -, *, /, %
  • 区切り文字 :, @, #, ,, (スペース)
  • その他の特殊文字 !, ^, &, |, ~, ```, =

${} を使用した例:

${cpu(xos)} > 50
${mem[0]} >= 100
${cpu-usage} > 80
${namespace:cpu} > 70
${metric name} > 60
${4xx_error} > 10

${} を付けずに使用可能: 英字、アンダースコア(_)、ドット(.)のみで構成されている場合

cpu > 80
cpu_usage > 50
CPUUtilization.Average > 0.8
  1. 比較演算子

    数値比較
    大きい:            cpu > 80
    以上: cpu >= 80
    小さい: memory < 1000
    以下: memory <= 1000
    等しい: status == 200
    等しくない: error != 0
    文字列比較
    status == 'OK'
    region == "us-east-1"
  2. 算術演算子

    • 基本算術
    基本算術
    加算:    cpu + 10 >= 90
    減算: memory - 100 >= 500
    乗算: cpu * 2 >= 100
    除算: disk / 1024 >= 100
    剰余: value % 10 == 0
    • 括弧による優先順位制御
    優先順位制御
    (cpu + memory) * 2 >= 200
    (disk - used) / total >= 0.2
    ((cpu + memory) / 2) >= 50
    • 負数の表現
    負数の表現
    cpu > -100
  3. 論理演算子

    • AND (&&)
    cpu > 80 && memory > 1000
    ${cpu(xos)} > 50 && ${mem(xos)} > 60
    • OR (||)
    cpu > 90 || memory > 90
    disk < 10 || network > 1000
    • 複合論理式
    (cpu > 50 && memory > 50) || disk < 20
    cpu > 80 && (memory > 1000 || disk > 500)
  4. パターンマッチ演算子

    • LIKE
    oname like 'prod-*'
    url like '*error*'
    message like 'WARN%'
    • NOT LIKE
    oname not like 'test-*'
    url not like '*debug*'
  5. 組み込み関数

    • Null チェック
    isNull(value)             # null か確認
    isNotNull(value) # null でないか確認
    nvl(value, 0) # null の場合はデフォルト値
    isEmpty(str) # 空文字列か確認
    isNotEmpty(str) # 空でないか確認
    • 集計関数
    sum(cpu, memory, disk)              # 合計
    avg(cpu, memory) # 平均
    max(cpu, memory, disk) # 最大
    min(cpu, memory, disk) # 最小
    count(value1, value2, value3) # 件数
    • 数学関数
    round(cpu, 2)             # 四捨五入(小数2桁)
    • 文字列関数
    length(str)                # 文字数
    startsWith(str, 'prefix') # プレフィックス確認
    endsWith(str, 'suffix') # サフィックス確認
    indexOf(str, 'search') # 位置
    substring(str, 0, 10) # 部分文字列
    trim(str) # トリム
    replace(str, 'old', 'new') # 置換
    hasStr(str, 'search') # 含むか確認
    • 条件関数

      if: 条件が true の場合は true値、false の場合は false値 を返す

      形式
      if(条件, true値, false値)
      if(value >= 90, 'High', 'Medium') == 'High'

      decode: 値と条件を比較し、一致した結果を返す。一致がなければデフォルト値を返す

      形式
      decode(値, 条件1, 結果1, 条件2, 結果2, ..., 条件N, 結果N, デフォルト)
      decode(value, 1, 'Low', 2, 'Medium', 3, 'High', 'Unknown') == 'Unknown'

      in: 値が候補値のいずれかと一致すれば true、そうでなければ false

      形式
      in(値, 候補1, 候補2, ..., 候補N)
      in(status, 200, 201, 204) == false
注意

記述時の注意事項

  • 推奨:
  • シンプルな変数名は $ 不要(例: cpu, memory)
  • 特殊文字を含む場合は必ず $ を使用
  • 複雑な式は括弧で明確化
  • 関数名は正確に記述(大文字小文字を区別)
  • 避けるべきこと:
  • 不完全な式(例: cpu >, memory &&)
  • 括弧の不一致(例: (cpu > 80, cpu > 80))
  • 無効な演算子(例: cpu >> 80, cpu >< 80)

テンプレート

メトリックスイベント

アラート通知 > イベント設定 > メトリックスセクションでアラート通知追加ボタンを選択します。 テンプレートで希望する項目を選択します。

  • WARNING_OLD_GENARATION_GC

    ヒープメモリ(Heap Memory)のOld Generation領域でGCが発生したらアラート通知を送信します。

  • TOO_SLOW_SQL

    実行中のクエリが5秒以上で非常に遅いクエリが発生したらアラート通知を送信します。

  • TOO_MANY_ACTX

    8秒を超えるアクティブトランザクションの数が100を超えると、アラート通知を送信します。

  • APDEX

    APDEX数値が0.7を下回ったらアラート通知を送信します。

複合メトリクスイベント

  • 非活性化のエージェントが見つかりました。

    条件:num_of_current_agents < 6

    プロジェクトに含まれたすべてのエージェントの中で、正常なエージェント数が6つ未満になるイベントが発生したらアラート通知を送信します。

  • 非常に遅いアクティブセッションが見つかりました。

    条件:very_slow_tx_cnt_m5_avg > 10

    プロジェクトに含まれた特定のokindに属するエージェントから、8秒を超えたトランザクションの数の合計が10件を超えたらアラート通知を送信します。

  • 先週と比べたTPSが30%以上変化しました。

    条件:one_week_diff_abs > current_tps * 0.3

    プロジェクトに含まれた特定のokindに属するエージェントのTPSの合計が、7日前と比較して30%以上変化したらアラート通知を送信します。

Tips

複数のエージェントから受信したデータに対して、総合的なイベント判定を行う場合は、次の複合メトリクステンプレートを設定してください。

  • 非活性化のエージェントが見つかりました。
  • 非常に遅いアクティブセッションが見つかりました。

過去のデータと現在のデータを比較してイベント判定を行う場合は、次の複合メトリクステンプレートを設定してください。

  • 先週と比べたTPSが30%以上変化しました。