このドキュメントでは、複数の Google Cloud プロジェクトのテレメトリー データをモニタリングまたは表示するように 1 つの Google Cloud プロジェクトを構成する方法について説明します。1 つのGoogle Cloud プロジェクトに保存されているデータのみをモニタリングまたは表示する場合は、構成を行う必要はありません。可視化ツールと分析ツールは、プロジェクト選択ツールで選択した Google Cloud プロジェクトに保存されているデータを使用するように構成されています。ただし、表示または分析するテレメトリー データが複数のプロジェクトから取得されている場合は、そのデータの集計ビューを取得するため、いくつかの構成アクティビティを実行する必要があります。
オブザーバビリティ スコープについて
Google Cloud Observability の分析ツールと可視化ツールはデータ型固有のスコープに依存し、表示または分析するデータを決定します。 スコープは、特定のデータ型の検索対象となるリソースを定義します。指標データを除き、表示されるデータは、検索されたプロジェクトとログビューに対する Identity and Access Management(IAM)ロールによって決定されます。
次のスコープを構成できます。
- オブザーバビリティ スコープ
このスコープは、エクスプローラ ページとダッシュボード ページで表示するデータを検索する方法を制御します。各 Google Cloud プロジェクトには、デフォルトのログスコープ、指標スコープ、デフォルトのトレース スコープが一覧表示される単一のオブザーバビリティ スコープが含まれています。
次のシナリオでは、オブザーバビリティ スコープのコンポーネントを構成することをおすすめします。
- アプリは App Hub で登録します。これらは、自分で登録したアプリケーションや、App Design Center を使用してデプロイしたアプリケーションです。
- 異なる Google Cloud プロジェクトに保存されているテレメトリー データの統合ビューが必要な場合。
プロジェクトのオブザーバビリティ スコープのコンポーネントを構成しない場合、[ログ エクスプローラ] ページには、プロジェクトで生成されたログデータが表示されます。[Metrics Explorer] ページと [Trace エクスプローラ] ページには、プロジェクトに保存されているデータのみを表示できます。また、アラート ポリシーはプロジェクトに保存されているデータのみをモニタリングできます。
- ログスコープ
プロジェクトのデフォルトのログスコープを構成して、[ログ エクスプローラ] ページを開いたときに、通常表示するデータが表示されるようにします。ログスコープには、プロジェクト、フォルダ、組織、ログビューを配置できます。たとえば、ログビューのリストを表示するようにデフォルトのログスコープを設定して、クエリを実行すると、App Hub アプリケーションのログデータが返されます。
ログスコープは複数作成できます。[ログ エクスプローラ] ページを使用する場合は、別のログスコープを選択できます。これにより、選択したスコープに一覧表示されているリソースがページで検索され、表示内容が更新されます。
次のシナリオでは、デフォルトのログスコープを構成することをおすすめします。
- ログデータを一元化されたログバケットに転送します。
- ログデータを他のプロジェクトまたは別のプロジェクトによって保存されているログバケットに転送します。
- ログビューを使用します。
詳細については、ログスコープの作成と管理をご覧ください。
- 指標スコープ
指標データを保存するすべてのプロジェクトを一覧表示するように指標スコープを構成すると、グラフとアラート ポリシーで指標データの集計ビューを表示またはモニタリングできます。
各 Google Cloud プロジェクトには 1 つの指標スコープが含まれ、このスコープにはデフォルトでそのプロジェクトのみが一覧表示されます。
次のいずれかに該当する場合は、指標スコープを構成することをおすすめします。
- 異なるプロジェクトに保存されているデータをグラフに表示する必要がある場合。
- 異なるプロジェクトに保存されているデータをモニタリングするアラート ポリシーが必要な場合。
- アプリは App Hub で登録します。このシナリオについては、管理プロジェクトの指標スコープをご覧ください。
詳細については、指標スコープの概要をご覧ください。
- トレースのスコープ
トレースデータを保存するすべてのプロジェクトを一覧表示するようにデフォルトのトレース スコープを構成します。これにより、[Trace エクスプローラ] ページを開いたときに、トレースデータの集計ビューが表示されます。
トレース スコープは複数作成できます。[Trace エクスプローラ] ページを使用する場合は、別のトレース スコープを選択できます。これにより、選択したスコープに一覧表示されているプロジェクトがページで検索され、表示内容が更新されます。
異なるプロジェクトに保存されているトレースデータの統合ビューが必要な場合は、トレース スコープを構成することをおすすめします。
詳細については、トレース スコープの作成と管理をご覧ください。
始める前に
スコープを作成して表示するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
ログスコープを作成して表示し、デフォルトのログスコープを取得する: プロジェクトに対するログ構成書き込み(
roles/logging.configWriter
) -
指標スコープを変更する: 使用中のプロジェクトと、その指標スコープに追加する各プロジェクトに対するモニタリング管理者(
roles/monitoring.admin
) -
トレース スコープを作成して表示し、デフォルトのトレース スコープを取得する: プロジェクトに対する Cloud Trace ユーザー(
roles/cloudtrace.user
) - デフォルトのスコープを取得して設定する: プロジェクトに対するオブザーバビリティ編集者(
roles/observability.editor
)
ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
これらの事前定義ロールには、スコープの作成と表示に必要な権限が含まれています。必要とされる正確な権限については、「必要な権限」セクションを開いてご確認ください。
必要な権限
スコープを作成して表示するには、次の権限が必要です。
-
ログスコープを構成する:
logging.logScopes.{create, delete, get, list, update}
-
指標スコープを構成する:
monitoring.metricsscopes.{link, get, list}
-
トレース スコープを構成する:
cloudtrace.traceScopes.{create, delete, get, list, update}
-
デフォルトのスコープを取得して設定する:
observability.scopes.{get, update}
カスタムロールや他の事前定義ロールを使用して、これらの権限を取得することもできます。
オブザーバビリティ スコープを構成する
このセクションはフォルダや組織には適用されません。
プロジェクトのオブザーバビリティ スコープのコンポーネントを構成しない場合、[ログ エクスプローラ] ページには、プロジェクトで生成されたログデータが表示されます。[Metrics Explorer] ページと [Trace エクスプローラ] ページには、プロジェクトに保存されているデータのみを表示できます。また、アラート ポリシーでモニタリングできるのは、プロジェクトに保存されているデータのみです。
ログデータとトレースデータの場合、表示されるデータは、表示しているプロジェクトと、検索対象のプロジェクトおよびログビューに対する Identity and Access Management(IAM)ロールによって異なります。指標データを表示できるかどうかは、表示しているプロジェクトに対する IAM ロールによって異なります。
コンソール
オブザーバビリティ スコープを構成するには、そのコンポーネント(デフォルトのログスコープ、指標スコープ、デフォルトのトレース スコープ)を構成します。
-
Enable the Observability API.
API を有効にする前に、正しいプロジェクトが選択されていることを確認します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトを選択します。
-
Google Cloud コンソールで [settings 設定] ページに移動します。
検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。
Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトを選択します。
デフォルトのログスコープを構成します。
[ログスコープ] タブを選択します。
既存のログスコープが一覧表示されます。「デフォルト」アイコン
のエントリがデフォルトのログスコープです。ログスコープを作成する場合は、[ログスコープを作成] をクリックしてダイアログを完了します。詳細については、ログスコープの作成と管理をご覧ください。
デフォルトとして指定するエントリを見つけて、more_vert [その他] をクリックし、[デフォルトに設定] を選択します。
指標スコープを構成します。
- [指標スコープ] タブを選択します。
- [Google Cloud プロジェクト] ペインで [プロジェクトを追加] をクリックし、ダイアログを完了します。詳細については、指標スコープを構成するをご覧ください。
デフォルトのトレース スコープを構成します。
[トレースのスコープ] タブを選択して、次の操作を行います。
既存のトレース スコープが一覧表示されます。「デフォルト」アイコン
のエントリがデフォルトのトレース スコープです。トレース スコープを作成する場合は、[ログスコープを作成] をクリックしてダイアログを完了します。詳細については、トレース スコープの作成と管理をご覧ください。
デフォルトとして指定するエントリを見つけて、more_vert [その他] をクリックし、[デフォルトに設定] を選択します。
gcloud
デフォルトのオブザーバビリティ スコープを表示して設定するには、次の操作を行います。
デフォルト スコープの設定を表示するには、
gcloud observability scopes describe
コマンドを実行します。後述のコマンドデータを使用する前に、次のように置き換えます。
- OBSERVABILITY_SCOPE_ID:
Scope
オブジェクトの名前。この値は_Default
に設定する必要があります。 - LOCATION: ロケーション フィールドは
global
に設定する必要があります。 - PROJECT_ID: プロジェクトの ID。
gcloud observability scopes describe
コマンドを実行します。Linux、macOS、Cloud Shell
gcloud observability scopes describe OBSERVABILITY_SCOPE_ID \ --location=LOCATION\ --project=PROJECT_ID
Windows(PowerShell)
gcloud observability scopes describe OBSERVABILITY_SCOPE_ID ` --location=LOCATION` --project=PROJECT_ID
Windows(cmd.exe)
gcloud observability scopes describe OBSERVABILITY_SCOPE_ID ^ --location=LOCATION^ --project=PROJECT_ID
コマンドに対するレスポンスは次のようになります。
logScope: logging.googleapis.com/projects/my-project/locations/global/logScopes/_Default name: projects/my-project/locations/global/scopes/_Default
- OBSERVABILITY_SCOPE_ID:
デフォルトのスコープを更新するには、
gcloud observability scopes update
コマンドを実行します。後述のコマンドデータを使用する前に、次のように置き換えます。
- OBSERVABILITY_SCOPE_ID:
Scope
オブジェクトの名前。この値は_Default
に設定する必要があります。 - LOG_SCOPE_FQN_ID: ログスコープの完全修飾 ID。このフィールドの形式は次のとおりです。
logging.googleapis.com/projects/PROJECT_ID/locations/LOCATION/logScopes/LOG_SCOPE_ID
上記の式で、LOG_SCOPE_ID はログスコープの ID です。例:
my-scope
。 - LOCATION: ロケーション フィールドは
global
に設定する必要があります。 - PROJECT_ID: プロジェクトの ID。
gcloud observability scopes update
コマンドを実行します。Linux、macOS、Cloud Shell
gcloud observability scopes update OBSERVABILITY_SCOPE_ID \ --log-scope=LOG_SCOPE_FQN_ID\ --location=LOCATION\ --project=PROJECT_ID
Windows(PowerShell)
gcloud observability scopes update OBSERVABILITY_SCOPE_ID ` --log-scope=LOG_SCOPE_FQN_ID` --location=LOCATION` --project=PROJECT_ID
Windows(cmd.exe)
gcloud observability scopes update OBSERVABILITY_SCOPE_ID ^ --log-scope=LOG_SCOPE_FQN_ID^ --location=LOCATION^ --project=PROJECT_ID
たとえば、LOG_SCOPE_ID の値が
my-scope
の場合、レスポンスは次のようになります。Updated scope [_Default]. logScope: logging.googleapis.com/projects/my-project/locations/global/logScopes/my-scope name: projects/my-project/locations/global/scopes/_Default
- OBSERVABILITY_SCOPE_ID:
REST
デフォルトのトレース スコープの設定はサポートされていません。
Observability API を使用してデフォルトのログスコープを取得または設定する手順は次のとおりです。
Observability API が有効になっていることを確認します。
-
After installing the Google Cloud CLI, initialize it by running the following command:
gcloud init
If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
Google Cloud CLI のデフォルト プロジェクトを設定します。
gcloud config set project PROJECT_ID
前述のコマンドを実行する前に、次のように置き換えます。
- PROJECT_ID: プロジェクトの ID。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトを選択します。
-
Enable the Observability API:
gcloud services enable observability.googleapis.com
-
次のいずれかを行います。
プロジェクトのデフォルトのログスコープを取得するには、
projects.locations.scopes.get
エンドポイントにリクエストを送信します。パスパラメータを指定する必要があります。レスポンスは、デフォルトのログスコープを一覧表示するScope
オブジェクトです。プロジェクトのデフォルトのログスコープを更新するには、
projects.locations.scopes.patch
エンドポイントにリクエストを送信します。パスパラメータとクエリ パラメータを指定し、Scope
オブジェクトを指定する必要があります。クエリ パラメータは、変更されるフィールドを特定します。レスポンスはScope
オブジェクトです。どちらのエンドポイントのパスパラメータも次の形式になります。
projects/PROJECT_ID/locations/LOCATION/scopes/OBSERVABILITY_SCOPE_ID
前の式のフィールドの意味は次のとおりです。
- PROJECT_ID: プロジェクトの ID。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトを選択します。
- LOCATION: ロケーション フィールドは
global
に設定する必要があります。 - OBSERVABILITY_SCOPE_ID:
Scope
オブジェクトの名前。このフィールドは_Default
に設定する必要があります。_Default
という名前のScope
オブジェクトに、デフォルトのログスコープに関する情報が格納されます。このオブジェクトは自動的に作成されます。
API エンドポイントにコマンドを送信するには、API Explorer を使用します。API Explorer を使用すると、リファレンス ページからコマンドを実行できます。たとえば、現在のデフォルト スコープを取得するには、次の操作を行います。
projects.locations.scopes.get
をクリックします。[この方法を試す] ウィジェットの [名前] フィールドに、次のように入力します。
projects/PROJECT_ID/locations/global/scopes/_Default
前のフィールドをコピーする前に、PROJECT_ID をプロジェクトの名前に置き換えます。
[Execute] を選択します。
承認ダイアログで、必要な手順を完了します。
レスポンスは次の例のようになります。
{ "name": "projects/my-project/locations/global/scopes/_Default", "logScope": "logging.googleapis.com/projects/my-project/locations/global/logScopes/_Default" }