本文說明如何使用 SDK 和 gRPC 匯出工具,直接從應用程式將指標傳送至 OTLP 端點。建議搭配 SDK 使用 gRPC 匯出工具。OTLP 端點支援所有 OTLP 通訊協定,包括 http/proto、http/json 和 grpc。詳情請參閱通訊協定支援。
直接將應用程式指標傳送至 OTLP 端點時,OpenTelemetry Collector 不會為您處理驗證和擴充作業。使用 SDK 從應用程式傳送指標時,請務必採取以下做法:
- 設定 OTLP gRPC 匯出工具的憑證,以便使用 Google 應用程式預設憑證,詳情請參閱「取得驗證憑證」。
- 從應用程式偵測 Google Cloud Kubernetes 資源。操作方式取決於您執行的應用程式。
事前準備
如要執行範例,請務必啟用必要的 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
如要瞭解如何設定及執行這個範例,請參閱 Java 範例的 README 檔案。
NodeJS
如要瞭解如何設定及執行這個範例,請參閱 NodeJS 範例的 README 檔案。
Python
如要瞭解如何執行這個範例,請參閱 Python 範例的 README 檔案。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 總覽」。