Metrics Explorer 使用時の指標の選択

Metrics Explorer は、プロジェクトで収集された(数値の)指標のグラフをビルドできるスタンドアロン グラフ生成ツールです。このページでは、[構成] タブを使用して Metrics Explorer を構成する方法について説明します。Monitoring Query Language(MQL)を使用する場合、このページの概念が適用されます。ただし、Monitoring Query Language(MQL)の概要で定義されている構文を使用する必要があります。

グラフのスタイルを構成する方法については、表示オプションの設定をご覧ください。

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

Metrics Explorer の使用時に表示する指標を指定するには、指標とリソースタイプの値を指定します。

  • [指標] フィールドは、モニタリング対象リソースから収集される測定値を識別します。これには、測定対象および測定値がどのように解釈されるかについての説明が含まれます。指標 は、指標タイプの短縮形です。コンセプトについては、指標タイプをご覧ください。

  • [リソースタイプ] フィールドは、指標データがキャプチャされるリソースを指定します。リソースタイプは、モニタリング対象リソースタイプまたはリソースとも呼ばれます。コンセプトについては、モニタリング対象リソースをご覧ください。

Monitoring では、多くの事前定義済み指標タイプやモニタリング対象リソースが利用できます。また、カスタム指標を指定することもできます。

  • 定義済みの指標タイプの詳細は、指標の一覧をご覧ください。各ドキュメントには、サービスの種類別に指標が列挙されます。たとえば、Google Cloud の指標ページには、Google Cloud サービスごとに 1 つずつ、一連のテーブルが含まれます。

  • 使用可能なモニタリング対象リソースのタイプについては、モニタリング対象リソースのリストをご覧ください。

  • 独自の指標の定義については、カスタム指標の使用をご覧ください。

指標の指定用フィールド

[Resource type] フィールドと [Metric] フィールドによって、グラフ化される指標が特定されます。これらのフィールドは任意の順序で入力でき、どちらのフィールドにも、値を入力することや、メニューからエントリを選択することができます。

  • メニューに表示されるオプションの数を減らすには、フィルタバーに値を入力します。たとえば、「cpu」と入力すると、cpu を含むエントリのみが表示されます。大文字と小文字を区別しないテストは、エントリがリストにあるかどうかを判断するために使用されます。

  • エントリの詳細情報を得るには、エントリの上にポインタを置いてツールチップを表示します。

  • モニタリング フィルタを入力するには、ダイレクト フィルタモードをご覧ください。

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

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

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

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

ダイレクト フィルタモード

ダイレクト フィルタモードを使用すると、Monitoring がモニタリング対象の時系列の識別に使用する式を入力できます。ダイレクト フィルタモードで入力した式は、指標フィルタや Monitoring フィルタとも呼ばれます。us-east1-b ゾーンのすべての Google Cloud 仮想マシン インスタンスのログエントリを表示する式を次に示します。

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

ダイレクト フィルタ モードは、API 呼び出しのための適切な構文を識別する場合、またはモニタリング フィルタが適切にフォーマットされていることを確認する場合に有用です。また、リソースと指標モデルが表現できないデータをグラフ化する場合にも有効です。たとえば、次の式の場合は、名前に nginx が含まれるプロセスの数を示すグラフが表示されます。

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

構文の詳細については、プロセスの状態フィルタSLO データの取得をご覧ください。一般的な情報については、モニタリング フィルタをご覧ください。

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

  1. [リソースの種類] メニューを展開して、[ダイレクト フィルタ モード] を選択します。
  2. テキスト ボックスにモニタリング フィルタ式を入力します。

    テキスト ボックスには、[DIRECT FILTER MODE] に変更する前に行ったリソースタイプ、指標、フィルタ設定が入力されます。

    ダイレクト フィルタ モードを使用してグラフやアラート ポリシーを構成していて、データが利用できない場合、グラフにエラー メッセージが表示されます。正確なエラー メッセージは、入力したフィルタによって変わります。たとえば、一般的なメッセージは Chart definition invalid です。「No data is available for the selected timeframe.」というメッセージが表示されることもあります。

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

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

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

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

[MQL] タブを使用するときにフィルタを追加するには、Query Editor を使用してフィルタを指定します。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

複数フィルタの使用例。

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

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

時系列をグループ化する

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

グループを追加するには、[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 分です。

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

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

  • 次の古い: アライメント期間内に最新のサンプルのみを保持するには、次の古い 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] 列のグラフの凡例に表示されます。 デフォルトでは、凡例の説明は時系列のさまざまなラベルの値から自動的に作成されます。システムによってラベルが選択されるため、結果が適切ではない場合があります。このフィールドを使用すると、説明のテンプレートを自分で作成できます。

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

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

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

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

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

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

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

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

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

次のステップ