Monitoring Query Language (MQL)リファレンス

このトピックでは、Monitoring Query Language (MQL)式に含まれるコンポーネント、それらが出現する順序および有効な値について説明します。

MQL構文は、モニタリング・サービスに公開されているメトリックを問い合せるための式を制御します。コンソールでは、MQL式は拡張モードで表示されます。結果をグループ別に集計したり、他の高度な問合せ機能を使用する必要がない場合は、コンソール基本モードを使用して、より単純なバージョンのメトリック問合せを作成できます。

MQL式のコンポーネント

MQL式には次のコンポーネントが含まれています:

  • メトリック
  • 間隔
  • ディメンション、1つ以上の名前/値ペアとして(オプション)
  • グループ化関数(オプション)
  • 統計
  • 比較操作(オプション)。アラームの定義に役立ちます。

問合せコンポーネントは次の順序で表示されます(太字のコンポーネントが必要です)。

metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic

アラームに使用する比較操作の問合せには、次の書式を使用できます(太字のコンポーネントが必要です)。

  • metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic(統計情報はabsent())
  • metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic operator value
  • metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic operator (value1, value2)

アラーム問合せおよびメトリック問合せをネストできます。

ノート

ネストされたアラーム問合せは現在コンソールでサポートされていません。APIを使用して、ネストされた問合せでアラームを作成します。

ネストした問合せでは、アラームの部分は先頭(カッコで囲まれた部分)に表示され、その後にグループ化ファンクション(オプション)と統計が続きます。次の構文では、太字を使用して必須コンポーネントを示します。

(metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic).groupingfunction.statistic

例1: CPU使用率が80%より大きいホストの数: 

(CpuUtilization[1m].max() > 80).grouping().sum()

例2: 成功率が0.99未満の可用性ドメインの数:

(SuccessRate[1m].groupBy(availabilityDomain).mean() < 0.99).grouping().sum()

メトリック問合せコンポーネント

問合せのメトリック・コンポーネントは、間隔の前に表示されます。

metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic

メトリックの有効な値は、リソースによって異なります。メトリックの例は、コンピュート・インスタンスにより送信されるCpuUtilizationです。メトリック参照へのリンクを含むサポート対象リソースのリストは、サポートされているサービスを参照してください。ListMetrics操作を使用して、コンピュート・サービスなど、特定のサービスにより送信されたメトリックを検索することもできます。この操作は、メトリック定義を戻します。

間隔問合せコンポーネント

問合せの間隔コンポーネントが、メトリックと統計の間(オプションのディメンション名/値ペアとグループ化関数の前)に表示されます。

metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic

間隔でサポートされる値は、メトリック問合せで指定された時間範囲によって異なります(アラーム問合せには適用されません)。時間範囲が小さくなるほど、多くの間隔値がサポートされます。たとえば、時間範囲に1時間を選択すると、すべての間隔値がサポートされます。時間範囲に90日を選択すると、1hまたは1dの間隔値のみがサポートされます。

Monitoring Query Language (MQL)構文(コンソール拡張モード)では、次の範囲の間隔値がサポートされています:

1m-60m1h-24h1d

コンソール(基本モード)の間隔オプションでは、次の範囲の値がサポートされています: 

ノート

有効なアラーム間隔は、メトリックが発行される頻度によって異なります。たとえば、5分ごとに発行されるメトリックには、5分以上のアラーム間隔が必要です。ほとんどのメトリックは1分ごとに発行されるため、任意のアラーム間隔がサポートされます。特定のメトリックに対して有効なアラーム間隔を決定するには、関連するサービスのメトリック参照を確認します。
  • 自動(サービス・メトリック・ページのみ) -時間範囲に基づく自動間隔選択:
    時間範囲 自動選択時の間隔
    6時間以下 1分
    36時間以下(ただし6時間以上) 5分
    36時間以上 1時間
  • 1分(「サービス・メトリック」ページ) / 1m(「アラームおよびメトリック・エクスプローラの作成」ページ)
  • 5分(「サービス・メトリック」ページ) / 5m(「アラームおよびメトリック・エクスプローラの作成」ページ)
  • 1時間(「サービス・メトリック」ページ) / 1h(「アラームおよびメトリック・エクスプローラの作成」ページ)
  • 1日(「サービス・メトリック」ページ) / 1d(「アラームおよびメトリック・エクスプローラの作成」ページ)
ノート

メトリック問合せの場合、選択した間隔によって、戻されるデータの最大時間範囲を決定する、リクエストのデフォルトのレゾリューションが決定されます。

メトリック問合せで使用されるレゾリューションのパラメータの詳細は、SummarizeMetricsDataを参照してください。

問合せで戻される最大時間範囲

メトリック問合せで返される最大時間範囲は、レゾリューションによって異なります。メトリック問合せの場合、デフォルトでは、レゾリューションは問合せ間隔と同じです。

最大時間範囲は、指定された終了時間に関係なく現在の時間を使用して計算されます。コンソール(基本モード)で選択できる各間隔の最大時間範囲は次のとおりです。コンソールの基本モードで使用できない間隔値(12時間など)を指定するには、拡張モードに切り替えます

間隔 デフォルトのレゾリューション(メトリック問合せ) 戻される最大時間範囲

1分(「サービス・メトリック」ページ)

1m (「アラームおよびメトリック・エクスプローラの作成」ページ)

自動(サービス・メトリック・ページ)*。選択した期間が6時間以下の場合

1分 7日

5分(「サービス・メトリック」ページ)

5m (「アラームおよびメトリック・エクスプローラの作成」ページ)

自動(サービス・メトリック・ページ)*。選択した期間が6時間以上36時間未満の場合

5分 30日

1時間(「サービス・メトリック」ページ)

