Metrics Explorer 使用時の指標の選択

このドキュメントでは、プロジェクトで収集された時系列データを表示する一時的なグラフを構成する方法について説明します。Metrics Explorer は数値の時系列データのみを表示できます。

表示するデータを選択する

Metrics Explorer の使用時に表示する時系列を構成するには、メニューから選択してクエリを作成するか、クエリを作成します。クエリを作成する場合は、クエリ言語を選択してクエリエディタまたはテキストベースのインターフェースを使用します。

  • Monitoring Query Language(MQL)クエリは、時系列と、時系列がグループ化され、アライメントされる方法を指定します。MQL インターフェースでは、候補の表示と構文チェックを行うクエリエディタがサポートされています。

    一般的に、MQL クエリを他のインターフェースで使用可能な形式に変換することはできません。保存していないクエリは、[MQL] タブを切り替えると破棄されます。

  • Prometheus Query Language(PromQL)クエリは、時系列と、それらの時系列をグループ化してアライメントする方法を指定します。 PromQL インターフェースは、候補を表示するエディタをサポートしています。

    通常、PromQL クエリを他のインターフェースで使用可能な形式に変換することはできません。保存していないクエリは、[PromQL] タブを切り替えると破棄されます。

  • Monitoring フィルタ クエリでは、時系列を指定しますが、グループ化ステートメントまたはアライメント ステートメントは含まれません。

    Monitoring フィルタを使用して、Monitoring がグラフ化できる時系列を指定できます。たとえば、VM 上で実行されているプロセスの数をグラフ化するには、関数を指定する Monitoring フィルタを使用する必要があります。

    Monitoring フィルタを他のインターフェースに必要な形式に変換することはできません。したがって、別のインターフェースに切り替えると、クエリが破棄される可能性があります。

クエリでは、通常、指標タイプ、リソースタイプ、フィルタを指定します。

  • 指標タイプ」は、リソースから収集される測定値を識別します。これには、測定対象および測定値がどのように解釈されるかについての説明が含まれます。指標タイプは、「指標」と呼ばれることもあります。指標の例には「CPU 使用率」があります。概念的な詳細については、指標タイプをご覧ください。

  • 「リソースタイプ」は、指標データを取得するリソースを指定します。リソースタイプは、「モニタリング対象リソースタイプ」や「リソース」と呼ばることもあります。リソースの例には、「Compute Engine 仮想マシン(VM)インスタンス」があります。概念的な詳細については、モニタリング対象リソースをご覧ください。

MQL クエリと PromQL クエリには、グループ化とアライメント ステートメントが含まれます。ただし、Monitoring フィルタを記述するか、メニューを使用してグラフ化する時系列を選択する場合は、メニューを使用してグループ化とアライメントの設定を構成します。

メニューを使用してクエリを作成する

メニューを使用してクエリを作成する手順は次のとおりです。

  1. Google Cloud コンソールで [Monitoring] を選択するか、次のボタンをクリックします。
    [Monitoring] に移動
  2. ナビゲーション パネルで、[Metrics Explorer] を選択します。

  3. [CONFIGURATION] タブを選択します。

  4. グラフ化する指標とリソースを選択します。

    1. [指標を選択] メニューを展開します。

    2. 省略可: メニューに表示されるオプションの数を減らすには、フィルタバーに指標またはリソース名を入力します。たとえば、「util」と入力すると、util を含むエントリを表示するようにメニューが制限されます。エントリは、大文字と小文字を区別しないテストに合格した場合に表示されます。

      最近のデータがない指標を含め、すべての指標のリストを表示するには、[有効なリソースと指標のみを表示する] を無効にします。デフォルトでは、この切り替えが有効に設定されており、メニューにはデータがある指標とリソースのみが表示されます。

    3. [リソース] メニューで、指標データの取得元となるリソースを選択します。

      リソース対する指標を書き込まない場合は、[Unspecified] を選択します。

    4. [Metric category] メニューで、指標のカテゴリを選択します。

      このカテゴリは通常、指標接頭辞に続く最初の用語です。たとえば、指標 compute.googleapis.com/instance/utilization の場合、カテゴリは instance です。

    5. [指標] メニューで、グラフにする指標を選択します。

    6. [適用] をクリックします。

    たとえば、仮想マシンの CPU 使用率をグラフ化するには、次の操作を行います。

    1. フィルタバーに「util」と入力します。
    2. [リソース] メニューで、[VM インスタンス] を選択します。
    3. [指標カテゴリー] メニューで、[インスタンス] を選択します。
    4. [指標] メニューで [CPU 使用率] を選択し、[適用] をクリックします。

    リソースタイプと指標を選択すると、そのペアの使用可能なすべての時系列がグラフに表示されます。次のスクリーンショットでは、リソースタイプと指標が選択された後のグラフを示します。

    グラフが選択した指標とともに表示されます。

    上記のグラフには、表示できる量より多くのデータが含まれています。グラフでは、表示可能な線の数が 300 に制限されています。表示するデータが多すぎるという通知がグラフに表示され、表示するデータの量が大幅に少なくなる外れ値モードの使用が推奨されます。外れ値モードのコントロールにアクセスするには、 [設定] をクリックします。詳細については、表示オプションの設定をご覧ください。

    また、フィルタや集計のオプションを使用して、グラフ化するデータの量を減らすこともできます。これらの手法により、診断や分析に役立つグラフを作成できます。また、ユーザー インターフェースのパフォーマンスや反応も改善されます。

  5. 省略可: フィルタを追加して、表示される時系列を限定します。次のセクションでは、フィルタリング オプションについて説明します。

  6. 省略可: 時系列をグループ化してアライメントする方法を構成します。詳細については、グラフ化したデータの表示方法を選択するをご覧ください。

