設定多專案查詢的觀測範圍

本文說明資料儲存在多個專案時,如何建立圖表或查看記錄資料。根據預設,只有專案中的原始資料可供視覺化工具使用。不過,如果您設定範圍,視覺化和分析工具就能查詢儲存在多個專案中的資料。

如果您只想監控或查看儲存在單一Google Cloud 專案中的資料,則不必進行任何設定。

範圍提供讀取時間匯總

範圍可讓視覺化和分析工具在讀取時,彙整儲存在多個位置的資料。範圍不會控管資料的儲存位置,查詢引擎會根據範圍決定要從何處搜尋資料。

指標和追蹤資料一律會儲存在資料來源的 Google Cloud 專案中。如要在單一圖表中查看儲存在多個專案中的指標資料,請設定指標範圍來列出這些專案。設定這個範圍後,當您建立圖表或警報政策時,這些服務發出的查詢會自動從列出的專案傳回指標資料。追蹤資料的行為也類似。

根據預設,記錄資料會儲存在資料來源的 Google Cloud 專案、帳單帳戶、資料夾或機構中。不過,您可以設定 Logging,將記錄檔資料從來源資源轉送至其他位置,例如其他專案或集中式記錄檔值區。在所有情況下,請設定自訂記錄範圍。建議您在記錄範圍清單中列出記錄檢視,而非專案;記錄檢視可提供記錄檔值區中部分記錄項目的讀取權限。舉例來說,如果您有儲存在三個專案中的記錄資料,則可以設定記錄檢視,為每個專案加入 _Default/_AllLogs 檢視。

Google Cloud Observability 如何使用範圍

Google Cloud Observability 分析和視覺化工具會根據特定資料類型的範圍,判斷要查詢哪些資源的資料,以便顯示或分析。

範例:

  • 開啟「記錄檔探索工具」頁面時,系統會查詢預設記錄範圍中列出的資源,以取得記錄資料。開啟這個頁面後,您可以使用工具列選項,在不同範圍中查詢資源。
  • 開啟「Trace 探索工具」頁面後,系統會查詢預設追蹤記錄範圍中列出的專案,找出追蹤記錄資料。開啟這個頁面後,您可以使用工具列選項,查詢不同範圍的資源。
  • 建立快訊政策時,Monitoring 會查詢指標範圍中列出的專案,取得指標資料。然後分析查詢回應,判斷是否要建立事件。
  • 使用「Metrics Explorer」頁面建立圖表時,您會指定要繪製的指標。Monitoring 會查詢指標範圍中列出的專案,取得指標資料,然後顯示查詢結果。

在查詢傳回資料前,Logging 和 Trace 會先驗證資源的身分與存取權管理 (IAM) 角色。舉例來說,如果記錄範圍指定了您沒有權限讀取記錄資料的專案,則對該專案的查詢不會傳回資料。

監控服務會驗證您在發出查詢的專案中擁有的 IAM 角色。假設名為 AllEnv 的專案指標範圍列出下列專案:AllEnvProdStaging。此外,假設您已在 AllEnv 專案中獲派 Monitoring 檢視者角色。使用 AllEnv 專案時,透過「Metrics Explorer」頁面建立的圖表會自動顯示這三個專案的指標資料。

Google Cloud Observability 範圍

本節說明 Google Cloud 可觀測性使用的範圍。

觀測範圍

可觀測性範圍會指定預設記錄範圍和預設追蹤記錄範圍。「記錄探索工具」和「追蹤記錄探索工具」等頁面會使用預設範圍,決定開啟頁面時要查詢哪些資源。舉例來說,假設您有一個應用程式,會在三個專案中產生追蹤資料。您可以設定預設追蹤記錄範圍,讓「Trace 探索工具」頁面自動查詢這三個專案。

如果您未設定可觀測性範圍,將會發生下列情況:

  • 「記錄檔探索工具」頁面會查詢專案的記錄檔資料。
  • 「Trace 探索工具」頁面會查詢專案的追蹤記錄資料。

