收集 OpenTelemetry Protocol (OTLP) 指標和追蹤記錄

本文說明如何使用 Ops Agent 和 OpenTelemetry Protocol (OTLP) 接收器,從應用程式收集使用者定義的指標和追蹤記錄。這些應用程式已使用 OpenTelemetry 進行檢測,並在 Compute Engine 上執行。

本文的編排方式如下:

使用 OTLP 接收器總覽

作業套件代理程式 OTLP 接收器可執行下列操作:

  • 使用 OpenTelemetry 的其中一個語言專用 SDK,為應用程式進行檢測。如需支援的語言相關資訊,請參閱「OpenTelemetry 檢測」。OpenTelemetry SDK 和作業套件代理程式的組合可為您執行下列作業:
    • 從應用程式收集 OTLP 指標,並將這些指標傳送至 Cloud Monitoring 進行分析。
    • 從應用程式收集 OTLP 時距 (追蹤資料),然後將這些時距傳送至 Cloud Trace 進行分析。
  • 從內建 OTLP 支援功能或支援這類外掛程式的第三方應用程式 (例如 Nginx) 收集追蹤記錄。作業套件代理程式中的 OTLP 接收器可以收集這些追蹤記錄。如需範例,請參閱 OpenTelemetry nginx 模組
  • 使用 OpenTelemetry 自訂檢測
  • 使用 OpenTelemetry 自動檢測

您可以使用接收器收集指標、追蹤記錄或兩者。 Ops Agent 收集指標後,您可以使用 Cloud Monitoring 的功能 (包括圖表、資訊主頁和快訊政策) 監控指標。如果應用程式也會傳送追蹤資料,您可以使用 Cloud Trace 分析這些資料。

優點

在作業套件代理程式的 OTLP 外掛程式推出前,如要收集使用者定義的指標和追蹤記錄,主要方法包括:

  • 使用實作 Monitoring API 或 Trace API 的用戶端程式庫。
  • 使用舊版 OpenCensus 程式庫。

與上述方法相比,使用 OpenTelemetry 和 OTLP 接收器有幾項優點,包括:

  • OpenTelemetry 是 OpenCensus 的替代方案。OpenCensus 專案即將封存。詳情請參閱「什麼是 OpenTelemetry?」。
  • 擷取作業是在代理程式層級控管,因此代理程式設定變更時,您不必重新部署應用程式。
  • 應用程式不必設定 Google Cloud 憑證,所有授權作業都會在代理程式層級處理。
  • 您的應用程式程式碼不含 Google Cloud特定監控或追蹤程式碼。您不必直接使用 Monitoring API 或 Trace API。
  • 您的應用程式會將資料推送至 Ops Agent,如果應用程式當機,Ops Agent 收集到的資料也不會遺失。

限制

作業套件代理程式接收器公開的 OTLP 監聽器支援 gRPC 傳輸。系統不支援主要用於 JavaScript 用戶端的 HTTP。如要進一步瞭解 OpenTelemetry 通訊協定,請參閱「通訊協定詳細資料」。

OTLP 接收器不會收集記錄。您可以使用 Ops Agent 和其他接收器收集記錄,也可以在 OTLP span 中加入記錄資訊,但 OTLP 接收器不支援直接收集記錄。如要瞭解如何使用 Ops Agent 收集記錄,請參閱「記錄設定」。

必要條件

如要使用 OTLP 接收器和作業套件代理程式收集 OTLP 指標和追蹤記錄,請安裝作業套件代理程式 2.37.0 以上版本。

本文假設您已使用其中一個 OpenTelemetry SDK,編寫以 OpenTelemetry 為基礎的應用程式。本文未涵蓋如何使用 OpenTelemetry SDK。如要瞭解 SDK 和支援的語言,請參閱「OpenTelemetry Instrumentation」(OpenTelemetry 檢測)。

設定作業套件代理程式

如要設定 Ops Agent 使用 OTLP 接收器,請執行下列操作:

  1. 修改 Ops Agent 的使用者設定檔,加入 OTLP 接收器
  2. 重新啟動 Ops Agent