グラフ化されたデータのフィルタ

フィルタ条件を指定する、集計を適用する、または外れ値モードを使用することで、グラフ化するデータの量を減らすことができます。フィルタにより、一定の条件を満たす時系列のみが使用されるようになります。フィルタを適用すると、グラフ上の線の数が減り、グラフのパフォーマンスが向上します。

このセクションの残りの部分は、メニュー形式のインターフェースを使用する場合のグラフの構成に当てはまります。このセクションは、MQL、PromQL、または Monitoring の構成には適用されません。

複数のフィルタ条件を指定すると、対応するグラフには、すべての条件を満たす時系列(論理 AND)だけが表示されます。通常、リソース グループ、名前、リソースラベル、ゾーン、指標ラベルでフィルタできます。

[構成] タブを使用してフィルタを追加するには、[フィルタを追加] をクリックし、フィルタラベル、比較演算子、値または値の範囲を指定します。

  1. [Label] をクリックし、メニューからエントリを選択します。

    特定のラベルを検索するには、スクロールバーを使用するか、[フィルタ] テキスト領域にテキストを入力します。テキストを入力すると、メニューには、入力したテキストを含むエントリのみが表示されます。

    次のスクリーンショットでは、特定の指標のラベルでフィルタリングを設定しています。

    フィルタラベルのリストの例。

  2. [Comparison] をクリックして、メニューからエントリを選択します。演算子は、等しい(=)、等しくない(!=)、正規表現一致(=~)、正規表現に一致しない(!=~)の 4 つから選択できます。

    フィルタ比較演算子のリスト。

  3. [] をクリックして、次のいずれかを行います。

    • 直接比較(=!=)の場合は、メニューから値を選択するか、値を入力して [完了] をクリックします。入力する値は、us-central1-a などの単純な値にすることも、starts_withends_with で始まるフィルタ文字列を作成することもできます。たとえば、任意の us-central1 ゾーンのデータを表示するには、フィルタ文字列「starts_with("us-central1")」を入力します。フィルタ文字列に関する詳細については、モニタリング フィルタをご覧ください。

      メニュー エントリは受信した時系列から導出されるため、モニタリング対象リソースが選択した指標のデータを生成しない場合は、ラベルの値を入力する必要があります。

      次のスクリーンショットは、zone リソースラベルが選択されたとき、特定のプロジェクトに表示される値メニューを示しています。

      フィルタラベルのリストの例。

    • 正規表現の比較、=~ または !=~ の場合は、[] フィールドに RE2 正規表現を入力してから [完了をクリックします。たとえば、正規表現 us-central1-.* はすべての us-central1 ゾーンと一致します。

      「a」で終わる US ゾーンと一致させるには、正規表現「^us.*.a$」を使用します。

      正規表現を使用して project_id リソースラベルをフィルタすることはできません。

      たとえば、us-central1 ゾーンのいずれかからの時系列のみを表示するには、zone="starts_with("us-central1")" フィルタまたは zone=~"us-central1.*" フィルタを適用します。

      フィルタリングされた時系列が表示されます。

フィルタ条件は複数指定できます。また、同じラベルを複数回使用することもできます。こうした機能により、値の範囲のフィルタを指定できます。すべてのフィルタ条件が満たされる必要があり、これらは論理 AND を構成します。たとえば、次の構成では、starts_withends_with の両方のフィルタ文字列を使用して US 内の「a」ゾーンのみを表示できます。

複数フィルタの使用例。

MQL クエリと PromQL クエリを作成する

MQL クエリと PromQL クエリを入力する方法は次のとおりです。

  1. Google Cloud コンソールで [Monitoring] を選択するか、次のボタンをクリックします。
    [Monitoring] に移動
  2. ナビゲーション パネルで、[Metrics Explorer] を選択します。
  3. [MQL] タブまたは [PROMQL] タブを選択します。
  4. クエリを入力し、[実行] をクリックします。

このドキュメントでは、MQL または PromQL の使用方法については説明しません。これらの言語については、次のドキュメントをご覧ください。

モニタリング フィルタ クエリを作成する

以下のいずれかを行う場合は、ダイレクト フィルタ モードを使用する必要があります。このモードでは、モニタリング フィルタを入力できます。

  • サービスレベル目標(SLO)を表示します。
  • 仮想マシン(VM)で動作しているプロセス数を表示します。
  • まだデータがないカスタム指標を表示します。
  • まだデータがないラベルに基づいて時系列をフィルタリングします。

モニタリング フィルタ(または同等の指標フィルタ)は、Monitoring がグラフに表示する時系列を識別する式です。 たとえば、次の式の場合は、名前に nginx が含まれるプロセスの数を示すグラフが表示されます。

 select_process_count("monitoring.regex.full_match(\".*nginx.*\")")
 resource.type="gce_instance"

Monitoring フィルタを使用して、リソースタイプと指標タイプで時系列を識別することもできます。次の式により、us-east1-b ゾーンのすべての Google Cloud 仮想マシン インスタンスのログエントリ数を表示するグラフが得られます。

metric.type="logging.googleapis.com/log_entry_count"
resource.type="gce_instance"
resource.label."zone"="us-east1-b"

指標フィルタを入力する方法は次のとおりです。

  1. Google Cloud コンソールで [Monitoring] を選択するか、次のボタンをクリックします。
    [Monitoring] に移動
  2. ナビゲーション パネルで、[Metrics Explorer] を選択します。
  3. [CONFIGURATION] タブを選択します。
  4. [指標の選択] メニューで [ヘルプ] をクリックし、[ダイレクト フィルタモード] を選択します。

    ページにテキスト ボックスが表示されます。[Direct Filter Mode] モードに切り替える前にリソースタイプ、指標、フィルタを選択した場合は、これらの設定がテキスト ボックスに表示されます。

  5. テキスト ボックスにモニタリング フィルタ式を入力します。詳細については、次のドキュメントをご覧ください。

    ダイレクト フィルタ モードを使用しており、フィルタを満たすデータがない場合は、エラーが表示されます。よく発生するエラー メッセージには、「Chart definition invalid」や「No data is available for the selected timeframe.」などがあります。

  6. 省略可: 時系列をグループ化してアライメントする方法を構成します。詳細については、グラフ化したデータの表示方法を選択するをご覧ください。

メニュー ドリブンのインターフェースに戻るには、[STANDARD MODE] をクリックします。

グラフ化されたデータの表示方法を選択する

このセクションでは、[集計] フィールドを設定して選択したデータを表示する方法について説明します。集計は、時系列内のデータポイントのアライメントと、異なる時系列の組み合わせで構成されます。集計の詳細については、フィルタリングと集計: 時系列の操作をご覧ください。

時系列をグループ化する

異なる時系列を組み合わせることで、指標に対して返されるデータの量を減らすことができます。複数の時系列を組み合わせるには、通常、グループ化と関数を指定します。グループ化はラベル値で行います。関数は、グループ内のすべての時系列を新しい時系列に結合する方法を定義します。

グループを追加するには、[Group by] テキスト ボックス内のテキストをクリックし、メニューから選択します。メニューは、選択したリソースと指標の時系列データに基づいて動的に作成されます。グループ化とフィルタリングでは、同じラベルセットを使用します。

最初のラベルを追加すると、次のようになります。

  • アグリゲータが選択されます。表示されるデータの種類によって、デフォルトのアグリゲータが決まります。ただし、この関数は変更できます。
  • アグリゲータは、同じラベル値を持つ時系列を 1 つの時系列に結合する方法を決定します。
  • グラフには、[Group by] テキスト ボックスに記載されているラベルの値ごとに 1 つの時系列が表示されます。

複数のラベルでグループ化した場合、アグリゲータは指定されたラベルついて、同じ値を持つ時系列を結合します。

グループ化オプションを指定せずにアグリゲータを指定すると、関数は選択したすべての時系列に適用され、1 つの時系列になります。

たとえば、[グループ条件] フィールドが user_labels.version に設定され、アグリゲータが sum に設定されている場合は、ラベル user_labels.version の値ごとに 1 つの時系列が作成されます。各時系列のデータポイントは、特定バージョンの個別の時系列のすべての値の合計から計算されます。

user_labels.version でグループ化された時系列の表示。

複数のラベルでグループ化できます。グループ化の選択肢が複数ある場合は、選択したラベルに対して同じ値を持つ一連の時系列にアグリゲータが適用されます。

結果のグラフには、ラベル値の組み合わせごとに 1 つの時系列が表示されます。ラベルを指定する順序は問題になりません。

たとえば、次のスクリーンショットは、user_labels.versionsystem_labels.machine_image によるグループ化を示しています。

バージョンとマシンイメージでグループ化された時系列。

図のように、両方のラベルでグループ化すると、値のペアごとに 1 つの時系列が取得されます。この方法では、ラベルの組み合わせごとに時系列が作成されるため、1 つのグラフに作成する場合よりも多くのデータが作成されます。

グループ化を指定した場合、またはアグリゲータを選択した場合、グラフ化された時系列には、プロジェクト識別子などの必要なラベルと、グループ化で指定されたラベルのみが含まれます。

グループ別条件を削除する

グループ別条件を削除するには、次の操作を行います。

  1. グループ別ラベルを削除します。
  2. アグリゲータを none に設定します。

時系列を配置する

アライメントは、Monitoring によって受信された時系列データを、固定間隔でデータポイントを持つ新しい時系列に変換するプロセスです。アライメントのプロセスは、一定時間内に受信したすべてのデータポイントを収集し、それらのデータポイントを結合する関数を適用し、結果にタイムスタンプを割り当てます。この関数では、すべてのサンプルの平均を計算することも、すべてのサンプルの最大値を抽出することもできます。

[アライメント期間] で、時系列データをアライメントするために使用される最小期間を指定します。選択した表示期間でグラフに表示するデータポイントが多すぎる場合は、すべてのデータポイントが集計されるように、アライメント期間が自動的に増加します。 このフィールドのデフォルト設定は 1 分です。

[Aligner] フィールドは、アライメント期間内のすべてのデータポイントを結合するために使用される関数を指定します。 Aligner のほとんどは、一般的な数学関数を実行します。たとえば [min] を選択した場合、整列データポイントは、アライメント期間内のすべてのデータポイントの最小値です。

たとえば、サンプリング期間が 1 分の指標について考えてみましょう。グラフが 1 時間のデータを表示するように構成されている場合、グラフには 60 個のデータポイントすべてを表示できます。アライメント期間が 10 minutes に設定されている場合、グラフには 6 個のデータポイントが表示されます。 [Aligner] フィールドの値が mean の場合、グラフ上の各ポイントはアライメント期間内のすべてのポイントの平均です。ただし、1 週間のデータを表示するようにグラフを構成する場合は、グラフに表示するポイントが多すぎるため、期間が自動的に変更されます。この例では、アライメント期間が 1 時間に変更されます。

整列指定子のほとんどは、一般的な数学関数を実行しますが、中にはより複雑なアクションを実行するものもあります。

  • 次の古い: アライメント期間内に最新のサンプルのみを保持するには、次の古い Aligner を使用します。この Aligner は、稼働時間チェックでよく使用されます。最新の値のみを対象とする場合は、適切な選択肢です。

    この Aligner は、ゲージ指標にのみ有効です。

  • パーセンタイル: 折れ線グラフ、積み上げ面グラフ、積み上げ棒グラフなどのプロトタイプで分布指標を表示するには、表示する分布でのパーセンタイルを選択する必要があります。このパーセンタイルを指定する方法の 1 つに、パーセンタイル Aligner の選択があります。5、50、95、99 パーセンタイルを選択できます。整列データポイントは、アライメント期間内のすべてのデータポイントを使用して指定されたパーセンタイルを計算して決定されます。

    この Aligner は、分布データ型を持つゲージ指標とデルタ指標に対してのみ有効です。

  • デルタ: 累積指標またはデルタ指標を、アライメント期間ごとのサンプルが 1 つであるデルタ指標に変換するには、この Aligner を使用します。この Aligner によって、データ補間が発生する可能性があります。例については、種類、タイプ、変換をご覧ください。

    この Aligner は、累積指標とデルタ指標にのみ有効です。

  • レート: 累積指標またはデルタ指標をゲージ指標に変換するには、この Aligner を使用します。この Aligner を選択した場合、時系列がデルタ Aligner と同様に変換され、アライメント期間で除算されると考えることができます。たとえば、元の時系列の単位が MiB で、アライメント期間の単位が秒の場合、グラフの単位は MiB/秒になります。詳細については、種類、タイプ、変換をご覧ください。

    この Aligner は、累積指標とデルタ指標にのみ有効です。

使用可能な Aligner についての詳細は、API リファレンスの Aligner をご覧ください。

アライメント関数を表示または変更するには、[詳細オプションを表示] をクリックします。

次のスクリーンショットは、特定の Google Cloud プロジェクトの Compute Engine VM インスタンスの CPU 使用率を示しています。この画像では、アライメント フィールドがデフォルト値になっています。アライメント関数は mean に設定され、アライメント期間は 1 minute に設定されています。

デフォルトのアライメント設定を使用する VM インスタンスの CPU 使用率。

比較のため、次のスクリーンショットでは、期間を 1 minute から 5 minutes に変更した場合の影響を示しています。

アライメント期間が 5 分である VM インスタンスの CPU 使用率。

期間を増やすことにより、結果のグラフのポイントが少なくなり、時系列あたり 60 ポイントから時系列あたり 10 ポイントに減ります。グラフの各ポイントは、アライメント期間内の時系列ポイントを平均することで計算されます。アライメント期間を増やすことにより、平均するポイントが増え、プロットするデータが滑らかになる効果が得られます。

セカンダリ グループ化とアライメント

複数の時系列ですでに集計が表されている場合は、セカンダリ アグリゲータを選択することで、グラフのすべての時系列を 1 つの時系列に削減できます。たとえば、データをゾーンごとにグループ化すると、グラフにはゾーンごとに 1 つの時系列が表示されます。1 つの時系列でグラフを作成するには、セカンダリ集計フィールドを使用します。

二次集計の設定を表示または変更するには、[詳細オプションを表示] をクリックします。

次のスクリーンショットでは、フィルタリングされたデータセットをグループ化した結果として、複数の時系列が表示されています。グループ化を使用するには集計が必要で、各行のグループが 1 つにまとめられます。次のスクリーンショットでは、ゾーンでグループ化した時系列が表示されています。

ゾーン別にグループ化され、フィルタリングされた時系列が表示されています。

次のスクリーンショットは、二次集計を使用して、グループ化された時系列の平均値を求めた結果を表しています。

前の例に適用された 2 次集計を表示しています。

凡例テンプレート

[Legend Template] フィールドを使用すると、グラフの時系列の説明をカスタマイズできます。この説明は、グラフのツールチップと [Name] 列のグラフの凡例に表示されます。デフォルトでは、凡例の説明は時系列のさまざまなラベルの値から自動的に作成されます。システムによってラベルが選択されるため、結果が適切ではない場合があります。説明のテンプレートを作成するには、このフィールドを使用します。

グラフの凡例テンプレートにアクセスするには、Google Cloud コンソールのグラフの構成ペインで [詳細] タブを選択します。[追加オプション] という見出しの下に、凡例テンプレートが表示されます。

[Legend Template] フィールドには書式なしテキストとテンプレートを入力できます。テンプレートを追加するときに、凡例が表示される際に評価される式を追加します。

フィルタを追加する手順は次のとおりです。

  • [テンプレートを挿入] をクリックします。
  • メニューからエントリを選択します。エントリを選択すると、自動的にテンプレートが追加されます。たとえば、response_code を選択すると、テンプレート ${resource.labels.zone} が追加されます。

たとえば、次のスクリーンショットは、書式なしテキストと式 ${resource.labels.zone} を含む凡例テンプレートを示しています。

簡単な説明のテンプレート

グラフの凡例では、テンプレートから生成された値が [Name] という見出しの列とツールチップに表示されます。

テンプレートから生成された説明

複数のテキスト文字列とテンプレートを含む凡例テンプレートを構成することはできますが、ツールチップで表示できるスペースは限られています。

次のステップ