このページでは、指標、時系列、リソースおよび指標モデルのコンポーネントで取り上げるディスカッションと例について詳しく説明します。このページを最大限に活用するには、まず最初にこれらのページをご覧ください。
このページは、時系列と Cloud Monitoring 指標モデルの実装について詳しく知りたい方、特に Monitoring API を使用している方を対象としています。これには、カスタムの(ユーザー定義)指標のユーザーが含まれます。
このページでは、一般的な指標モデルを Cloud Monitoring API にマッピングしているので、Monitoring API を直接使用しているユーザーに役立ちます。Google Cloud Console をメインに操作するユーザーは、ここまで詳しい内容に関する知識は必要ありません。
また、OpenCensus などのサードパーティの統合を使用するすべてのユーザーにも便利です。外部ソースから取得したデータは、統合された Cloud Monitoring に到達し、Cloud Monitoring 指標モデルにマッピングされ、他の指標データと同様に処理されます。
独自の指標の収集について詳しくは、カスタム指標の使用をご覧ください。
指標モデルの確認
時系列の構造を理解するための前提条件として、Cloud Monitoring で使用される指標モデルに関する知識が必要です。このモデルは、指標、時系列、リソースで説明されています。このセクションでは、簡単に復習します。
一般に、モニタリング データは時系列で記録されます。個々の時系列には、この検討に関連する 3 つの情報が含まれます。
- タイムスタンプ付きのデータポイントのセット。
- データポイントの解釈方法を示す指標タイプへの参照。
データの取得元であるモニタリング対象リソースへの参照。
各時系列には、単一の物理ソースまたは論理的なソースからの測定値が格納されます。環境に数百のリソースがある場合、それぞれが少なくとも 1 つ以上の時系列に貢献します。実際、指標タイプとモニタリング対象リソースタイプにラベルがある場合、ラベル値の組み合わせごとに 1 つの時系列が作成されます。詳細については、カーディナリティをご覧ください。
サンプル時系列
以下は、単一の時系列の完全なインスタンスです(タイプ TimeSeries
)。
{ "metric": { "labels": { "log": "kubelet", "severity": "DEFAULT" }, "type": "logging.googleapis.com/log_entry_count" }, "resource": { "type": "gce_instance", "labels": { "instance_id": "5106847938295940291", "zone": "us-central1-a", "project_id": "a-gcp-project" } }, "metricKind": "DELTA", "valueType": "INT64", "points": [ { "interval": { "startTime": "2019-12-20T20:25:38Z", "endTime": "2019-12-20T20:26:38Z" }, "value": { "int64Value": "20" } } ] }
ほとんどの時系列にはもっと多くのデータポイントが含まれます。このサンプル時系列がカバーしているのは、1 分間隔です。すべての時系列は同じ構造で、次のフィールドがあります。
metric
フィールドには次の情報が記録されます。- この特定の時系列の指標ラベル値。ラベル値の 1 つの組み合わせを表します。
- データが関連付けられている指標タイプ。指標タイプは、使用可能なラベルを指定し、データポイントによって表される要素を記述します。
このフィールドの情報の詳細については、指標をご覧ください。
resource
フィールドには次の情報が記録されます。- この特定の時系列のリソースラベル値。ラベル値の 1 つの組み合わせを表します。
- データが収集された特定のモニタリング対象リソース。
このフィールドの詳細については、モニタリング対象リソースで詳しく説明しています。
metricKind
フィールドとvalueType
フィールドでは、値の解釈方法がわかります。詳しくは、指標の種類とタイプをご覧ください。points
フィールドはタイムスタンプ付きの値の配列です。指標タイプは、値が何を表しているかを示します。サンプル時系列には、単一のデータポイントを含む配列があります。ほとんどの時系列で、配列にはさらに多くの値があります。
時系列データを取得する実際の例については、時系列: モニタリング対象リソースからのデータをご覧ください。
このページの残りの部分では、metric
フィールドと resource
フィールドの情報について詳しく説明します。
モニタリング対象リソース
Cloud Monitoring はモニタリング対象リソースからデータを収集し、時系列で記録します。作成された各時系列には、データが収集されたモニタリング対象リソースの説明が含まれます。
モニタリング対象リソース オブジェクト
各時系列は、モニタリング対象リソース オブジェクト(タイプは MonitoredResource
)としてデータポイントのソースを記録します。このオブジェクトは、時系列に埋め込まれ、モニタリング対象リソースタイプの、Monitoringに知られた特定のインスタンスを識別します。このオブジェクトは、物理または論理エンティティを指します。
例として、サンプル時系列から抽出された特定の Compute Engine インスタンスを記述するモニタリング対象リソース オブジェクトを次に示します。
"resource": { "type": "gce_instance", "labels": { "instance_id": "5106847938295940291", "zone": "us-central1-a", "project_id": "a-gcp-project" } }
モニタリング対象リソースのインスタンスは、gce_instance
型です。これは、プロジェクト a-gcp-project
に特定の instance_id
値(5106847938295940291)が含まれています。インスタンスは米国にあります。別の時系列は、このモニタリング対象リソースの異なるインスタンスから発生する場合があります。ラベル値の各組み合わせは、データが収集された一意のリソースを示します。
それぞれ異なるラベルのセットは、さまざまなリソースに適しています。リソースのラベルのセットは、そのタイプのモニタリング対象リソース記述子によって決まります。
monitoredResourceDescriptors
モニタリング対象リソースタイプに関する情報は、モニタリング対象リソース記述子(タイプは MonitoredResourceDescriptor
)と呼ばれるデータ構造に保持されます。
モニタリング対象リソース記述子は、レコード構造のスキーマまたは仕様に似ています。モニタリング対象リソースの特定のインスタンスに関するデータは含まれません。特定のタイプのモニタリング対象リソースを確認する方法について説明しています。たとえば、gce_instance
リソースのモニタリング対象リソース記述子は次のとおりです。
{ "type": "gce_instance", "displayName": "GCE VM Instance", "description": "A virtual machine instance hosted in Google Compute Engine (GCE).", "name": "projects/[PROJECT_ID]/monitoredResourceDescriptors/gce_instance" "labels": [ { "key": "project_id", "description": "The identifier of the GCP project associated with this resource, such as \"my-project\"." }, { "key": "instance_id", "description": "The numeric VM instance identifier assigned by Compute Engine." }, { "key": "zone", "description": "The Compute Engine zone in which the VM is running." } ], }
このモニタリング対象リソース記述子を、モニタリング対象リソース オブジェクトに表示される gce_instance
リソースの特定のインスタンスと比較します。この記述子は、特定のモニタリング対象リソースを記述しません。代わりに、記述子はラベルを指定し、そのラベル値の各組み合わせにより特定のモニタリング対象リソースが識別されます。
Cloud Monitoring API を使用すると、Google Cloud プロジェクトのモニタリング対象リソース記述子を取得できます。例えば、monitoredResourceDescriptors.list
メソッドと monitoredResourceDescriptors.get
メソッドのリファレンス ページをご覧ください。
実際の例: Google Cloud プロジェクトがある場合は、Monitoring API の monitoredResourceDescriptors.get
メソッドのリファレンス ページにある API Explorer ウィジェットを使用してこの記述子を取得できます。
この例を実行するときは、名前フィールドの [PROJECT_ID]
をプロジェクト ID に変更する必要があります。次に、ウィジェット パネルの下部にある [実行]ボタンをクリックします。リクエストにより、上記の記述子が返されます。
Monitoring API メソッドの使用例については、指標とリソースタイプの閲覧をご覧ください。
最新の集計では、Cloud Monitoring は約 100 種類のリソースをモニタリングできます。詳細は、リソースリストをご覧ください。このリストは、利用可能なモニタリング対象リソース記述子のセットから直接作成されています。
指標
Cloud Monitoring で作成された各時系列は、データポイントと、組織に関する情報やこれらのデータポイントの意味を記録します。
指標オブジェクト
各時系列には、指標オブジェクトに記録されるデータの説明への参照が含まれています。
指標オブジェクト(タイプ Metric
)は、この時系列のデータポイントの指標タイプと指標タイプのラベルを示す情報のコレクションです。たとえば、サンプル 時系列の時系列から抽出された指標オブジェクトを以下に示します。
{ "metric": { "labels": { "log": "kubelet", "severity": "DEFAULT" }, "type": "logging.googleapis.com/log_entry_count" }
このオブジェクトは、時系列に logging.googleapis.com/log_entry_count
指標タイプの測定値が含まれていることを示しています。ラベル値は、この特定の時系列が、kubelet
というログファイル内の重大度が DEFAULT
のログエントリのみをカウントすることを示しています。
ラベル値の組み合わせごとに 1 つの時系列があるため、同じログファイルへの INFO
エントリは異なる時系列に表示されます。
指標オブジェクトで収集されるラベルのセットは、その指標タイプの記述子に指定されています。
メトリクス記述子
指標タイプに関する情報は、指標記述子(タイプは MetricDescriptor
)と呼ばれるデータ構造に保持されます。
指標記述子は、レコード構造のスキーマまたは仕様です。特定の指標に関するデータは含まれませんが、特定の指標タイプに関連付けられたデータの解釈方法を示します。
指標タイプ logging.googleapis.com/log_entry_count
の指標記述子は次のとおりです。
{ "type": "logging.googleapis.com/log_entry_count", "name": "projects/a-gcp-project/metricDescriptors/logging.googleapis.com/log_entry_count", "labels": [ { "key": "log", "description": "Name of the log." }, { "key": "severity", "description": "Severity of the log entry." } ], "metricKind": "DELTA", "valueType": "INT64", "unit": "1", "description": "Number of log entries that contributed to user-defined metrics.", "displayName": "Log entries", "metadata": { "launchStage": "GA", "samplePeriod": "60s" }, "launchStage": "GA" }
この指標記述子を、指標オブジェクトに表示されている指標オブジェクトと比較します。この記述子によって、ラベル値の意味とデータポイントの解釈方法がわかります。
指標記述子は、Cloud Monitoring API を使用して取得できます。たとえば、metricDescriptors.list
メソッドと metricDescriptors.get
メソッドのリファレンス ページをご覧ください。
実際の例: Google Cloud プロジェクトがある場合は、Monitoring API の metricDescriptors.get
メソッドのリファレンス ページにある API Explorer ウィジェットを使用してこの記述子を取得できます。
この例を実行するときは、名前フィールドの [PROJECT_ID]
をプロジェクト ID に変更する必要があります。次に、ウィジェット パネルの下部にある [実行]ボタンをクリックします。リクエストにより、上記の記述子が返されます。
Monitoring API メソッドの使用例については、指標とリソースタイプの閲覧をご覧ください。
指標記述子のほとんどのフィールドは説明がなくてもわかります。さらに詳細な説明が必要な可能性のある 2 つの指標は、指標の種類と値のタイプです。これらについては、指標の種類とタイプで詳しく説明します。
最新の集計では、Cloud Monitoring には約 1,500 個の組み込み指標タイプがあります。詳しくは、指標の一覧をご覧ください。カスタム指標をキャプチャするために独自の指標記述子を作成することもできます。詳しくは、カスタム指標の使用をご覧ください。