本文說明如何使用 SDK 和 gRPC 匯出工具 (建議與 SDK 搭配使用的匯出工具),直接從應用程式將指標傳送至 OTLP 端點。OTLP 端點支援所有 OTLP 通訊協定,包括 http/proto、http/json 和 grpc。詳情請參閱「通訊協定支援」。
直接將應用程式指標傳送至 OTLP 端點時,OpenTelemetry Collector 不會為您處理驗證、資源偵測或批次處理。使用 SDK 從應用程式傳送指標時,請務必完成下列事項:
- 按照「取得驗證憑證」一文所述,設定 OTLP gRPC 匯出工具的憑證,以使用 Google 應用程式預設憑證。
- 從應用程式偵測 Google Cloud 和 Kubernetes 資源。具體做法取決於您執行的應用程式。
- 將匯出批次大小上限設為 200 個指標資料點,確保要求不會超過 Telemetry API 限制 (每項要求 200 個資料點)。
事前準備
如要執行範例,您必須啟用必要的 API 並取得驗證憑證。
啟用 API
在Google Cloud 專案中執行下列指令,啟用 Cloud Monitoring API 和 Telemetry API:
gcloud services enable monitoring.googleapis.com telemetry.googleapis.com
取得驗證憑證
執行下列指令,為 OTLP gRPC 匯出工具設定憑證,以使用 Google 應用程式預設憑證:
gcloud auth application-default login
語言專屬範例
本節提供多種語言的範例,說明如何建立及寫入計數器指標。選取分頁標籤,即可查看執行範例的相關資訊和程式碼。
Go
如要瞭解如何設定及執行這個範例,請參閱 Go 範例的 README 檔案。
Java
如要瞭解如何設定及執行這個範例,請參閱 README 檔案中的 Java 範例。
NodeJS
如要瞭解如何設定及執行這個範例,請參閱 NodeJS 範例的 README 檔案。
Python
如要瞭解如何執行這個範例,請參閱 Python 範例的 README 檔案。
針對以 Pod 形式執行的應用程式使用 Downward API
如果您在 Kubernetes 中以 Pod 形式執行應用程式,且未透過 OpenTelemetry Collector 傳送遙測資料,請務必使用向下 API 設定 Kubernetes 資源屬性:
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: NAMESPACE_NAME
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: CONTAINER_NAME
value: my-container-name
- name: OTEL_RESOURCE_ATTRIBUTES
value: k8s.pod.name=$(POD_NAME),k8s.namespace.name=$(NAMESPACE_NAME),k8s.container.name=$(CONTAINER_NAME)
後續步驟
- 如要瞭解如何搭配使用 OpenTelemetry Collector、Telemetry API 和 OpenTelemetry 零程式碼檢測功能,請參閱「使用 OpenTelemetry 零程式碼檢測功能檢測 Java」。
- 如要瞭解如何從其他匯出工具遷移至
otlphttp匯出工具,請參閱「遷移至 OTLP 匯出工具」。 - 如要進一步瞭解 Telemetry API,請參閱「Telemetry (OTLP) API 總覽」。