以下各節將說明每個步驟。

修改作業套件代理程式使用者設定檔

將 OTLP 接收器的設定元素新增至 Ops Agent 的使用者設定檔:

  • Linux:/etc/google-cloud-ops-agent/config.yaml
  • Windows:C:\Program Files\Google\Cloud Operations\Ops Agent\config\config.yaml

如需設定代理程式的一般資訊,請參閱「設定模型」。

OTLP 接收器會為作業套件代理程式導入 combined 設定區段。使用接收器時,您必須設定指標和追蹤的服務,即使您並未使用這兩項服務也一樣。

以下各節說明 OTLP 接收器的設定步驟。

新增combined收件者部分

您可以在 combined 區段中放置 OTLP 指標和追蹤記錄的接收器。combined 部分不得使用任何處理器或服務。 您不得設定任何其他接收器,且名稱與 combined 區段中的接收器相同。以下範例使用 otlp 做為接收者的名稱。

OTLP 的最低 combined 設定如下所示:

combined:
  receivers:
    otlp:
      type: otlp

otlp 接收器提供下列設定選項:

  • type:必填。必須為 otlp
  • grpc_endpoint:選用。OTLP 接收器接聽的 gRPC 端點。預設值為 0.0.0.0:4317
  • metrics_mode:選用。預設值為 googlemanagedprometheus,表示接收器會使用 Managed Service for Prometheus 也使用的 Prometheus API,以 Prometheus 格式的指標傳送 OTLP 指標。

    如要改用 Monitoring API 將指標做為 Cloud Monitoring 自訂指標傳送,請將 metrics_mode 選項設為 googlecloudmonitoring 值。

    這項選擇會影響指標的擷取方式,以及指標的計費方式。如要進一步瞭解指標格式,請參閱「OTLP 指標的擷取格式」。

在服務中新增 OTLP 管道

OTLP 接收器可以收集指標和追蹤記錄,因此您必須為指標和追蹤記錄定義服務。如果您不打算收集指標或追蹤記錄,可以建立空白服務。如果您已透過其他管道提供服務,可以將 OTLP 管道新增至這些服務。

下圖顯示管道中包含 OTLP 接收器的 metricstraces 服務:

combined:
  receivers:
    otlp:
      type: otlp
metrics:
  service:
    pipelines:
      otlp:
        receivers: [otlp]
traces:
  service:
    pipelines:
      otlp:
        receivers: [otlp]

如果不想使用 metricstraces 服務收集 OTLP,請將 OTLP 接收器從服務的管道中排除。即使服務沒有管道,也必須存在。如果應用程式傳送特定類型的資料,但沒有包含接收器的對應管道,Ops Agent 就會捨棄資料。

重新啟動作業套件代理程式

如要套用設定變更,請重新啟動 Ops Agent。

Linux

  1. 如要重新啟動代理程式,請在執行個體上執行下列指令:
    sudo systemctl restart google-cloud-ops-agent
    
  2. 如要確定代理程式已重新啟動,請執行下列指令,並驗證「指標代理程式」和「Logging 代理程式」元件是否已啟動:
    sudo systemctl status "google-cloud-ops-agent*"
    

Windows

  1. 使用遠端桌面協定或類似工具連線至執行個體,並登入 Windows。
  2. 以滑鼠右鍵按一下 PowerShell 圖示,然後選取「以系統管理員身分執行」,以管理員權限開啟 PowerShell 終端機。
  3. 如要重新啟動代理程式,請執行下列 PowerShell 指令:
    Restart-Service google-cloud-ops-agent -Force
    
  4. 如要確定代理程式已重新啟動,請執行下列指令,並驗證「指標代理程式」和「Logging 代理程式」元件是否已啟動:
    Get-Service google-cloud-ops-agent*
    

收集 OTLP 指標

使用 OTLP 接收器從 OpenTelemetry 應用程式收集指標時,接收器的主要設定選項是您要用來擷取指標的 API。

