このドキュメントでは、プロジェクトで収集された時系列データを表示するようにカスタム ダッシュボードにグラフを構成する方法について説明します。グラフには、数値の時系列データのみを表示できます。グラフのスタイルを構成する方法については、グラフの表示オプションの設定をご覧ください。
表示するデータを選択する
ダッシュボードにグラフを追加するときに表示する時系列を構成するには、メニューから選択してクエリを作成するか、クエリを作成します。クエリを作成するときに、クエリ言語を選択し、クエリエディタまたはテキストベースのインターフェースを使用します。
Monitoring Query Language(MQL)クエリでは、時系列と、時系列のグループ化方法と配置方法を指定します。MQL インターフェースでは、候補の表示と構文チェックを行うクエリエディタがサポートされています。
一般的に、MQL クエリを他のインターフェースで使用可能な形式に変換することはできません。保存していないクエリは、[MQL] タブを切り替えると破棄されます。
Prometheus Query Language(PromQL)クエリでは、時系列と、それらの時系列をグループ化して配置する方法を指定します。PromQL インターフェースは、候補を表示するエディタをサポートしています。
通常、PromQL クエリを他のインターフェースで使用できる形式に変換することはできません。保存していないクエリは、[PromQL] タブを切り替えると破棄されます。
Monitoring フィルタ クエリでは、時系列を指定しますが、グループ化ステートメントまたはアライメント ステートメントは含まれません。
Monitoring フィルタを使用して、Monitoring がグラフ化できる時系列を指定できます。たとえば、VM 上で実行されているプロセスの数をグラフ化するには、関数を指定する Monitoring フィルタを使用する必要があります。
モニタリング フィルタが他のインターフェースに必要な形式に変換できるとは限りません。そのため、別のインターフェースに切り替えると、クエリが破棄される可能性があります。
クエリでは、通常、指標タイプ、リソースタイプ、フィルタを指定します。
「指標タイプ」は、リソースから収集される測定値を識別します。これには、測定対象および測定値がどのように解釈されるかについての説明が含まれます。指標タイプは、「指標」と呼ばれることもあります。指標の例には「CPU 使用率」があります。概念的な詳細については、指標タイプをご覧ください。
「リソースタイプ」は、指標データを取得するリソースを指定します。リソースタイプは、「モニタリング対象リソースタイプ」や「リソース」と呼ばることもあります。リソースの例には、「Compute Engine 仮想マシン(VM)インスタンス」があります。概念的な詳細については、モニタリング対象リソースをご覧ください。
MQL クエリと PromQL クエリの両方にグループ化ステートメントとアライメント ステートメントが含まれます。ただし、Monitoring フィルタを作成する場合や、メニューを使用してグラフ化する時系列を選択する場合は、メニューを使用してグループ化設定とアライメント設定を構成します。
メニューを使用してクエリを作成する
メニューを使用してクエリを作成する手順は次のとおりです。
- Google Cloud コンソールで [Monitoring] を選択するか、次のボタンをクリックします。
[Monitoring] に移動 - ナビゲーション パネルで、[
ダッシュボード] を選択し、表示または編集するダッシュボードを選択します。
- edit [Edit dashboard] ボタンが表示されている場合は、このボタンをクリックします。
ウィジェット ライブラリからダッシュボードにウィジェットをドラッグするか、ダッシュボード上にあるウィジェットを選択します。
ダッシュボード ウィジェットをダッシュボードに追加すると、サンプルの選択内容で自動的に構成されます。次の手順では、こうした選択内容を変更する方法について説明します。
[基本] タブまたは [詳細] タブを選択します。
[基本] タブには最小限の構成オプションがあり、[詳細] タブにはほとんどのグループ化フィールドとアライメント フィールドからアクセスできます。[基本] タブから [詳細] タブに切り替えて、構成を維持できます。ただし、[詳細] タブから [基本] タブに切り替えると、構成設定が失われる可能性があります。
グラフ化する指標とリソースを選択します。
[指標を選択] メニューを展開します。
省略可: メニューに表示されるオプションの数を減らすには、filter_list [フィルタバー] に指標またはリソース名を入力します。たとえば、「
util
」と入力すると、util
を含むエントリを表示するようにメニューが制限されます。エントリは、大文字と小文字を区別しないテストに合格した場合に表示されます。最近のデータがない指標を含め、すべての指標のリストを表示するには、[有効なリソースと指標のみを表示する] を無効にします。デフォルトでは、この切り替えが有効に設定されており、メニューにはデータがある指標とリソースのみが表示されます。
[リソース] メニューで、指標データの取得元となるリソースを選択します。
リソース対する指標を書き込まない場合は、[Unspecified] を選択します。
[Metric category] メニューで、指標のカテゴリを選択します。
このカテゴリは通常、指標接頭辞に続く最初の用語です。たとえば、指標
compute.googleapis.com/instance/utilization
の場合、カテゴリはinstance
です。[指標] メニューで、グラフにする指標を選択します。
[適用] をクリックします。
たとえば、仮想マシンの CPU 使用率をグラフ化するには、次の操作を行います。
- filter_list フィルタバーに
util
を入力します。 - [リソース] メニューで、[VM インスタンス] を選択します。
- [指標カテゴリー] メニューで、[インスタンス] を選択します。
- [指標] メニューで [CPU 使用率] を選択し、[適用] をクリックします。
リソースタイプと指標を選択すると、そのペアの使用可能なすべての時系列がグラフに表示されます。次のスクリーンショットでは、リソースタイプと指標が選択された後のグラフを示します。
上記のグラフには、表示できる量より多くのデータが含まれています。グラフでは、表示可能な線の数が 300 に制限されています。表示するデータが多すぎるという通知がグラフに表示され、表示するデータの量が大幅に少なくなる外れ値モードの使用が推奨されます。外れ値モードのコントロールにアクセスするには、settings [設定] をクリックします。詳細については、グラフ表示オプションの設定をご覧ください。
また、フィルタや集計のオプションを使用して、グラフ化するデータの量を減らすこともできます。これらの手法により、診断や分析に役立つグラフを作成できます。また、ユーザー インターフェースのパフォーマンスや反応も改善されます。
省略可: フィルタを追加して、表示される時系列を限定します。次のセクションでは、フィルタ オプションについて説明します。
省略可: 時系列をグループ化してアライメントする方法を構成します。詳細については、グラフ化したデータの表示方法を選択するをご覧ください。
グラフ化されたデータのフィルタ
フィルタ条件を指定する、集計を適用する、または外れ値モードを使用することで、グラフ化するデータの量を減らすことができます。フィルタにより、一定の条件を満たす時系列のみが使用されるようになります。フィルタを適用すると、グラフ上の線の数が減り、グラフのパフォーマンスが向上します。
このセクションの残りの部分は、メニュー形式のインターフェースを使用する場合のグラフの構成に当てはまります。このセクションは、MQL、PromQL、Monitoring の構成には当てはまりません。
複数のフィルタ条件を指定すると、対応するグラフには、すべての条件を満たす時系列(論理 AND
)だけが表示されます。通常、リソース グループ、名前、リソースラベル、ゾーン、指標ラベルでフィルタできます。
基本モードまたは詳細モードを選択してフィルタを追加するには、[フィルタを追加] をクリックして、フィルタラベル、比較演算子、値または値の範囲を指定します。
[Label] をクリックし、メニューからエントリを選択します。
特定のラベルを検索するには、スクロールバーを使用するか、[フィルタ] filter_list テキスト領域にテキストを入力します。テキストを入力すると、メニューには、入力したテキストを含むエントリのみが表示されます。
次のスクリーンショットでは、特定の指標のラベルでフィルタリングを設定しています。
[Comparison] をクリックして、メニューからエントリを選択します。演算子は、等しい(
=
)、等しくない(!=
)、正規表現一致(=~
)、正規表現に一致しない(!=~
)の 4 つから選択できます。[値] をクリックして、次のいずれかを行います。
直接比較(
=
や!=
)の場合は、メニューから値を選択するか、値を入力して [完了] をクリックします。入力する値は、us-central1-a
などの単純な値にすることも、starts_with
やends_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_with
と ends_with
の両方のフィルタ文字列を使用して US 内の「a」ゾーンのみを表示できます。
MQL クエリと PromQL クエリの作成
このドキュメントでは、MQL または PromQL の使用方法について説明します。これらの言語については、次のドキュメントをご覧ください。
MQL と PromQL のクエリを入力するには、次の操作を行います。
- Google Cloud コンソールで [Monitoring] を選択するか、次のボタンをクリックします。
[Monitoring] に移動 - ナビゲーション パネルで、[
ダッシュボード] を選択し、表示または編集するダッシュボードを選択します。
- edit [Edit dashboard] ボタンが表示されている場合は、このボタンをクリックします。
- ウィジェット ライブラリからダッシュボードにウィジェットをドラッグするか、ダッシュボード上にあるウィジェットを選択します。
- [MQL] タブまたは [PromQL] タブを選択します。
- クエリを入力して [実行] をクリックします。
Monitoring フィルタクエリの作成
以下のいずれかを行う場合は、ダイレクト フィルタ モードを使用する必要があります。このモードでは、モニタリング フィルタを入力できます。
- サービスレベル目標(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"
指標フィルタを入力する方法は次のとおりです。
- Google Cloud コンソールで [Monitoring] を選択するか、次のボタンをクリックします。
[Monitoring] に移動 - ナビゲーション パネルで、[
ダッシュボード] を選択し、表示または編集するダッシュボードを選択します。
- edit [Edit dashboard] ボタンが表示されている場合は、このボタンをクリックします。
- ウィジェット ライブラリからダッシュボードにウィジェットをドラッグするか、ダッシュボード上にあるウィジェットを選択します。
- [基本] モードまたは [詳細] モードを選択します。
[指標の選択] メニューで help_outline [ヘルプ] をクリックし、[ダイレクト フィルタモード] を選択します。
ページにテキスト ボックスが表示されます。[Direct Filter Mode] モードに切り替える前にリソースタイプ、指標、フィルタを選択した場合は、これらの設定がテキスト ボックスに表示されます。
テキスト ボックスにモニタリング フィルタ式を入力します。詳細については、次のドキュメントをご覧ください。
ダイレクト フィルタ モードを使用しており、フィルタを満たすデータがない場合は、エラーが表示されます。よく発生するエラー メッセージには、「
Chart definition invalid
」や「No data is available for the selected timeframe.
」などがあります。省略可: 時系列をグループ化してアライメントする方法を構成します。詳細については、グラフ化したデータの表示方法を選択するをご覧ください。
メニュー ドリブンのインターフェースに戻るには、[STANDARD MODE] をクリックします。
グラフ化されたデータの表示方法を選択する
時系列データを選択したら、次にデータの表示方法を決定します。たとえば、各時系列を表示するか、時系列を組み合わせるかなどです。
データの表示方法を指定するには、集計オプションを設定します。集計は時系列データのアラインメントを行い、異なる時系列を組み合わせます。時系列の結合は任意です。
集計の詳細については、フィルタリングと集計: 時系列の操作をご覧ください。
データを配置する
アライメントは、Monitoring によって受信された時系列データを、固定間隔でデータポイントを持つ新しい時系列に変換するプロセスです。アライメントのプロセスは、一定時間内に受信したすべてのデータポイントを収集し、それらのデータポイントを結合する関数を適用し、結果にタイムスタンプを割り当てます。この関数では、すべてのサンプルの平均を計算することも、すべてのサンプルの最大値を抽出することもできます。
[アライメント期間] フィールドで、時系列データをアライメントするために使用される最小期間を指定します。選択した表示期間でグラフに表示するデータポイントが多すぎる場合は、すべてのデータポイントが集計されるように、アライメント期間が自動的に増加します。 このフィールドのデフォルト設定は 1 分です。 [アライメント関数] フィールドは、アライメント期間内のすべてのデータポイントを組み合わせるために使用される関数を指定します。 Aligner のほとんどは、一般的な数学関数を実行します。たとえば [min] を選択した場合、整列データポイントは、アライメント期間内のすべてのデータポイントの最小値です。たとえば、サンプリング期間が 1 分の指標について考えてみましょう。グラフが 1 時間のデータを表示するように構成されている場合、グラフには 60 個のデータポイントすべてを表示できます。アライメント期間が 10 minutes
に設定されている場合、グラフには 6 個のデータポイントが表示されます。
[アライメント関数] フィールドの値が [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
をご覧ください。
アライメント フィールドにアクセスするには、次の手順を実行します。
基本モード: すべてのアライメント フィールドが事前構成されています。
詳細モード: リソースタイプと指標を選択すると、すべてのアライメント オプションにアクセスできます。これらのフィールドのデフォルト値を指定します。ただし、この選択は変更できます。
MQL モード: すべてのアライメント オプションを利用できます。
次のスクリーンショットは、特定の Google Cloud プロジェクトの Compute Engine VM インスタンスの CPU 使用率を示しています。この画像では、アライメント フィールドがデフォルト値になっています。アライメント関数は mean
に設定され、アライメント期間は 1 minute
に設定されています。
比較のため、次のスクリーンショットでは、期間を 1 minute
から 5 minutes
に変更した場合の影響を示しています。
期間を増やすことにより、結果のグラフのポイントが少なくなり、時系列あたり 60 ポイントから時系列あたり 10 ポイントに減ります。グラフの各ポイントは、アライメント期間内の時系列ポイントを平均することで計算されます。アライメント期間を増やすことにより、平均するポイントが増え、プロットするデータが滑らかになる効果が得られます。
時系列を結合する
異なる時系列を組み合わせることで、指標に対して返されるデータの量を減らすことができます。複数の時系列を組み合わせるには、通常、グループ化と関数を指定します。グループ化はラベル値で行います。関数は、グループ内のすべての時系列を新しい時系列に結合する方法を定義します。
時系列をグループ化して結合するには、次のいずれかを行います。
基本モード:
時系列をグループ化する方法を決定します。
- すべての時系列を表示するには、[グループ化済み] をオフのままにします。
- ラベル値で時系列をグループ化するには、[Grouped] をオンにしてから [Group by] メニューを使用してグループ化するラベルを選択します。選択したら、[OK] をクリックします。
データポイントを組み合わせる方法を決定します。
ラジオボタンにパーセンタイルのみが表示される場合は、分布値を持つ指標が選択されています。ラジオボタンを使用して、分布から表示するパーセンタイルを選択します。
ラジオボタンに
mean
、min
、max
が記載されている場合は、数値を持つ指標が選択されています。このボタンを使用すると、グラフ作成プロセスの一環として、データポイントの組み合わせ方法を指定できます。この組み合わせの動作を理解するために、グラフで 60 個のデータポイントを表示できるとし、データレートが 1 分あたり 1 ポイントであるとします。1 時間のデータを表示すると、グラフですべてのポイントが表示されます。ただし、3 時間のデータを表示する場合は、180 個のデータポイントを 60 個(グラフで表示できるポイントの数)に減らす必要があります。データを減らす方法の 1 つは、隣接する 3 つのサンプルの平均を計算することで、もう 1 つは最小値をとることです。
詳細モード:
すべての時系列を単一の時系列に結合するには、[グループ条件] が空になっていることを確認し、[Group by function] メニューを使用して時系列を結合する方法を選択します。
すべての時系列を表示するには、次のいずれかを行います。
- [グループ条件] が空になっていることを確認し、[Group by function] で [
none
] を選択します。 - [Group by] メニューをクリックして [Add all] を選択し、[Group by function] を選択します。数値を格納する指標の場合は、group-by 関数を選択しても、表示内容が異なるグラフが生成されない場合があります。
- [グループ条件] が空になっていることを確認し、[Group by function] で [
時系列を特定のラベル値でグループ化するには、[Group by] をクリックし、グループ化に使用するラベルを選択します。時系列の結合方法を指定するには、[Group by function] メニューを使用して関数を選択します。
MQL モード:
Monitoring のクエリ言語の詳細については、クエリエディタの使用をご覧ください。
次のスクリーンショットは、group-by 関数が sum
のデフォルト値に設定された、user_labels.version
によるグループ化を示しています。この選択により、user_labels.version
の値ごとに 1 つの時系列が生成されます。各時系列のデータポイントは、特定バージョンの個別の時系列のすべての値の合計から計算されます。
複数のラベルでグループ化できます。グループ化の選択肢が複数ある場合は、選択したラベルに対して同じ値を持つ一連の時系列に group-by 関数が適用されます。
結果のグラフには、ラベル値の組み合わせごとに 1 つの時系列が表示されます。ラベルを指定する順序は問題になりません。
たとえば、次のスクリーンショットは、user_labels.version
と system_labels.machine_image
によるグループ化を示しています。
図のように、両方のラベルでグループ化すると、値のペアごとに 1 つの時系列が取得されます。この方法では、ラベルの組み合わせごとに時系列が作成されるため、1 つのグラフに作成する場合よりも多くのデータが作成されます。
グループ化を指定した場合、または group-by 関数を選択した場合、グラフ化された時系列には、プロジェクト識別子などの必要なラベルと、グループ化で指定されたラベルのみが含まれます。
グループ別条件を削除する
group-by 条件をすべて削除するには、次のいずれかを行います。
基本モード: [グループ化] をオフにします。
詳細モード: 次の操作を行います。
- [Group by] メニューで [すべて削除] をクリックしてから、[OK] をクリックします。
- [Group by 関数] メニューで、[
none
] を選択します。
MQL モード: グループ化コマンドを削除します。
Monitoring のクエリ言語の詳細については、クエリエディタの使用をご覧ください。
二次集計
選択したタブによって集計オプションが決定されます。
基本モードと詳細モード: ダッシュボード エディタは、次の情報を使用して、集計の選択を Cloud Monitoring API で指定されたプライマリとセカンダリの集計フィールドにマッピングする方法を決定します。
- ウィジェット タイプ
- 指標の種類
- 指標の値の型
- ウィジェットの構成に使用するモード
カスタム ダッシュボードのグラフのマッピングを確認するには、Google Cloud CLI を使用してダッシュボード構成を取得します。詳細については、ダッシュボードの一覧表示をご覧ください。
MQL モード: これらのフィールドはアクセス可能です。