このドキュメントでは、データが複数のプロジェクトに保存されている場合の、グラフ作成やログデータ表示の方法について説明します。デフォルトでは、プロジェクトで生成されたデータのみが可視化ツールで使用できます。ただし、スコープを構成すると、可視化ツールと分析ツールで複数のプロジェクトに保存されているデータをクエリできます。
1 つのGoogle Cloud プロジェクトに保存されているデータのみをモニタリングまたは表示する場合は、構成を行う必要はありません。
スコープは読み取り時の集計を提供する
スコープを使用すると、可視化ツールと分析ツールで、複数の場所に保存されているデータの読み取り時集計を実行できます。スコープはデータの保存場所を制御しません。代わりに、クエリエンジンはスコープを使用して、データの検索場所を特定します。
指標データとトレースデータは常に、データの生成元の Google Cloud プロジェクトに保存されます。複数のプロジェクトに保存されている指標データを 1 つのグラフに表示するには、それらのプロジェクトを一覧表示するように指標スコープを構成します。このスコープを構成すると、グラフまたはアラート ポリシーを作成するときに、これらのサービスによって発行されたクエリは、リストされているプロジェクトの指標データを自動的に返します。トレースデータでも同様の動作になります。
デフォルトでは、ログデータはデータの生成元の Google Cloud プロジェクト、請求先アカウント、フォルダ、組織に保存されます。ただし、Logging を構成して、ログデータをその生成元のリソースから別のプロジェクトや一元化されたログバケットなどの別の場所に転送できます。いずれの場合も、カスタム ログスコープを構成します。ログスコープには、プロジェクトではなくログビューをリストすることをおすすめします。ログビューは、ログバケット内のログエントリのサブセットに対する読み取りアクセス権を提供します。たとえば、3 つのプロジェクトにログデータが保存されている場合、これらの各プロジェクトの _Default/_AllLogs ビューを含めるようにログビューを構成できます。
Google Cloud Observability でのスコープの使用方法
Google Cloud Observability の分析ツールと可視化ツールはデータ型固有のスコープに依存し、ツールで表示または分析するデータのクエリ対象となるリソースを決定します。
例:
- [ログ エクスプローラ] ページが開くと、システムはデフォルトのログスコープにリストされているリソースに対してログデータをクエリします。このページを開いた後、ツールバー オプションを使用して別のスコープのリソースをクエリできます。
- [Trace エクスプローラ] ページが開くと、システムはデフォルトのトレース スコープにリストされているプロジェクトに対してトレースデータをクエリします。このページを開いた後、ツールバー オプションを使用して別のスコープのリソースをクエリできます。
- アラート ポリシーを作成すると、Monitoring は指標スコープにリストされているプロジェクトに指標データをクエリします。次に、クエリ レスポンスを分析し、インシデントを作成するかどうかを判断します。
- [Metrics Explorer] ページを使用してグラフを作成する場合は、グラフ化する指標を指定します。Monitoring は、指標スコープにリストされているプロジェクトに対して指標データをクエリし、クエリ結果を表示します。
Logging と Trace は、クエリがデータを返す前に、リソースに対する Identity and Access Management(IAM)ロールを検証します。たとえば、ログスコープで、ログデータを読み取る権限が付与されていないプロジェクトが指定されている場合、そのプロジェクトに対するクエリはデータを返しません。
Monitoring は、クエリが発行されたプロジェクトに対する IAM ロールを確認します。AllEnv という名前のプロジェクトの指標スコープに、AllEnv、Prod、Staging の各プロジェクトがリストされているとします。また、AllEnv プロジェクトでモニタリング閲覧者のロールが付与されているとします。AllEnv プロジェクトを使用している場合、Metrics Explorer ページで作成したグラフには、3 つのプロジェクトの指標データが自動的に表示されます。
Google Cloud Observability のスコープ
このセクションでは、Google Cloud Observability で使用されるスコープについて説明します。
オブザーバビリティ スコープ
オブザーバビリティ スコープには、デフォルトのログスコープとデフォルトのトレース スコープが指定されます。[ログ エクスプローラ] や [Trace エクスプローラ] などのページでは、デフォルトのスコープを使用して、ページが開いたときにクエリするリソースを決定します。たとえば、3 つのプロジェクトでトレースデータを生成するアプリケーションがあるとします。デフォルトのトレース スコープを設定することで、これらの 3 つのプロジェクトを自動的にクエリするように Trace エクスプローラ ページを構成できます。
オブザーバビリティ スコープを構成しない場合、次のようになります。
- [ログ エクスプローラ] ページで、プロジェクトのログデータがクエリされます。
- [Trace エクスプローラ] ページで、プロジェクトのトレースデータがクエリされます。
オブザーバビリティ スコープは指標データには適用されません。
オブザーバビリティ スコープを構成するタイミング
次のシナリオでは、オブザーバビリティ スコープを構成します。
カスタム ログスコープを作成し、そのスコープにリストされているリソースがデフォルトでクエリされるようにする。
カスタム トレース スコープを作成し、そのスコープにリストされているプロジェクトがデフォルトでクエリされるようにする。
オブザーバビリティ スコープに関連する上限
| 説明 | 最大値 |
|---|---|
| プロジェクトあたりのオブザーバビリティ スコープの数 | 1 |
ログスコープ
ログスコープは、[ログ エクスプローラ] ページと、ログデータを表示するダッシュボードで使用されます。
[ログ エクスプローラ] ページが開くと、システムはデフォルトのログスコープにリストされているリソースに対してログデータのクエリを自動的に実行します。このページには、スコープを切り替えるためのコントロールもあります。
ダッシュボードの場合、実装によって、システムがプロジェクトをクエリするか、デフォルトのログスコープに一覧表示されているリソースをクエリするかが決まります。
ログスコープには、ログビュー、プロジェクト、フォルダ、組織を配置できます。
カスタム ログスコープを構成しない場合、[ログ エクスプローラ] ページはプロジェクトにログデータをクエリします。
カスタム ログスコープを作成するタイミング
次の構成用にカスタム ログスコープを作成します。
- ログデータを一元化されたログバケットに転送します。
- ログデータを複数のプロジェクトに保存します。
- アプリケーション モニタリングを使用しています。これは、App Hub アプリケーションのダッシュボードを生成するサービスです。
いずれの場合も、1 つ以上のログビューを一覧表示するようにカスタムログ スコープを構成します。これらのログビューは、一元化されたログバケットにある場合もあれば、異なるログバケットにある場合もあります。一元化されたログバケットを使用する場合は、複数のカスタム ログスコープを作成し、それぞれに独自のログビューのセットを設定できます。
カスタム ログスコープを作成する場合は、デフォルトのログスコープの更新を検討してください。
ログスコープを構成する際のベスト プラクティス
- ログビューのみを含めます。
- プロジェクトとログビューの両方を一覧表示するスコープは構成しないでください。
ログスコープに関連付けられた上限
| 説明 | 最大値 |
|---|---|
| プロジェクトあたりのログスコープの数 | 100 |
| ログスコープあたりのプロジェクトの数 | 5 |
| ログスコープあたりのログビューまたはプロジェクトの数 | 100 |
詳細については、ログスコープの作成と管理をご覧ください。
指標スコープ
指標スコープは、Cloud Monitoring によって発行されるすべてのクエリで使用されます。たとえば、アラート ポリシーや Metrics Explorer などのグラフツールは、指標スコープにリストされているプロジェクトに対してクエリを発行します。
指標スコープを構成しない場合、Monitoring サービスはプロジェクトに指標データをクエリします。
指標スコープを構成するタイミング
次のいずれかに該当する場合は、指標スコープを構成します。
- 異なるプロジェクトに保存されているデータをグラフに表示する必要がある場合。
- 異なるプロジェクトに保存されているデータをモニタリングするアラート ポリシーが必要な場合。
- アプリは App Hub で登録します。このシナリオについては、App Hub のアプリケーションと指標スコープをご覧ください。
指標スコープに関連する上限
| 説明 | 最大値 |
|---|---|
| プロジェクトあたりの指標スコープの数 | 1 |
| 指標スコープあたりのプロジェクトの数 | 375 |
詳細については、指標スコープの概要をご覧ください。
トレースのスコープ
[Trace エクスプローラ] ページでは、トレース スコープが使用されます。このページが開くと、システムはデフォルトのトレース スコープにリストされているビューのトレースデータを自動的にクエリします。このページには、スコープを切り替えるためのコントロールもあります。
カスタム トレース スコープを構成しない場合、[Trace エクスプローラ] ページは、トレースデータのデフォルト データセットのプロジェクトの _AllSpans ビューをクエリします。
トレース スコープには、 Google Cloud プロジェクトではなくビューが一覧表示されます。トレース スコープを構成するときにプロジェクトを選択しますが、システムはそれらのプロジェクトのデフォルトのトレースビューをスコープに追加します。プロジェクトのデフォルトのトレースビューは、パス _Trace/Spans/_AllSpans のビューに対応します。ここで、フィールド _Trace、Spans、_AllSpans は、オブザーバビリティ バケット、データセット、ビューを参照します。データセット Spans にトレースデータが保存されます。
カスタム トレース スコープを作成するタイミング
異なる Google Cloud プロジェクトのリソースに依存するアプリケーションがある場合は、カスタム トレース スコープを作成します。
トレーススコープを構成する際のベスト プラクティス
トレース スコープに関連する上限
| 説明 | 最大値 |
|---|---|
| プロジェクトあたりのトレース スコープの数 | 100 |
| トレース スコープあたりのビューの数 | 20 |
詳細については、トレース スコープの作成と管理をご覧ください。
オブザーバビリティ スコープを構成する
このセクションはフォルダや組織には適用されません。
ログデータとトレースデータの場合、表示しているプロジェクトと、検索対象のプロジェクトおよびログビューに対する Identity and Access Management(IAM)ロールは、クエリで返されるデータに影響します。表示する権限のないログデータを表示するクエリを発行すると、クエリはログデータを返しません。
指標データの場合、プロジェクトの指標スコープが構成されると、プロジェクトには、指標スコープにリストされているプロジェクトによって保存された指標データへの読み取りアクセス権が付与されます。プロジェクトの指標データを表示できる Identity and Access Management ロールがユーザーに付与されると、そのユーザーはプロジェクトで使用可能な指標データを表示できます。
オブザーバビリティ スコープを構成するには、デフォルトのログスコープとデフォルトのトレース スコープを設定します。このセクションの残りの部分では、これらの操作を完了する方法について説明します。
始める前に
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Observability API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Observability API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
スコープを作成して表示するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
ログスコープを作成して表示し、デフォルトのログスコープを取得する: プロジェクトに対するログ構成書き込み(
roles/logging.configWriter) -
指標スコープを変更する: 使用中のプロジェクトと、その指標スコープに追加する各プロジェクトに対するモニタリング管理者(
roles/monitoring.admin) -
トレース スコープを作成して表示する。また、デフォルトのスコープを取得して設定する: プロジェクトに対するオブザーバビリティ スコープ編集者(
roles/observability.scopesEditor)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
オブザーバビリティ スコープ編集者のロールには、トレース スコープの作成と表示を可能にする非公開権限が含まれています。これらの権限は、カスタム IAM ロールに含めることはできません。
-
ログスコープを作成して表示し、デフォルトのログスコープを取得する: プロジェクトに対するログ構成書き込み(
-
このページのサンプルをどのように使うかに応じて、タブを選択してください。
コンソール
Google Cloud コンソールを使用して Google Cloud サービスと API にアクセスする場合、認証を設定する必要はありません。
gcloud
Google Cloud コンソールで Cloud Shell をアクティブにします。
Google Cloud コンソールの下部にある Cloud Shell セッションが開始し、コマンドライン プロンプトが表示されます。Cloud Shell はシェル環境です。Google Cloud CLI がすでにインストールされており、現在のプロジェクトの値もすでに設定されています。セッションが初期化されるまで数秒かかることがあります。
REST
このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。
Google Cloud CLI をインストールします。
外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。
詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。
デフォルトのスコープを表示して設定する
コンソール
オブザーバビリティ スコープを構成するには、そのコンポーネント(デフォルトのログスコープ、指標スコープ、デフォルトのトレース スコープ)を構成します。
-
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 traceScope: projects/my-project/locations/global/traceScopes/_Default name: projects/my-project/locations/global/scopes/_Default
- OBSERVABILITY_SCOPE_ID:
オブザーバビリティ スコープを更新するには、
gcloud observability scopes updateコマンドを実行します。updateコマンドでは、--log-scopeフラグを含めて、デフォルトのログスコープを更新できます。後述のコマンドデータを使用する前に、次のように置き換えます。
- 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
API 呼び出しを使用してデフォルトのログスコープまたはデフォルトのトレース スコープを取得して設定するには、オブザーバビリティ スコープを構成します。オブザーバビリティ スコープには、デフォルトのログスコープとデフォルトのトレース スコープがリストで示されます。
プロジェクトのデフォルトのオブザーバビリティ スコープを取得するには、
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" "traceScope": "projects/my-project/locations/global/traceScopes/_Default" }
スコープの詳細
スコープの詳細については、次のドキュメントをご覧ください。