觀測範圍不適用於指標資料。

設定可觀測範圍的時機

在下列情況中設定可觀測性範圍:

  • 您建立了自訂記錄範圍,並希望系統預設查詢該範圍中列出的資源。

  • 您建立了自訂追蹤範圍,並希望系統預設查詢該範圍中列出的專案。

與觀測範圍相關的限制

說明 最大值
每項專案的觀測範圍數量 1

記錄範圍

記錄範圍會用於「記錄檔探索工具」頁面,以及顯示記錄資料的資訊主頁:

  • 「Logs Explorer」頁面開啟後,系統會自動查詢預設記錄範圍中列出的資源,以取得記錄資料。這個頁面也提供控制選項,可讓您切換範圍。

  • 如果是資訊主頁,實作方式會決定系統查詢的是專案,還是預設記錄範圍中列出的資源。

記錄範圍可以列出記錄檢視、專案、資料夾和機構。

如果您未設定自訂記錄範圍,「記錄檔探索工具」頁面會查詢專案的記錄資料。

建立自訂記錄範圍的時機

為下列設定建立自訂記錄範圍:

  • 將記錄資料轉送至集中式記錄值區
  • 您將記錄資料儲存在多個專案中。
  • 您正在使用「應用程式監控」服務,這項服務會為 App Hub 應用程式產生資訊主頁。

在所有情況下,請設定自訂記錄範圍,列出一或多個記錄檢視畫面。這些記錄檢視畫面可能位於集中式記錄 bucket,也可能位於不同的記錄 bucket。如果您使用集中式記錄檔儲存空間,則可能會建立多個自訂記錄檔範圍,每個範圍都有自己的記錄檔檢視畫面集。

如果您建立自訂記錄範圍,請考慮更新預設記錄範圍。

設定記錄範圍的最佳做法

  • 只包含記錄檢視畫面。
  • 請勿設定同時列出專案和記錄檢視的範圍。

與記錄範圍相關的限制

說明 最大值
每項專案的記錄範圍數 100
每個記錄範圍的專案數量 5
每個記錄範圍的記錄檢視或專案數量 100

詳情請參閱「建立及管理記錄範圍」。

指標範圍

Cloud Monitoring 發出的所有查詢都會使用指標範圍。舉例來說,快訊政策和圖表工具 (例如指標探索工具) 會向指標範圍中列出的專案發出查詢。

如果您未設定指標範圍,Monitoring 服務會查詢專案的指標資料。

何時設定指標範圍

如果符合下列任一情況,請設定指標範圍:

  • 您想繪製儲存在不同專案中的資料圖表。
  • 您希望快訊政策監控儲存在不同專案中的資料。
  • 您可以使用 App Hub 註冊應用程式。如要瞭解這個情境,請參閱「管理專案的指標範圍」。

與指標範圍相關的限制

說明 最大值
每項專案的指標範圍數 1
每個指標範圍的專案數量 375

詳情請參閱「指標範圍總覽」。

追蹤記錄範圍

追蹤記錄探索工具」頁面會使用追蹤記錄範圍。 開啟這個頁面時,系統會自動查詢預設追蹤記錄範圍中列出的專案,以取得追蹤記錄資料。這個頁面也提供控制選項,可讓您切換範圍。

如未設定自訂追蹤記錄範圍,「Trace 探索工具」頁面會查詢專案的追蹤記錄資料。

何時建立自訂追蹤範圍

如果應用程式依賴不同 Google Cloud 專案中的資源,請建立自訂追蹤範圍。

與追蹤記錄範圍相關的限制

說明 最大值
每項專案的追蹤記錄範圍數量 100
每個追蹤記錄範圍的專案數量 20

詳情請參閱「建立及管理追蹤範圍」。

設定可觀測範圍

本節不適用於資料夾或機構。

