アプリケーション モニタリングを設定する

このドキュメントでは、App Hub に登録されているアプリケーションのテレメトリーを表示できるように Google Cloud Observability を構成する方法について説明します。アプリケーションをデプロイしてから App Hub に登録できます。または、App Design Center を使用してアプリケーションをデプロイすることもできます。アプリケーション モニタリングを使用すると、アプリケーション、サービス、ワークロードのパフォーマンスを把握できます。

始める前に

  • オブザーバビリティ スコープを構成するプロジェクトを特定します。このプロジェクトは、App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトです。たとえば、フォルダの表示名が My Folder の場合、管理プロジェクトの表示名は My Folder-mp になります。

  • オブザーバビリティ スコープを構成するために必要な Identity and Access Management(IAM)ロールを付与されていることを確認します。必要な IAM ロールは、ログデータの保存を一元管理できる集約シンクを作成するかどうかによって異なります。

    シンクとスコープを構成する

    オブザーバビリティ スコープの構成と集約ログシンクの作成に必要な権限を取得するには、組織に対する組織管理者roles/resourcemanager.organizationAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

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

    スコープのみを構成する

    オブザーバビリティ スコープの構成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

    • App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトに対するオブザーバビリティ エディタroles/observability.editor
    • App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトに対するログ構成書き込みroles/logging.configWriter
    • App Hub ホスト プロジェクト、アプリ管理用フォルダの管理プロジェクト、指標スコープに追加する各プロジェクトに対するモニタリング管理者roles/monitoring.admin
    • App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトに対する Cloud Trace ユーザーroles/cloudtrace.user
    • App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトに対する App Hub 閲覧者roles/apphub.viewer

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

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

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

オブザーバビリティ スコープは、エクスプローラ ページとダッシュボード ページで表示するデータを検索する方法を制御します。各 Google Cloud プロジェクトには 1 つのオブザーバビリティ スコープが含まれています。プロジェクトのオブザーバビリティ スコープは直接構成しません。代わりに、プロジェクトで次の内容を構成します。

  • デフォルトのログスコープ

    [ログ エクスプローラ] ページを開くか、ダッシュボードを表示したときに、アプリケーションのログデータが表示されるように、このスコープを構成します。このスコープに、アプリケーションのログデータを保存するプロジェクトとログビューが一覧表示されていることを確認します。

  • 指標スコープ

    Metrics Explorer ページを使用して作成したグラフやアラート ポリシーで、アプリケーションの指標データを表示またはモニタリングできるように、このスコープを構成します。このスコープに、アプリケーションの指標データを保存するプロジェクトが一覧表示されていることを確認します。

  • デフォルトのトレース スコープ

    [Trace エクスプローラ] ページを開いたときに、アプリケーションのトレースデータが表示されるように、このスコープを構成します。このスコープに、アプリケーションのトレースデータを保存するプロジェクトが一覧表示されていることを確認します。

このセクションの残りの部分では、これらのスコープを構成する方法について説明します。

デフォルトのログスコープを構成して設定する

次のいずれかを行います。

  • 組織内のすべてのログデータを一元化されたログバケットに転送する組織レベルの集約シンクがある場合は、次のことをおすすめします。

    1. アプリケーション ログの一元化されたログバケットにログビューを作成します。

    2. App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトで、ログスコープを作成してログビューを追加し、このスコープをデフォルトのログスコープとして設定します。

  • アプリ対応フォルダを使用しており、組織レベルの集約シンクまたはネストされたフォルダがない場合は、次のことをおすすめします。

    1. アプリ管理用フォルダのインターセプト集約シンクを作成し、これらのログを管理プロジェクトの _Default ログバケットに転送します。

    2. アプリ管理用フォルダの管理プロジェクトで、_Default という名前のログスコープがデフォルトのログスコープとして設定されていることを確認します。_Default という名前のスコープで、プロジェクトの _Default ログバケット(アプリケーションの一元化されたストレージ ロケーション)の _AllLogs ビューが一覧表示されます。

  • 集約シンクを使用していない場合は、App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトで、デフォルトのログスコープを構成して、アプリケーションのログデータの保存場所を一覧表示します。ログデータを保存するログバケットにログビューを追加することをおすすめします。

たとえば、アプリ対応フォルダを構成し、集約シンクを使用していないとします。さらに、次の操作を行います。

  1. 管理プロジェクトでログスコープを作成します。
  2. ログスコープには、フォルダ内のプロジェクト(管理プロジェクトを含む)ごとに 1 つのログビューを追加します。

    追加するビューは、プロジェクトの _Default ログバケットの _AllLogs ビューです。このビューには、_Default ログバケット内のすべてのログが含まれます。_Default ログバケットには、アプリケーション ログデータが保存されます。

    このステップを完了すると、ログスコープに次のようなエントリが追加されます。

    _Default/_AllLogs     my-folder-mp
    _Default/_AllLogs     project-in-my-folder
    _Default/_AllLogs     another-project-in-my-folder
    
  3. ログスコープを保存して、デフォルトのログスコープとして設定します。

指標スコープを構成する