如要做出這項選擇,請變更 otlp 接收器設定中的 metrics_mode 選項,或使用預設值。這項選擇會影響 OTLP 指標匯入 Cloud Monitoring 的方式,以及系統為計費目的評估資料的方式。

metrics_mode 選項不會影響您在 Monitoring 中建立圖表、資訊主頁和快訊政策的功能。

以下各節說明指標模式使用的格式差異,以及如何查詢擷取的資料,以供 Monitoring 使用。

OTLP 指標的擷取格式

OTLP 接收器提供 metrics_mode 選項,可指定用於擷取指標資料的 API。根據預設,接收器會使用 Prometheus API;metrics_mode 選項的預設值為 googlemanagedprometheus。這些指標是透過與 Managed Service for Prometheus 相同的 API 擷取。

您可以設定接收器,改為將指標資料傳送至 Cloud Monitoring API。如要將資料傳送至 Monitoring API,請將 metrics_mode 選項的值設為 googlecloudmonitoring,如下列範例所示:

combined:
  receivers:
    otlp:
      type: otlp
      metrics_mode: googlecloudmonitoring

您使用的擷取格式會決定 OTLP 指標對應至 Cloud Monitoring 的方式。您可以在 Monitoring 中,為任一指標格式的指標建立圖表、資訊主頁和快訊政策,但在查詢中參照指標的方式不同。

資料擷取格式也會決定資料擷取所用的計費模式。

以下各節說明計費方式、Prometheus API 擷取的指標與 Monitoring API 擷取的相同指標之間的結構差異,以及如何在查詢中參照指標。

定價與配額

您使用的擷取格式會決定 OTLP 指標的收費方式:

使用 OTLP 接收器擷取的指標會視為「自訂」指標類型,並受限於自訂指標的配額和限制

指標結構

Cloud Monitoring 會使用稱為「指標描述元」的結構定義,描述指標資料的格式。指標描述元包含指標名稱、指標值的資料類型、每個值與先前值的關係,以及與值相關聯的任何標籤。如果您設定 OTLP 接收器,透過 Prometheus API 擷取指標,則建立的指標描述元會與使用 Monitoring API 建立的指標描述元不同。

Prometheus API:使用 Prometheus API 擷取應用程式指標時,系統會使用標準的 OpenTelemetry-to-Prometheus 轉換來轉換每個指標,並對應至 Cloud Monitoring 監控資源類型。

  • 轉換作業包括下列變更:
    • OTLP 指標名稱的前置字串為 prometheus.googleapis.com/
    • OTLP 指標名稱中的任何非英數字元 (例如半形句號「.」) 都會替換為底線「_」。
    • OTLP 指標名稱會加上後置字串,指出指標類型,例如 /gauge/counter
  • 系統會將下列標籤 (填入 OTLP 資源的值) 新增至指標:
    • instance_namehost.name 資源屬性的值。
    • machine_typehost.type 資源屬性的值。
  • 指標測量值記錄的受控資源是通用 prometheus_target 類型。產生的 Prometheus 時間序列包含 prometheus_target 資源的下列標籤,並填入 OTLP 資源的值:

    • locationcloud.availability_zone 資源屬性的值。
    • namespacehost.id 資源屬性的值。

    prometheus_target 資源類型也包含下列標籤:

    • project_id:作業套件代理程式執行的 Google Cloud 專案識別碼,例如 my-project
    • cluster:作業套件代理程式收集指標時,這個值一律為 __gce__

如果傳入的 OTLP 資料缺少用於標籤值的資源屬性,系統會從執行 Ops Agent 的 VM 相關資訊中取得值。這表示沒有這些資源屬性的 OTLP 資料,會與 Ops Agent Prometheus 接收器收集的資料顯示相同的標籤。

Monitoring API:使用 Monitoring API 擷取應用程式指標時,系統會依下列方式處理各項指標:

  • 除非 OTLP 指標名稱已包含 workload.googleapis.com/ 字串或其他有效指標網域 (例如 custom.googleapis.com),否則 OTLP 指標名稱會加上 workload.googleapis.com/ 字串前置字串。建議使用「工作負載」網域。
  • 以指標測量結果記錄的受監控資源是 Compute Engine 虛擬機器類型 gce_instance