1h (アラームおよびメトリック・エクスプローラの作成ページ)

自動(サービス・メトリック・ページ)*。選択した期間が36時間を超える場合

1時間 90日

1日(サービス・メトリック・ページ)

1d (アラームおよびメトリック・エクスプローラの作成ページ)

1日 90日

* 「間隔」「自動」が選択されたときに返される最大時間範囲(サービス・メトリック・ページのみ)は、自動間隔の選択によって決まります。自動間隔の選択は、選択した期間に基づきます。

間隔とは異なるデフォルト以外のレゾリューションを指定するには、SummarizeMetricsData操作を使用します。

戻されたデータの例を参照

例1: 現在の時間までの1分間隔とレゾリューションで、1月8日10:00に送信されました。レゾリューションまたは終了時間の指定がないため、デフォルトで1mの間隔値がレゾリューションに設定され、終了時間が現在の時間(2019-01-08T10:00:00.789Z)に設定されます。このリクエストは、最大7日間のメトリック・データを返します。この7日の期間内で発生可能な最も早いデータ・ポイントは、1月1日10:00 (2019-01-01T10:00:00.789Z)です。

例2: 2日前までの5分間隔と1分のレゾリューションで、1月8日10:00に送信されました。レゾリューションによって最大時間範囲が決定されるため、最大7日間のメトリック・データ・ポイントが戻されます。指定した終了時間は1月6日10:00 (2019-01-06T10:00:00.789Z)ですが、この7日の期間内で可能な最も古いデータ・ポイントは1月1日10:00 (2019-01-01T10:00:00.789Z)になります。したがって、この例では、5日間のメトリック・データ・ポイントのみを戻すことができます。

アラームの問合せの場合、指定した間隔はリクエストのレゾリューションに影響しません。アラーム問合せリクエストのレゾリューションで有効な値は、1mのみです。アラーム問合せに使用されるレゾリューションのパラメータの詳細は、アラームを参照してください。

ディメンション問合せコンポーネント

問合せのdimensionname="dimensionvalue"コンポーネントが、間隔と統計の間(オプションのグループ化関数の前)に表示されます。

metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic

ディメンション値を二重引用符で囲みます。可用性ドメインでフィルタ処理するためのディメンション名/値ペアの例: availabilityDomain = "VeBZ:PHX-AD-1"

複数のディメンション名/値ペアを指定できます。各ペアを大カッコ内に配置し、ペアをカンマで区切ります。

dimensionnameの有効な値はメトリックによって異なります。ディメンション名の例はresourceDisplayNameで、コンピュート・インスタンスにより送信されたCpuUtilizationメトリックに含まれています。ディメンションを含むメトリック参照へのリンクを含むサポートされるリソースのリストは、サポートされているサービスを参照してください。ListMetrics操作を使用して、特定のアプリケーションまたはサービス(コンピュート・サービスなど)により送信されるメトリック(およびそのディメンション)を見つけることもできます。

グループ化関数問合せコンポーネント

問合せのgroupingfunctionコンポーネントが間隔と統計の間(オプションのディメンション名/値ペアの後)に表示されます。

metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic

有効なグループ化関数は、次のとおりです。

グループ化関数(MQL式、コンソールの拡張モード)

グループ化関数のオプション(コンソールの基本モード)

説明
groupBy() (使用できません)

問合せ結果をグループ(ディメンションまたはリソース・グループ)別に集計します。

たとえば、groupBy(availabilityDomain)は、各可用性ドメインからの結果を結合するように、可用性ドメインごとに結果をグループ化します。

grouping() メトリック・ストリームの集計

選択した統計のすべてのメトリック・ストリームの合計値を返します。

統計問合せコンポーネント

間隔およびオプションのディメンション名/値ペアとグループ化関数の後に、問合せの統計コンポーネントが表示されます。

metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic

有効な統計は次のとおりです。

統計(MQL式、コンソールの拡張モード)

統計オプション(コンソールの基本モード)

説明
absent() (不在を参照) メトリックが間隔全体に存在しない場合は1を返します。それ以外の場合は、0を返します。アラームの定義に役立ちます。
avg() (使用できません) 指定された期間中の合計を件数で割った値を返します。mean()と同じです。
count() COUNT 指定された期間内に受信した観測データの数を返します。
increment() (使用できません) 間隔ごとの変更を返します。
max() MAX 指定した期間中に観測された最大値を返します。
mean() MEAN 指定された期間中の合計を件数で割った値を返します。
min() MIN 指定した期間中に観測された最小値を返します。
percentile()

P50

P90

P95

P99

P99.9

指定したパーセンタイルの推定値を返します。有効な値は0.0より大きく1.0未満です。

たとえば、percentile(0.8)は、80パーセンタイルの値を返します。

rate() RATE 変更の間隔ごとの平均レートを返します。単位は秒です。
sum() SUM 合計されたすべての値を返します。

演算子および値問合せコンポーネント

問合せの演算子値コンポーネントは、しきい値アラーム問合せの統計の後に表示されます。演算子に応じて、次のいずれかまたは2つの値が必要です:

  • metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic operator value
  • metric[interval]{dimensionname="dimensionvalue"}.groupingfunction.statistic operator (value1, value2)

有効な演算子は次のとおりです。

演算子(MQL式、コンソールの拡張モード)

「演算子」オプション(コンソールの基本モード)

値の数
> 次より大きい 1
>= 次以上 1
== 次と等しい 1
!= (次と等しくない) (使用できません) 1
< 次より小さい 1
<= 次以下 1
in (指定値を含む) 範囲内(指定値を含む) 2
not in (指定値を含む) 範囲外(指定値を含む) 2
該当なし。absent()を参照してください。 不在 0