本文將介紹如何搭配 otlphttp 匯出器和 Telemetry (OTLP) API 使用 OpenTelemetry Collector,telemetry.googleapis.com 實作 OpenTelemetry OTLP 通訊協定。結合 otlphttp 匯出器和 Telemetry API,即可將 OTLP 指標擷取至 Cloud Monitoring。
OTLP 端點支援所有 OTLP 通訊協定,包括 http/proto、http/json 和 grpc。詳情請參閱通訊協定支援。
您也可以從使用 SDK 的應用程式,直接將指標傳送至 Telemetry API。詳情請參閱「使用 SDK 從應用程式傳送指標」。
如果您使用 Google Kubernetes Engine,可以按照「適用於 GKE 的代管式 OpenTelemetry」一文的說明操作,不必手動部署及設定使用 Telemetry API 的 OpenTelemetry Collector。
只有使用 OpenTelemetry Collector 0.140.0 以上版本時,才能使用 Prometheus 指標的 OTLP。
Telemetry API 中的指標和標籤名稱
本節說明使用 Telemetry API 擷取至 Cloud Monitoring 的指標命名慣例和規定:
指標名稱和標籤鍵不支援完整 UTF-8。
- 不符合規則運算式
[a-zA-Z][a-zA-Z0-9_:./]*的指標名稱會遭到拒絕。 - 如果 DataPoint 包含不符合規則運算式
[a-zA-Z_][a-zA-Z0-9_.]*的屬性 (即標籤鍵),系統會拒絕該 DataPoint。
如要避免因上述原因遭到拒絕,您可以設定處理器,使用
replace_pattern函式轉換指標名稱和屬性。- 不符合規則運算式
重要事項:如要查詢含有半形冒號 (
:) 和底線 (_) 以外特殊字元的指標名稱和標籤鍵,請根據 PromQL 的 UTF-8 規格,將這些字元括在半形大括號 ({}) 和半形引號 (") 中。舉例來說,下列查詢都有效:{"my.metric.name"}{"my.metric.name", "label.key.KEY"="value"}
Telemetry API 指標和 Cloud Monitoring
本節說明使用 Telemetry API 和 otlphttp 匯出工具擷取的指標如何與 Cloud Monitoring 互動:
INT64類型和DOUBLE類型指標之間可能會發生值類型衝突,尤其是先前已傳送target_info指標時。如果發生這類衝突,請刪除INT64指標描述元。您可以使用這個 Golang 指令碼,從指標範圍中刪除所有INT64類型target_info指標。查詢指數直方圖時保留
le標籤,可能會傳回非預期的結果。預期更多一般查詢histogram_quantile(.99, sum by (le) (metric))都能正常運作。在特定情況下,差異指標可能無法正確查詢,例如差異非常稀疏。
通訊協定支援
OTLP 端點支援所有 OTLP 通訊協定,包括 http/proto、http/json 和 grpc。從 OpenTelemetry Collector 匯出時,您可以使用任何通訊協定。不過,由於大多數 SDK 匯出工具都不支援動態權杖重新整理,因此建議您直接從 SDK 匯出時,只使用 gRPC OTLP 匯出工具,不要使用 HTTP 匯出工具。詳情請參閱「使用 SDK 從應用程式傳送指標」。
帳單
OTLP 指標的費用會計入「Prometheus 樣本擷取」SKU,與 Google Cloud Managed Service for Prometheus 指標的費用相同。詳情請參閱帳單頁面。
限制與配額
使用 Telemetry API 擷取指標時,須遵守 Telemetry API 指標限制。
此外,所有標準 Cloud Monitoring 和 Google Cloud Managed Service for Prometheus 指標配額和限制均適用。舉例來說,指標不得超過 200 個標籤。
Telemetry API 擷取的指標預設配額為每分鐘 60,000 項要求。每個要求最多可包含 200 個點,因此預設配額實際上為每秒 200,000 個樣本。您可以要求增加配額。
後續步驟
- 如需逐步操作說明,瞭解如何使用 Telemetry API 部署及使用 OpenTelemetry Collector,請參閱「部署及使用收集器」。
- 如要瞭解如何從使用 SDK 的應用程式將指標傳送至 Telemetry API,請參閱「使用 SDK 從應用程式傳送指標」。
- 如要瞭解如何搭配使用 OpenTelemetry Collector 和 Telemetry API,以及 OpenTelemetry 零程式碼檢測功能,請參閱「使用 Java 適用的 OpenTelemetry 零程式碼檢測功能」。
- 如要瞭解如何從其他匯出工具遷移至
otlphttp匯出工具,請參閱「遷移至 OTLP 匯出工具」。 - 如要進一步瞭解 Telemetry API,請參閱「Telemetry (OTLP) API 總覽」。