以下範例顯示一組 OpenTelemetry 指標的指標描述元。這些指標是由使用 Go OpenTelemetry 指標程式庫的應用程式所建立。「Prometheus API」分頁會顯示 OTLP 接收器使用預設 Prometheus 指標模式時建立的指標描述元。「Monitoring API」分頁會顯示 OTLP 接收器使用 googlecloudmonitoring 指標模式時建立的指標描述元。

建立指標的應用程式不會有任何變更,只有 OTLP 接收器使用的指標模式會變更。

應用程式會建立 OTLP 測量計指標 otlp.test.gauge,記錄 64 位元浮點值。下列分頁顯示各個擷取 API 建立的指標描述元:

Prometheus API

{
  "name": "projects/PROJECT_ID/metricDescriptors/prometheus.googleapis.com/otlp_test_gauge/gauge",
  "labels": [
    {
      "key": "instance_name"
    },
    {
      "key": "machine_type"
    }
  ],
  "metricKind": "GAUGE",
  "valueType": "DOUBLE",
  "type": "prometheus.googleapis.com/otlp_test_gauge/gauge",
  "monitoredResourceTypes": [
    "prometheus_target"
  ]
}

Monitoring API

{
  "name": "projects/PROJECT_ID/metricDescriptors/workload.googleapis.com/otlp.test.gauge",
  "labels": [
    {
      "key": "instrumentation_source"
    }
  ],
  "metricKind": "GAUGE",
  "valueType": "DOUBLE",
  "type": "workload.googleapis.com/otlp.test.gauge",
  "monitoredResourceTypes": [
    "gce_instance",
    ...many other types deleted...
  ]
}

應用程式會建立 OTLP 計數器指標 otlp.test.cumulative,記錄遞增的 64 位元浮點值。下列分頁顯示各個擷取 API 建立的指標描述元:

Prometheus API

{
  "name": "projects/PROJECT_ID/metricDescriptors/prometheus.googleapis.com/otlp_test_cumulative/counter",
  "labels": [
    {
      "key": "instance_name"
    },
    {
      "key": "machine_type"
    }
  ],
  "metricKind": "CUMULATIVE",
  "valueType": "DOUBLE",
  "type": "prometheus.googleapis.com/otlp_test_cumulative/counter",
  "monitoredResourceTypes": [
    "prometheus_target"
  ]
}

Monitoring API

{
  "name": "projects/PROJECT_ID/metricDescriptors/workload.googleapis.com/otlp.test.cumulative",
  "labels": [
    {
      "key": "instrumentation_source"
    }
  ],
  "metricKind": "CUMULATIVE",
  "valueType": "DOUBLE",
  "type": "workload.googleapis.com/otlp.test.cumulative",
  "monitoredResourceTypes": [
    "gce_instance",
    ...many other types deleted...
  ]
}

下表摘要說明用來擷取 OTLP 指標的 API 所規定的部分格式差異:

  Prometheus API Monitoring API
指標網域 prometheus.googleapis.com workload.googleapis.com
OTLP 指標名稱 在攝入期間修改 使用提供的資訊
受監控資源 prometheus_target gce_instance

擷取格式和查詢

在建構圖表、資訊主頁和警告政策時,OTLP 接收器中使用的指標模式會影響您在 Cloud Monitoring 中查詢產生指標的方式。

在 Cloud Monitoring 中設定圖表、資訊主頁或快訊政策時,設定會包含圖表、資訊主頁或快訊政策所依據的資料查詢。

Cloud Monitoring 支援下列工具,可查詢指標資料:

  • 內建於 Metrics Explorer、資訊主頁建構工具介面和快訊政策設定介面等工具的查詢建構工具介面。
  • Prometheus 查詢語言 (PromQL):開放原始碼 Prometheus 使用的文字查詢語言。

如要瞭解如何使用這些工具查詢 OTLP 指標,請參閱下列說明:

