Exporters
发送遥测数据到 OpenTelemetry Collector,以确保其正确导出。在生产环境中使用 Collector 是一种最佳实践。要可视化您的遥测数据,请将其导出到后端,例如 Jaeger、Zipkin、Prometheus 或 特定厂商 的后端。
可用导出器
注册表包含一个Go 的导出器列表。
在导出器中,OpenTelemetry Protocol (OTLP) 导出器是按照 OpenTelemetry 数据模型设计的,可以无损地发出 OTel 数据。此外,许多处理遥测数据的工具都支持 OTLP(例如 Prometheus、Jaeger 和大多数 厂商),为您提供高度的灵活性。要了解更多关于 OTLP 的信息,请参阅 OTLP 规范。
本页面介绍了主要的 OpenTelemetry Go 导出器及其设置方法。
控制台
控制台导出器对于开发和调试任务很有用,并且是最简单的设置方式。
控制台跟踪
go.opentelemetry.io/otel/exporters/stdout/stdouttrace 包包含控制台跟踪导出器的实现。
控制台指标
go.opentelemetry.io/otel/exporters/stdout/stdoutmetric 包包含控制台指标导出器的实现。
控制台日志(实验性)
go.opentelemetry.io/otel/exporters/stdout/stdoutlog 包包含控制台日志导出器的实现。
OTLP
要将跟踪数据发送到 OTLP 端点(例如Collector或 Jaeger >= v1.35.0),您需要配置一个将数据发送到您端点的 OTLP 导出器。
HTTP 上的 OTLP 跟踪
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp 包含一个使用 HTTP 和二进制 Protobuf 有效载荷的 OTLP 跟踪导出器实现。
gRPC 上的 OTLP 跟踪
go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc 包含一个使用 gRPC 的 OTLP 跟踪导出器实现。
Jaeger
要尝试 OTLP 导出器,自 v1.35.0 起,您可以在 Docker 容器中运行Jaeger作为 OTLP 端点并进行跟踪可视化。
docker run -d --name jaeger \
-e COLLECTOR_OTLP_ENABLED=true \
-p 16686:16686 \
-p 4317:4317 \
-p 4318:4318 \
jaegertracing/all-in-one:latest
HTTP 上的 OTLP 指标
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetrichttp 包含一个使用 HTTP 和二进制 Protobuf 有效载荷的 OTLP 指标导出器实现。
gRPC 上的 OTLP 指标
go.opentelemetry.io/otel/exporters/otlp/otlpmetric/otlpmetricgrpc 包含一个使用 gRPC 的 OTLP 指标导出器实现。
HTTP 上的 OTLP 日志(实验性)
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploghttp 包含一个使用 HTTP 和二进制 Protobuf 有效载荷的 OTLP 日志导出器实现。
gRPC 上的 OTLP 日志(实验性)
go.opentelemetry.io/otel/exporters/otlp/otlplog/otlploggrpc 包含一个使用 gRPC 的 OTLP 日志导出器实现。
Prometheus(实验性)
Prometheus 导出器用于通过 Prometheus scrape HTTP 端点报告指标。
go.opentelemetry.io/otel/exporters/prometheus 包含 Prometheus 指标导出器的实现。
要了解更多关于如何使用 Prometheus 导出器,请尝试prometheus 示例。