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

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

始める前に

  • オブザーバビリティ スコープを構成するプロジェクトを特定します。このプロジェクトは、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 ホスト プロジェクトまたはアプリ対応フォルダの管理プロジェクトで、デフォルトのログスコープを構成して、アプリケーションのログデータのストレージ ロケーションを一覧表示します。ログスコープにプロジェクトを追加するのではなく、ログデータを保存するログバケットにログビューを追加することをおすすめします。

指標スコープを構成する

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)。アラート ポリシーを作成する必要がないプリンシパルには、Monitoring 閲覧者ロール(roles/monitoring.viewer)を付与することを検討してください。

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

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

次のステップ