對於記錄和追蹤資料,您在所查看專案、任何搜尋專案和記錄檢視畫面中的 Identity and Access Management (IAM) 角色,會影響查詢傳回的資料。如果您發出查詢來查看您無權查看的記錄資料,查詢不會傳回任何記錄資料。

如果是指標資料,設定專案的指標範圍後,專案就會獲得指標範圍內所列專案儲存的指標資料讀取權。如果使用者獲派的身分與存取權管理角色允許查看專案中的指標資料,他們就能查看專案可用的指標資料。

如要設定可觀測性範圍,請設定預設記錄範圍和預設追蹤記錄範圍。本節的其餘部分會說明如何完成這些動作。

事前準備

  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.

    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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  4. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  5. 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 (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  7. 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 the serviceusage.services.enable permission. Learn how to grant roles.

    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

      如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI

    詳情請參閱 Google Cloud 驗證說明文件中的「Authenticate for using REST」。

    查看及設定預設範圍

    控制台

    如要設定可觀測性範圍,請設定其元件,也就是預設記錄範圍、指標範圍和預設追蹤範圍:

    1. 前往 Google Cloud 控制台的 「Settings」(設定) 頁面

      前往「設定」

      如果您是使用搜尋列尋找這個頁面,請選取子標題為「Monitoring」的結果

    2. 在 Google Cloud 控制台的工具列中,選取您的 Google Cloud 專案。如要進行 App Hub 設定,請選取 App Hub 主專案或已啟用應用程式的資料夾管理專案。
    3. 設定預設記錄範圍:

      1. 選取「記錄範圍」分頁標籤。

        系統會列出現有的記錄範圍。標有「預設」圖示 的項目是預設記錄範圍。如要建立記錄範圍,請按一下「建立記錄範圍」,然後完成對話方塊。詳情請參閱「建立及管理記錄範圍」。

      2. 找出要設為預設值的項目,按一下「更多」圖示 ,然後選取「設為預設值」

    4. 設定指標範圍:

      1. 選取「指標範圍」分頁標籤。
      2. 在「Google Cloud Projects」窗格中,按一下「Add Projects」,然後完成對話方塊。詳情請參閱「設定指標範圍」。
    5. 設定預設追蹤記錄範圍:

      1. 選取「追蹤範圍」分頁標籤,然後執行下列操作:

        系統會列出現有的追蹤範圍。標有「預設」圖示 的項目是預設追蹤範圍。如要建立追蹤範圍,請按一下「建立記錄範圍」,然後完成對話方塊。詳情請參閱「建立及管理追蹤範圍」。

      2. 找出要設為預設值的項目,按一下「更多」圖示 ,然後選取「設為預設值」

    gcloud

    如要查看及設定觀測範圍,請按照下列步驟操作:

    1. 如要查看可觀測範圍的設定,請執行 gcloud observability scopes describe 指令。

      使用下列任何指令資料之前,請先替換以下項目:

      • OBSERVABILITY_SCOPE_IDScope 物件的名稱。這個值必須設為 _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_IDScope 物件的名稱。這個值必須設為 _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_IDScope 物件的名稱。這個欄位必須設為 _Default。系統會自動建立名為 Scope 的物件 _Default,用於儲存預設記錄範圍和預設追蹤範圍的相關資訊。

    如要將指令傳送至 API 端點,可以使用 APIs Explorer,從參考頁面發出指令。舉例來說,如要取得目前的預設範圍,可以執行下列操作:

    1. 按一下 [projects.locations.scopes.get]
    2. 在「Try this method」(試試這個方法) 小工具的「name」(名稱) 欄位中,輸入下列內容:

      projects/PROJECT_ID/locations/global/scopes/_Default
      

      複製上一個欄位之前,請先將 PROJECT_ID 換成專案名稱。

    3. 選取「執行」

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

    進一步瞭解範圍

    如要進一步瞭解範圍,請參閱下列文件: