本文へスキップ

メトリクスアラートの通知

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

メトリクスイベントとは

メトリクスイベントは、基本イベント(アプリケーションイベント、サーバーイベントなど)より具体的で複雑なイベントを設定するために使用します。プロジェクトがリアルタイムで収集中のメトリクスデータに基づいてイベントを設定できます。使用状況に応じて、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. メトリクスまたは複合メトリクスのイベント設定ウィンドウが表示すると、各オプションを修正して、保存ボタンを選択します。

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

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

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

テンプレート

メトリクスイベントテンプレート

ノート

クバネティスイベントのreasonフィールドの詳細については、クバネティス公式文書を参照してください。

BackOff

Kubernetesイベントのreasonフィールド情報のうち、BackOffが0回以上表示された場合、その通知が発生します。 メッセージ例は次のとおりです。

Kubernetesイベント(Kube Event ${message})

Evicted

Kubernetesイベントのreasonフィールド情報のうち、Evictedが0回以上表示された場合、その通知が発生します。 メッセージ例は次のとおりです。

Kubernetesイベント(Kube Event ${message})

FailedCreatePodSandBox

Kubernetesイベントのreasonフィールド情報のうち、FailedCreatePodSandBoxが0回以上表示された場合、その通知が発生します。 メッセージ例は次のとおりです。

Kubernetesイベント(Kube Event ${message})

FailedMount

Kubernetesイベントのreasonフィールド情報のうち、FailedMountが0回以上表示された場合、その通知が発生します。 メッセージ例は次のとおりです。

Kubernetesイベント(Kube Event ${message})

FailedScheduling

Kubernetesイベントのreasonフィールド情報のうち、FailedSchedulingが0回以上表示された場合、その通知が発生します。 メッセージ例は次のとおりです。

Kubernetesイベント(Kube Event ${message})

FailedSync

Kubernetesイベントのreasonフィールド情報のうち、FailedSyncが0回以上表示された場合、その通知が発生します。 メッセージ例は次のとおりです。

Kubernetesイベント(Kube Event ${message})

NodeNotReady

Kubernetesイベントのreasonフィールド情報のうち、NodeNotReadyが0回以上表示された場合、その通知が発生します。 メッセージ例は次のとおりです。

Kubernetesイベント(Kube Event ${message})

Unhealthy

Kubernetesイベントのreasonフィールド情報のうち、Unhealthyが0回以上表示された場合、その通知が発生します。 メッセージ例は次のとおりです。

Kubernetesイベント(Kube Event ${message})

コンテナCPU割当てによる使用率アラート

コンテナのCPU Limit基準でCPUの全体使用量(${cpu_per_quota})が70%以上の場合、その通知が発生します。 メッセージ例は次のとおりです。

${okindName}${oname}コンテナのCPU使用率が「${cpu_per_quota}% >= 70%」でです。

コンテナメモリ失敗回数

コンテナメモリのLimit到達件数が 1回以上の場合、その通知が発生します。 メッセージ例は次のとおりです。

${okindName}${oname}コンテナが limitを超えたため、${mem_failcnt}が増加しました。

コンテナメモリ使用率

コンテナメモリのLimit基準使用量(${container.mem_percent})が90%以上の場合、その通知が発生します。 メッセージ例は次のとおりです。

${okindName}${oname}コンテナのメモリ使用率は「${container.mem_percent}% >= 90%」です。

コンテナDEAD状態の通知

コンテナの状態コードが100の場合、その通知が発生します。 状態コード100DEADを意味します。 メッセージ例は次のとおりです。

${oname}コンテナがDEAD状態です。

クラスタCPU Request通知

ノード割り当て可能なCPU量をLimit CPUの合計で割った値に100を乗じた値が80%以上であれば、その通知が発生します。 メッセージ例は次のとおりです。

クラスタのCPUクォータに対してCPU Request(最低要求リソース)が80%を超えました。

クラスタMemory Request通知

ノード割り当て可能なメモリ量をLimit Memoryの合計で割った値に100を乗じた値が80%以上であれば、その通知が発生します。 メッセージ例は次のとおりです。

クラスタのMemoryクォータに対してMemory Request(最低要求リソース)が 80%を超えました。

クラスタCPU Request通知

ノード割り当て可能なCPU量をLimit CPUの合計で割った値に100を乗じた値が60%以上であれば、その通知が発生します。 メッセージ例は次のとおりです。

クラスタのCPUクォータに対してCPU Request(最低要求リソース)が60%を超えました。

クラスタMemory Request通知

ノード割り当て可能なメモリ量をLimit Memoryの合計で割った値に100を乗じた値が60%以上であれば、その通知が発生します。 メッセージ例は次のとおりです。