使用 Prometheus API 查詢擷取的 OTLP 指標

本節說明如何使用 Prometheus API 查詢擷取的 OTLP 指標,這是 OTLP 接收器的預設指標模式。

查詢依據的是「指標結構」一節所述的 OTLP 指標:

  • otlp.test.gauge:記錄 64 位元浮點值的 OTLP 計量指標。
  • otlp.test.cumlative:OTLP 計數器指標,用於記錄遞增的 64 位元浮點值。

這些指標會擷取至 Cloud Monitoring,並加上下列指標類型 (做為名稱):

  • prometheus.googleapis.com/otlp_test_gauge/gauge
  • prometheus.googleapis.com/otlp_test_cumulative/counter

使用 Prometheus API 擷取的指標會寫入受監控的資源類型 prometheus_target

這些分頁會顯示透過 Google Cloud 控制台查詢指標時,基本查詢的樣貌。這些範例使用 Metrics Explorer,但適用於資訊主頁和快訊政策的原則相同。

查詢產生器介面

如要使用查詢建構工具介面查詢指標資料,請在啟用搜尋功能的欄位中輸入指標類型和受監控的資源類型。資源類型遠少於指標類型,因此通常最有效率的做法是搜尋資源類型,然後使用相關聯指標的選單尋找指標類型。

如果在搜尋欄位中輸入「prometheus」,結果會包含prometheus_target受監控的資源 (顯示名稱為「Prometheus Target」),以及寫入資源的一組指標。指標會依名稱分類,兩個範例指標會顯示為「Otlp」類別。您可以選取「Prometheus/otlp_test_cumulative/counter」或「Prometheus/otlp_test_gauge/gauge」。

如要進一步瞭解如何使用查詢建立工具,請參閱「使用選單建立查詢」。

以下螢幕截圖顯示查詢 prometheus.googleapis.com/otlp_test_gauge/gauge 指標的結果:

使用 Prometheus API 擷取的 OTLP 計量指標,以建構工具為基礎的 Metrics Explorer 圖表。

以下螢幕截圖顯示查詢 prometheus.googleapis.com/otlp_test_cumulative/counter 指標的結果:

使用 Prometheus API 擷取的 OTLP 計數器指標,其 Metrics Explorer 圖表是以建構工具為基礎。

PromQL

使用 PromQL 查詢透過 Prometheus API 擷取的指標資料時,您只需要指定原始 OTLP 指標名稱的修改形式。您不需要指定前置 prometheus.googleapis.com/ 字串或後置類型。

如果指標只能針對一種受監控資源類型寫入,就不必指定資源。如「指標結構」一文所述,使用 Prometheus API 擷取的 OTLP 指標只會針對 prometheus_target 受監控資源類型寫入。範例指標的簡單 PromQL 查詢如下所示:

  • otlp_test_gauge
  • otlp_test_cumulative

如要進一步瞭解如何在 Cloud Monitoring 中使用 PromQL 查詢透過 Prometheus API 擷取的指標,請參閱「Cloud Monitoring 中的 Google Cloud Managed Service for Prometheus 資料」。如要瞭解 PromQL 語言,請參閱「查詢 Prometheus」。

以下螢幕截圖顯示查詢 prometheus.googleapis.com/otlp_test_gauge/gauge 指標的結果:

PromQL Metrics Explorer 圖表,顯示透過 Prometheus API 擷取的 OTLP 計量指標。

以下螢幕截圖顯示查詢 prometheus.googleapis.com/otlp_test_cumulative/counter 指標的結果:

PromQL Metrics Explorer 圖表,顯示使用 Prometheus API 擷取的 OTLP 計數器指標。

使用 Monitoring API 查詢擷取的 OTLP 指標

本節說明如何使用 Monitoring API 查詢擷取的 OTLP 指標。如要選取 Cloud Monitoring API,請將 OTLP 接收器的 metrics_mode 欄位設為 googlecloudmonitoring 值。