App Hub ホスト プロジェクトの指標スコープまたはアプリ対応フォルダの管理プロジェクトに、アプリケーションの指標データを保存するすべてのプロジェクトが一覧表示されていることを確認します。

  • アプリ対応フォルダの場合、Google Cloud Observability は、アプリ対応フォルダ内のプロジェクトのリストを指標スコープ内のプロジェクトのリストと同期しようとします。たとえば、アプリ対応フォルダにプロジェクトを追加すると、そのプロジェクトを指標スコープに追加するコマンドが実行されます。

    アプリ対応フォルダ内のプロジェクト数が指標スコープの割り当て(デフォルトは指標スコープあたり 375 個のプロジェクト)を超えない場合、Google Cloud Observability は指標スコープ内のプロジェクトのリストをアプリ対応フォルダ内のプロジェクトのリストと同期できます。たとえば、割り当てが指標スコープごとに 375 個のプロジェクトであるとします。アプリ対応フォルダに 100 個のプロジェクトが含まれている場合、指標スコープにはアプリ対応フォルダ内のすべてのプロジェクトが一覧表示されます。アプリ対応フォルダにプロジェクトを追加すると、それらのプロジェクトは指標スコープにも追加されます。

    アプリ対応フォルダ内のプロジェクト数が指標スコープの割り当てを超えると、指標スコープ内のプロジェクトのリストに、アプリ対応フォルダ内のすべてのプロジェクトが含まれなくなります。たとえば、割り当てが指標スコープごとに 375 個のプロジェクトであり、アプリ対応フォルダに 380 個のプロジェクトがあるとします。375 個のプロジェクトが指標スコープに追加されると、割り当てが枯渇し、残り 5 個のプロジェクトの追加の試行は失敗します。そのため、一部のアプリケーション データは管理プロジェクトで使用できません。

    指標スコープの割り当ての使用状況を確認し、割り当ての更新をリクエストするか、指標スコープを手動で変更する必要があるかを判断することをおすすめします。これらの手順については、アプリ管理用フォルダの指標スコープをご確認ください。

  • App Hub ホスト プロジェクトの場合は、ホスト プロジェクトの指標スコープを構成する必要があります。

    指標データを保存するプロジェクトのセットを変更する場合は、ホスト プロジェクトの指標スコープも更新する必要があります。

デフォルトのトレース スコープを構成して設定する

手順は次のとおりです。

  1. App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトで、トレース スコープを作成し、アプリケーションのトレースデータを保存するプロジェクトを追加します。アプリ対応フォルダを使用している場合は、そのフォルダにプロジェクトを追加します。

  2. カスタム トレース スコープをデフォルトのトレース スコープとして設定します。

アラート ポリシーを App Hub アプリケーションに関連付ける

アプリケーション モニタリングのコンテキストからアラート ポリシーを表示するには、アプリケーション固有のラベルをアラート ポリシーに追加して、アラート ポリシーをサービスまたはワークロードに関連付ける必要があります。これらのユーザー定義ラベルは、ポリシー用に作成されたインシデントにも含まれます。ラベルの詳細については、インシデントにラベルでアノテーションを付けるをご覧ください。App Hub ラベルのリストについては、アプリケーションのテレメトリーを表示するをご覧ください。

Google Cloud コンソールを使用してアラート ポリシーをワークロードまたはサービスに関連付けるには、次の操作を行います。

  1. Google Cloud コンソールで、[ アラート] ページに移動します。

    [アラート] に移動

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

  2. Google Cloud コンソールのツールバーで、App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトを選択します。
  3. アラート ポリシーを見つけて、 [さらに表示] をクリックし、[編集] を選択して、[通知と名前] セクションに移動します。
  4. [アプリケーション ラベル] セクションで、アプリケーションを選択してから、ワークロードまたはサービスを選択します。
  5. [ポリシーを保存] をクリックします。

これらの手順を完了すると、次のキーを持つラベルがアラート ポリシーに添付されます。これらのラベルは、アプリケーションとサービスまたはワークロードを識別します。

  • apphub_application_location
  • apphub_application_id
  • apphub_service_id または apphub_workload_id

Google Cloud CLI、Terraform、または Cloud Monitoring API を使用して、アラート ポリシーにユーザーラベルを追加することもできます。ただし、前述の例に示したラベルキーを使用する必要があります。詳しくは以下をご覧ください。

アクセスを許可

IAM は、ログ、指標、トレースデータへのアクセスを管理します。このセクションでは、プリンシパルに付与することが必要な場合のあるロールの概要について説明します。

  • App Hub ホスト プロジェクトのデフォルトのログスコープまたはアプリ対応フォルダの管理プロジェクトに一覧表示されているログビューに対するログ表示アクセス者roles/logging.viewAccessor)。ログビューへのアクセス権の付与の詳細については、ログビューへのアクセスを制御するをご覧ください。

  • App Hub ホスト プロジェクト、アプリ対応フォルダの管理プロジェクト、デフォルトのログスコープに一覧表示されている他のプロジェクトに対するログ閲覧者roles/logging.viewer)。このロールには、_Default ログバケット内のほとんどのログエントリへのアクセス権が付与されます。詳細については、Logging のロールをご覧ください。

  • App Hub ホスト プロジェクトまたはアプリ管理用フォルダの管理プロジェクトに対するモニタリング編集者のロール(roles/monitoring.editor)。アラート ポリシーを作成する必要がないプリンシパルには、モニタリング閲覧者ロール(roles/monitoring.viewer)を付与することを検討してください。

  • App Hub ホスト プロジェクト、アプリ対応フォルダの管理プロジェクト、デフォルトのトレース スコープに一覧表示されているプロジェクトに対する Cloud Trace ユーザーroles/cloudtrace.user)。

  • App Hub ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトに対する App Hub 閲覧者roles/apphub.view)。

次のステップ