在 Google Cloud 上設定具備微服務可觀察性的 gRPC 應用程式

微服務觀測工具可讓您檢測應用程式,以便在 Cloud Monitoring、Cloud Logging 和 Cloud Trace 中,收集並呈現部署在 Google Cloud 和其他位置的 gRPC 工作負載遙測資料。微服務可觀測性適用於任何已啟用 Microservices API,並獲准存取 Monitoring、Logging 和 Trace 的部署作業。

在本教學課程中,您將在 Google Cloud 使用 Compute Engine 建構簡單的 gRPC 應用程式,並透過微服務可觀測性功能檢測應用程式,然後在 Monitoring 和 Logging 中即時查看結果,瞭解如何使用微服務可觀測性功能。

目標

大致來說,您需要執行以下操作:

  • 服務開發人員可以:

    • 使用您選擇的語言 (C++、Go 或 Java) 建立 gRPC 應用程式。
    • 選擇加入應用程式,並控管微服務可觀測性外掛程式。
    • 在 Compute Engine VM 上部署應用程式。
  • 身為服務營運商,您會以各種方式使用收集到的資料:

    • 在 Trace 中查看追蹤記錄。
    • 在名為「微服務 (gRPC) 監控」的監控資訊主頁上查看指標。
    • 在 Metrics Explorer 中查看指標。
    • 在記錄檔探索工具中檢查記錄項目。

費用

在本文件中,您會使用下列 Google Cloud的計費元件:

您可以使用 Pricing Calculator,根據預測用量估算費用。

初次使用 Google Cloud 的使用者可能符合免費試用期資格。

完成本文所述工作後,您可以刪除建立的資源,避免繼續計費,詳情請參閱「清除所用資源」。

事前準備