查詢依據的是「指標結構」一節所述的 OTLP 指標:

  • otlp.test.gauge:記錄 64 位元浮點值的 OTLP 計量指標。
  • otlp.test.cumlative:OTLP 計數器指標,用於記錄遞增的 64 位元浮點值。

這些指標會擷取至 Cloud Monitoring,並加上下列指標類型 (做為名稱):

  • workload.googleapis.com/otlp.test.gauge
  • workload.googleapis.com/otlp.test.cumulative

使用 Monitoring API 擷取的指標會寫入受控資源類型 gce_instance

這些分頁會顯示透過 Google Cloud 控制台查詢指標時,基本查詢的樣貌。這些範例使用 Metrics Explorer,但適用於資訊主頁和快訊政策的原則相同。

查詢產生器介面

如要使用查詢建構工具介面查詢指標資料,請在啟用搜尋功能的欄位中輸入指標類型和受監控的資源類型。資源類型遠少於指標類型,因此通常最有效率的做法是搜尋資源類型,然後使用相關聯指標的選單尋找指標類型。

如果在搜尋欄位中輸入「gce_instance」,結果會依顯示名稱「VM 執行個體」顯示資源類型,以及寫入資源的一組指標。指標會依名稱分類;兩個範例指標會顯示為「Otlp」類別。您可以選取「Workload/otlp_test_cumulative」或「Workload/otlp_test_gauge」

如要進一步瞭解如何使用查詢建立工具,請參閱「使用選單建立查詢」。

以下螢幕截圖顯示查詢 workload.googleapis.com/otlp.test.gauge 指標的結果:

以建構工具為基礎的 Metrics Explorer 圖表,適用於使用 Monitoring API 擷取的 OTLP 計量表指標。

以下螢幕截圖顯示查詢 workload.googleapis.com/otlp.test.cumulative 指標的結果:

以建構工具為基礎的 Metrics Explorer 圖表,適用於使用 Monitoring API 擷取的 OTLP 計數器指標。

PromQL

使用 PromQL 查詢透過 Monitoring API 擷取的指標資料時,必須將指標名稱對應至 PromQL 慣例。基本對應規則包括:

  • 將第一個 / 替換為 :
  • 將所有其他特殊字元 (包括 . 和其他 / 字元) 替換為 _

如要進一步瞭解對應規則,請參閱「將 Cloud Monitoring 指標對應至 PromQL」。

範例指標的 Monitoring 指標類型會對應至 PromQL,如下所示:

  • workload_googleapis_com:otlp_test_gauge
  • workload_googleapis_com:otlp_test_cumulative

如果指標只能針對一種受監控資源類型寫入,就不必指定資源。範例指標是根據 gce_instance 受監控資源類型編寫,但如「指標結構」一文所述,gce_instance 只是其中一種可能的指標類型。因此,這些指標的 PromQL 查詢必須包含 gce_instance 資源類型的篩選器。如要加入篩選器,請在對應指標名稱的結尾新增下列字串:{monitored_resource="gce_instance"}

如要進一步瞭解如何在 Cloud Monitoring 中使用 PromQL,請參閱「在 Cloud Monitoring 中使用 PromQL」。如要瞭解 PromQL 語言,請參閱「查詢 Prometheus」。

範例指標的簡單 PromQL 查詢如下所示:

  • workload_googleapis_com:otlp_test_gauge{monitored_resource="gce_instance"}
  • workload_googleapis_com:otlp_test_cumulative{monitored_resource="gce_instance"}

以下螢幕截圖顯示查詢 workload.googleapis.com/otlp.test.gauge 指標的結果:

使用 Monitoring API 擷取的 OTLP 計量表指標的 PromQL Metrics Explorer 圖表。

以下螢幕截圖顯示查詢 workload.googleapis.com/otlp.test.cumulative 指標的結果:

使用 Monitoring API 擷取的 OTLP 計數器指標的 PromQL Metrics Explorer 圖表。

在 Cloud Monitoring 中查看指標用量和診斷資訊

