本文档介绍了如何使用 SDK 和 gRPC 导出器(建议与 SDK 搭配使用的导出器)将指标直接从应用发送到 OTLP 端点。
OTLP 端点支持所有 OTLP 协议,包括 http/proto、http/json 和 grpc。如需了解详情,请参阅
协议支持。
当您将应用指标直接发送到 OTLP 端点时,OpenTelemetry 收集器不会为您处理身份验证和扩充。 使用 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
如需了解如何配置和运行此示例,请参阅
README文件,了解
Java 示例。
NodeJS
如需了解如何配置和运行此示例,请参阅
README文件,了解
NodeJS 示例。
Python
如需了解如何运行此示例,请参阅 README 文件,了解
Python 示例。
对作为 pod 运行的应用使用 downward API
如果您在 Kubernetes 中将应用作为 pod 运行,并且不发送 遥测数据通过 OpenTelemetry 收集器,请务必使用 downward 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 收集器和 Telemetry API 与 OpenTelemetry 零代码插桩搭配使用,请参阅 将 OpenTelemetry 零代码插桩用于 Java。
- 如需了解如何从
其他导出器迁移到
otlphttp导出器,请参阅迁移到 OTLP 导出器。 - 如需详细了解 Telemetry API,请参阅 Telemetry (OTLP) API 概览。