クラスタのMemoryクォータに対してMemory Request(最低要求リソース)が 60%を超えました。

クラスタPod数の通知

ノードに割り当て可能なPodが存在しない場合、その通知が発生します。 メッセージ例は次のとおりです。

マスターに割当てできるPodの数は0です。

ノードCPU使用率のアラート通知

ノードのCPU使用率(${cpu})が70%以上の場合、その通知が発生します。 メッセージ例は次のとおりです。

${oname}のCPU使用率が「${cpu}% >= 70%」です。

ノードメモリ使用率のアラート通知

ノードのメモリ使用率(${memory_pused})が90%以上の場合、その通知が発生します。 メッセージ例は次のとおりです。

${oname}のメモリ使用率が「${memory_pused}% >= 90%」です。

割り当てできないノード通知

ノードに割り当て可能なPod数が 0以下の場合、通知が発生します。

APDEX

トランザクションが存在し、APDEX点数が0.7点より低い場合、その通知が発生します。 メッセージ例は次のとおりです。

ノードに割り当て可能なPod数が0個以下の場合、その通知が発生します。 メッセージ例は次のとおりです。

APDEXが0.7未満です (${oname})

複合メトリクスのイベントテンプレート

Inactive agents has been found

アクティブ化されたエージェントの数が指定された条件よりも少ない時、通知が発生します。 メッセージ例は次のとおりです。

${ip} ${okindName} The number of active agents has decreased to ${num_of_current_agents}.

TPS has changed by more than 30% compared to the previous week

アプリケーションのTPSが先週に比べて30%以上変化した時、通知が発生します。 メッセージの例は次のとおりです。

${okindName} a week ago : ${prev_week_tps_display}, current : ${current_tps_display}, difference : ${one_week_diff_display}

Very slow active transactions detected

アプリケーションの8秒超過区間のトランザクション数が平均10個を超えると、通知が発生します。 メッセージの例は次のとおりです。

${okindName} ${very_slow_tx_cnt_m5_avg_display} active transactions performed for more than 8 seconds were detected.

APDEX score dropped

APDEX点数が70未満になると、通知が発生します。 メッセージ例は次のとおりです。

The average apdex of ${pname} in the last 5 seconds is ${apdex_display}

CPU % is too high

ノードのCPU使用率が80%を超えると、通知が発生します。 メッセージの例は次のとおりです。

CPU utilization rate of the ${oname} in the last minute > ${_rule_} %

CPU User % is too high

ユーザーが使用するCPU使用率が50%を超えると、通知が発生します。 メッセージ例は次のとおりです。

CPU User utilization rate of the ${oname} in the last minute > ${_rule_} %

The number of agents with high CPU SYS % is too large

システムが使用するCPU使用率が50%を超えると、通知が発生します。 メッセージの例は次のとおりです。

The number of agents with a CPU SYS of 70% or more in the last minute > ${_rule_} %

The Disk I/O is too high

ディスクの I/O使用率が10%を超えると、通知が発生します。 メッセージ例は次のとおりです。

In the last minute, ${oname}'s Disk I/O > ${_rule_} %

The Disk Used % is too high

ファイルシステムの使用率が90%を超えると、通知が発生します。 メッセージ例は次のとおりです。

In the last minute, ${oname}'s Disk Used > ${_rule_} %

Network Traffic I/O is too high

ネットワークのインバウンドトラフィック/アウトバウンドトラフィックが10%を超えると、通知が発生します。 メッセージ例は次のとおりです。

In the last minute, ${oname}'s Network Traffic I/O > ${_rule_} %

Network Packet I/O is too high

ネットワークのインバウンドパケット/アウトバウンドパケットが10%を超えると、通知が発生します。 メッセージ例は次のとおりです。

In the last minute, ${oname}'s Network Packet I/O > ${_rule_} %

Network Error I/O is too high

ネットワークのインバウンドエラー/アウトバウンドエラーが10%を超えると、通知が発生します。 メッセージ例は次のとおりです。

In the last minute, The maximum value of the ${oname}'s Network Error I/O > ${_rule_} %

The kube-apiserver latency over 10 second

コントロールプレーンコンポーネントの中でkube-apiserverのlatencyが10秒超えると、通知が発生します。 ただし、WATCH行為は除きます。 メッセージ例は次のとおりです。

Latency of the ${verb} verb in ${instance} of kube-apiserver exceeded ${metricValue} seconds.

The kube-apiserver response increase/decrease rate for error codes

コントロールプレーンコンポーネントの中でkube-apiserverのエラー応答が50件を超え、増減率が50% 以上に変化した場合、通知が発生します。 メッセージ例は次のとおりです。

Rate of increase in the number of requests for code ${code} on instance ${instance} of kube-apiserver exceeded ${metricValue}.