オブザーバビリティ スコープを構成する

このドキュメントでは、複数の 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 エクスプローラ] ページを使用する場合は、別のトレース スコープを選択できます。これにより、選択したスコープに一覧表示されているプロジェクトがページで検索され、表示内容が更新されます。

異なるプロジェクトに保存されているトレースデータの統合ビューが必要な場合は、トレース スコープを構成することをおすすめします。

詳細については、トレース スコープの作成と管理をご覧ください。

オブザーバビリティ スコープを構成する

このセクションはフォルダや組織には適用されません。

ログデータとトレースデータの場合、表示しているプロジェクトと、検索対象のプロジェクトおよびログビューに対する Identity and Access Management(IAM)ロールは、クエリで返されるデータに影響します。表示する権限のないログデータを表示するクエリを発行すると、クエリはログデータを返しません。

指標データの場合、プロジェクトの指標スコープが構成されると、プロジェクトには、指標スコープにリストされているプロジェクトによって保存された指標データへの読み取りアクセス権が付与されます。プロジェクトの指標データを表示できる Identity and Access Management ロールがユーザーに付与されると、そのユーザーはプロジェクトで使用可能な指標データを表示できます。

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Observability API.

    Enable the API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. Verify that billing is enabled for your Google Cloud project.

  7. Enable the Observability API.

    Enable the API

  8. スコープを作成して表示するために必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

    • ログスコープを作成して表示し、デフォルトのログスコープを取得する: プロジェクトに対するログ構成書き込みroles/logging.configWriter
    • 指標スコープを変更する: 使用中のプロジェクトと、その指標スコープに追加する各プロジェクトに対するモニタリング管理者roles/monitoring.admin
    • トレース スコープを作成して表示する。また、デフォルトのスコープを取得して設定する: プロジェクトに対するオブザーバビリティ スコープ編集者roles/observability.scopesEditor

    ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

    必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

    オブザーバビリティ スコープ編集者のロールには、トレース スコープの作成と表示を可能にする非公開権限が含まれています。これらの権限は、カスタム IAM ロールに含めることはできません。

  9. Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

    In the Google Cloud console, activate Cloud Shell.

    Activate Cloud Shell

    At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

    REST

    このページの REST API サンプルをローカル開発環境で使用するには、gcloud CLI に指定した認証情報を使用します。

      Google Cloud CLI をインストールします。 インストール後、次のコマンドを実行して Google Cloud CLI を初期化します。

      gcloud init

      外部 ID プロバイダ(IdP)を使用している場合は、まずフェデレーション ID を使用して gcloud CLI にログインする必要があります。

    詳細については、 Google Cloud 認証ドキュメントの REST を使用して認証するをご覧ください。

    デフォルトのスコープを表示して設定する

    コンソール

    オブザーバビリティ スコープを構成するには、そのコンポーネント(デフォルトのログスコープ、指標スコープ、デフォルトのトレース スコープ)を構成します。

    1. Google Cloud コンソールで [ 設定] ページに移動します。

      [設定] に移動

      検索バーを使用してこのページを検索する場合は、小見出しが [Monitoring] の結果を選択します。

    2. Google Cloud コンソールのツールバーで、 Google Cloud プロジェクトを選択します。App Hub 構成の場合は、App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトを選択します。
    3. デフォルトのログスコープを構成します。

      1. [ログスコープ] タブを選択します。

        既存のログスコープが一覧表示されます。「デフォルト」アイコン のエントリがデフォルトのログスコープです。ログスコープを作成する場合は、[ログスコープを作成] をクリックしてダイアログを完了します。詳細については、ログスコープの作成と管理をご覧ください。

      2. デフォルトとして指定するエントリを見つけて、 [その他] をクリックし、[デフォルトに設定] を選択します。

    4. 指標スコープを構成します。

      1. [指標スコープ] タブを選択します。
      2. [Google Cloud プロジェクト] ペインで [プロジェクトを追加] をクリックし、ダイアログを完了します。詳細については、指標スコープを構成するをご覧ください。
    5. デフォルトのトレース スコープを構成します。

      1. [トレースのスコープ] タブを選択して、次の操作を行います。

        既存のトレース スコープが一覧表示されます。「デフォルト」アイコン のエントリがデフォルトのトレース スコープです。トレース スコープを作成する場合は、[ログスコープを作成] をクリックしてダイアログを完了します。詳細については、トレース スコープの作成と管理をご覧ください。

      2. デフォルトとして指定するエントリを見つけて、 [その他] をクリックし、[デフォルトに設定] を選択します。

    gcloud

    オブザーバビリティ スコープを表示して設定するには、次の操作を行います。

    1. オブザーバビリティ スコープの設定を表示するには、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
      

    2. オブザーバビリティ スコープを更新するには、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
      

    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 を使用すると、リファレンス ページからコマンドを実行できます。たとえば、現在のデフォルト スコープを取得するには、次の操作を行います。

    1. projects.locations.scopes.get をクリックします。
    2. [この方法を試す] ウィジェットの [名前] フィールドに、次のように入力します。

      projects/PROJECT_ID/locations/global/scopes/_Default
      

      前のフィールドをコピーする前に、PROJECT_ID をプロジェクトの名前に置き換えます。

    3. [Execute] を選択します。

    4. 承認ダイアログで、必要な手順を完了します。

      レスポンスは次の例のようになります。

      {
      "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"
      }