控制台

  1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
  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 role (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. 啟用 Compute Engine 和 Microservices API。

    啟用 API 時所需的角色

    如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    啟用 API

  5. 確認您具備「建立服務帳戶」身分與存取權管理角色 (roles/iam.serviceAccountCreator) 和「專案 IAM 管理員」角色 (roles/resourcemanager.projectIamAdmin)。瞭解如何授予角色
  6. 前往 Google Cloud 控制台的「Create service account」(建立服務帳戶) 頁面。

    前往「建立服務帳戶」
  7. 選取專案。
  8. 在「Service account name」(服務帳戶名稱) 欄位中輸入名稱。 Google Cloud 控制台會將這個名稱填入「Service account ID」(服務帳戶 ID) 欄位。

    在「Service account description」(服務帳戶說明) 欄位中輸入說明。例如:Service account for quickstart

  9. 按一下「建立並繼續」
  10. 將下列角色授予服務帳戶: 「Logging」>「Logs Viewer」>「Logs Writer」、「Monitoring」>「Monitoring Editor」>「Metrics Writer」、「Trace」>「Trace Admin」>「Trace Agent」

    如要授予角色,請找出「Select a role」(選取角色) 清單,然後選取角色。

    如要授予其他角色,請按一下「Add another role」(新增其他角色),然後新增其他角色。

  11. 按一下 [繼續]
  12. 在「Service account users role」(服務帳戶使用者角色) 欄位中,輸入要將服務帳戶附加至其他資源 (例如 Compute Engine 執行個體) 的主體 ID。

    這通常是指 Google 帳戶的電子郵件地址。

  13. 按一下「Done」(完成),即完成建立服務帳戶。

  • 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

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

  • 啟用 Compute Engine 和 Microservices API。

    啟用 API 時所需的角色

    如要啟用 API,您需要服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

    啟用 API

  • 確認您具備「建立服務帳戶」身分與存取權管理角色 (roles/iam.serviceAccountCreator) 和「專案 IAM 管理員」角色 (roles/resourcemanager.projectIamAdmin)。瞭解如何授予角色
  • 前往 Google Cloud 控制台的「Create service account」(建立服務帳戶) 頁面。

    前往「建立服務帳戶」
  • 選取專案。
  • 在「Service account name」(服務帳戶名稱) 欄位中輸入名稱。 Google Cloud 控制台會將這個名稱填入「Service account ID」(服務帳戶 ID) 欄位。

    在「Service account description」(服務帳戶說明) 欄位中輸入說明。例如:Service account for quickstart

  • 按一下「建立並繼續」
  • 將下列角色授予服務帳戶: 「Logging」>「Logs Viewer」>「Logs Writer」、「Monitoring」>「Monitoring Editor」>「Metrics Writer」、「Trace」>「Trace Admin」>「Trace Agent」

    如要授予角色,請找出「Select a role」(選取角色) 清單,然後選取角色。

    如要授予其他角色,請按一下「Add another role」(新增其他角色),然後新增其他角色。

  • 按一下 [繼續]
  • 在「Service account users role」(服務帳戶使用者角色) 欄位中,輸入要將服務帳戶附加至其他資源 (例如 Compute Engine 執行個體) 的主體 ID。

    這通常是指 Google 帳戶的電子郵件地址。

  • 按一下「Done」(完成),即完成建立服務帳戶。

  • 請參閱「微服務可觀測性總覽」。
  • 請參閱這篇文章,瞭解兩種支援的環境變數,決定要使用哪一種,並判斷環境變數所需的值。
  • cli

    1. 登入 Google Cloud 帳戶。如果您是 Google Cloud新手,歡迎 建立帳戶,親自評估產品在實際工作環境中的成效。新客戶還能獲得價值 $300 美元的免費抵免額,可用於執行、測試及部署工作負載。
    2. 安裝 Google Cloud CLI。

    3. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    4. 執行下列指令,初始化 gcloud CLI:

      gcloud init
    5. 建立或選取 Google Cloud 專案

      選取或建立專案所需的角色

      • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
      • 建立專案:如要建立專案,您需要具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
      • 建立 Google Cloud 專案:

        gcloud projects create PROJECT_ID

        PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

      • 選取您建立的 Google Cloud 專案:

        gcloud config set project PROJECT_ID

        PROJECT_ID 替換為 Google Cloud 專案名稱。

    6. 確認專案已啟用計費功能 Google Cloud

    7. 啟用 Compute Engine 和 Microservices API:

      啟用 API 時所需的角色

      如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

      gcloud services enable compute.googleapis.com microservices.googleapis.com
    8. 設定驗證方法:

      1. 確認您具備「建立服務帳戶」身分與存取權管理角色 (roles/iam.serviceAccountCreator) 和「專案 IAM 管理員」角色 (roles/resourcemanager.projectIamAdmin)。瞭解如何授予角色
      2. 建立服務帳戶:

        gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

        SERVICE_ACCOUNT_NAME 換成服務帳戶的名稱。

      3. 將角色授予服務帳戶。針對下列每個 IAM 角色,執行一次下列指令:roles/logging.logWriter, roles/monitoring.metricWriter, roles/cloudtrace.agent

        gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

        請替換下列項目:

        • SERVICE_ACCOUNT_NAME:服務帳戶名稱
        • PROJECT_ID:您建立服務帳戶的專案 ID
        • ROLE:要授予的角色
      4. 將必要角色指派給要將服務帳戶附加至其他資源的主體。

        gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

        更改下列內容:

        • SERVICE_ACCOUNT_NAME:服務帳戶名稱
        • PROJECT_ID:您建立服務帳戶的專案 ID
        • USER_EMAIL:Google 帳戶的電子郵件地址
    9. 安裝 Google Cloud CLI。

    10. 若您採用的是外部識別資訊提供者 (IdP),請先使用聯合身分登入 gcloud CLI

    11. 執行下列指令,初始化 gcloud CLI:

      gcloud init
    12. 建立或選取 Google Cloud 專案

      選取或建立專案所需的角色

      • 選取專案:選取專案時,不需要具備特定 IAM 角色,只要您已獲授角色,即可選取任何專案。
      • 建立專案:如要建立專案,您需要具備專案建立者角色 (roles/resourcemanager.projectCreator),其中包含 resourcemanager.projects.create 權限。瞭解如何授予角色
      • 建立 Google Cloud 專案:

        gcloud projects create PROJECT_ID

        PROJECT_ID 替換為您要建立的 Google Cloud 專案名稱。

      • 選取您建立的 Google Cloud 專案:

        gcloud config set project PROJECT_ID

        PROJECT_ID 替換為 Google Cloud 專案名稱。

    13. 確認專案已啟用計費功能 Google Cloud

    14. 啟用 Compute Engine 和 Microservices API:

      啟用 API 時所需的角色

      如要啟用 API,您需要具備服務使用情形管理員 IAM 角色 (roles/serviceusage.serviceUsageAdmin),其中包含 serviceusage.services.enable 權限。瞭解如何授予角色

      gcloud services enable compute.googleapis.com microservices.googleapis.com
    15. 設定驗證方法:

      1. 確認您具備「建立服務帳戶」身分與存取權管理角色 (roles/iam.serviceAccountCreator) 和「專案 IAM 管理員」角色 (roles/resourcemanager.projectIamAdmin)。瞭解如何授予角色
      2. 建立服務帳戶:

        gcloud iam service-accounts create SERVICE_ACCOUNT_NAME

        SERVICE_ACCOUNT_NAME 換成服務帳戶的名稱。

      3. 將角色授予服務帳戶。針對下列每個 IAM 角色,執行一次下列指令:roles/logging.logWriter, roles/monitoring.metricWriter, roles/cloudtrace.agent

        gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role=ROLE

        請替換下列項目:

        • SERVICE_ACCOUNT_NAME:服務帳戶名稱
        • PROJECT_ID:您建立服務帳戶的專案 ID
        • ROLE:要授予的角色
      4. 將必要角色指派給要將服務帳戶附加至其他資源的主體。

        gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com --member="user:USER_EMAIL" --role=roles/iam.serviceAccountUser

        更改下列內容:

        • SERVICE_ACCOUNT_NAME:服務帳戶名稱
        • PROJECT_ID:您建立服務帳戶的專案 ID
        • USER_EMAIL:Google 帳戶的電子郵件地址
    16. 請參閱「微服務可觀測性總覽」。
    17. 請參閱這篇文章,瞭解兩種支援的環境變數,決定要使用哪一種,並判斷環境變數所需的值。