Exporters

发送遥测数据到 OpenTelemetry Collector,以确保其正确导出。在生产环境中使用 Collector 是一种最佳实践。要可视化您的遥测数据,请将其导出到后端,例如 JaegerZipkinPrometheus特定厂商 的后端。

可用导出器

注册表包含一个Go 的导出器列表

在导出器中,OpenTelemetry Protocol (OTLP) 导出器是按照 OpenTelemetry 数据模型设计的,可以无损地发出 OTel 数据。此外,许多处理遥测数据的工具都支持 OTLP(例如 PrometheusJaeger 和大多数 厂商),为您提供高度的灵活性。要了解更多关于 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 示例