Cloud Monitoring 的「指標管理」頁面提供相關資訊,可協助您控管可計費指標的支出金額,同時不影響可觀測性。「指標管理」頁面會回報下列資訊:

  • 以位元組和樣本為準的計費方式,在指標網域和個別指標的擷取量。
  • 指標的標籤和基數相關資料。
  • 每個指標的讀取次數。
  • 在警告政策和自訂資訊主頁中使用指標。
  • 指標寫入錯誤率。

您也可以使用「指標管理」頁面排除不必要的指標,藉此省下擷取這些指標的費用。

如要查看「指標管理」頁面,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的 「指標管理」頁面:

    前往「指標管理」

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

  2. 在工具列中選取時間範圍。根據預設,「指標管理」頁面會顯示前一天收集到的指標資訊。

如要進一步瞭解「指標管理」頁面,請參閱「查看及管理指標用量」。

收集 OTLP 追蹤記錄

如果您已設定 Ops Agent 收集追蹤記錄,但執行應用程式時,Cloud Trace 中沒有任何追蹤記錄,您可能需要將其他角色授予代理程式使用的 Compute Engine 服務帳戶。根據預設,服務帳戶會取得寫入指標和記錄所需的角色,但不會取得寫入追蹤記錄的角色。

下列各節說明如何授予服務帳戶必要的 Cloud Trace 授權。

判斷授予服務帳戶的角色

如要查看授予服務帳戶的角色,請執行下列 gcloud projects get-iam-policy 指令:

gcloud projects get-iam-policy PROJECT_ID --format="table(bindings.role)" --flatten="bindings[].members" --filter="bindings.members:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com"

您可能會看到如下的輸出內容:

ROLE
roles/logging.logWriter
roles/monitoring.metricWriter

如果輸出內容包含 roles/cloudtrace.agentroles/cloudtrace.admin,表示服務帳戶有足夠的權限可寫入追蹤記錄。如要將其中一個角色授予服務帳戶,請參閱下一節。

將 Cloud Trace 角色授予服務帳戶

如果是服務帳戶,通常適合使用 Cloud Trace 代理者角色 roles/cloudtrace.agent。如要將這個角色授予服務帳戶,請執行下列 gcloud projects add-iam-policy-binding 指令:

gcloud projects add-iam-policy-binding PROJECT_ID --member "serviceAccount:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com" --role="roles/cloudtrace.agent"

接著執行 gcloud projects get-iam-policy 指令,確認變更是否已完成:

gcloud projects get-iam-policy PROJECT_ID --format="table(bindings.role)" --flatten="bindings[].members" --filter="bindings.members:SERVICE_ACCT_NAME@PROJECT_ID.iam.gserviceaccount.com"

輸出內容現在包含 roles/cloudtrace.agent

ROLE
roles/cloudtrace.agent
roles/logging.logWriter
roles/monitoring.metricWriter

如要進一步瞭解如何管理 IAM 角色,請參閱「管理專案、資料夾和機構的存取權」一文。

授權 Ops Agent 使用的服務帳戶將資料寫入 Cloud Trace 後,當您執行以 OpenTelemetry 為基礎的應用程式時,追蹤記錄就會顯示在 Cloud Trace 中。

停用 OTLP 接收器

如果您使用作業套件代理程式收集 OTLP 指標和追蹤記錄,且想停用指標或追蹤記錄的收集作業 (但不想同時停用兩者),請按照下列步驟操作:

  1. 如要停用指標或追蹤記錄的收集作業,請對使用者設定檔 config.yaml 進行下列其中一項變更:

    • metrics 服務中移除 otlp 管道。
    • traces 服務中移除 otlp 管道。
  2. 重新啟動 Ops Agent

如要停用作業套件代理程式收集 OTLP 指標和追蹤記錄,請按照下列步驟操作:

  1. 從使用者設定檔中移除 OTLP 設定:

    • 刪除整個 combined 區段,包括 otlp 接收器。
    • metrics 服務中移除 otlp 管道。
    • 刪除整個 traces 服務。
  2. 重新啟動 Ops Agent

後續步驟

擷取應用程式指標和追蹤記錄後,您可以使用 Google Cloud 控制台監控及分析資料。