快速入门

几分钟内完成设置并收集遥测数据!

OpenTelemetry Collector 是一个可执行文件,它能够接收链路指标日志, 处理这些遥测数据,并通过其组件将其导出到多种可观测性后端。要了解 Collector 的概念性概览, 请参见 Collector

你将学习如何在不到五分钟的时间内完成以下操作:

  • 设置并运行 OpenTelemetry Collector。
  • 发送遥测数据并查看 Collector 对其进行处理。

前提条件

请确保你的开发环境具备以下条件。本文档假设你使用的是 bash,请根据你所偏好的 Shell 适配相关配置与命令。

  • Docker 或任何兼容的容器运行时。

  • Go 1.20 或更高版本

  • GOBIN 环境变量已设置;若未设置,请按如下方式进行初始化1

    export GOBIN=${GOBIN:-$(go env GOPATH)/bin}
    

设置环境

  1. 拉取 OpenTelemetry Collector Contrib 的 Docker 镜像:

    docker pull otel/opentelemetry-collector-contrib:0.128.0
    
  2. 安装 telemetrygen 工具:

    go install github.com/open-telemetry/opentelemetry-collector-contrib/cmd/telemetrygen@latest
    

    此工具可以模拟生成链路指标日志的客户端行为。

生成并收集遥测数据

  1. 启动 Collector,使其监听端口 4317(用于 OTLP gRPC)、4318(用于 OTLP HTTP)和 55679(用于 ZPages):

    docker run
      -p 127.0.0.1:4317:4317
      -p 127.0.0.1:4318:4318
      -p 127.0.0.1:55679:55679
      otel/opentelemetry-collector-contrib:0.128.0
      2>&1 | tee collector-output.txt # 可选择将输出保存,以便后续搜索
    
  2. 在另一个终端窗口中生成几个示例链路:

    $GOBIN/telemetrygen traces --otlp-insecure --traces 3
    

    在工具生成的输出中,你应能看到确认生成链路的消息:

    2024-01-16T14:33:15.692-0500  INFO  traces/worker.go:99  traces generated  {"worker": 0, "traces": 3}
    2024-01-16T14:33:15.692-0500  INFO  traces/traces.go:58  stop the batch span processor
    

    为了更方便查看相关输出,你可以进行筛选:

    $GOBIN/telemetrygen traces --otlp-insecure
      --traces 3 2>&1 | grep -E 'start|traces|stop'
    
  3. 在运行 Collector 容器的终端窗口中,你应该能看到类似如下的链路抓取活动:

    $ grep -E '^Span|(ID|Name|Kind|time|Status w+)s+:' ./collector-output.txt
    Span #0
        Trace ID       : f30faffbde5fcf71432f89da1bf7bc14
        Parent ID      : 6f1ff7f9cf4ec1c7
        ID             : 8d1e820c1ac57337
        Name           : okey-dokey
        Kind           : Server
        Start time     : 2024-01-16 14:13:54.585877 +0000 UTC
        End time       : 2024-01-16 14:13:54.586 +0000 UTC
        Status code    : Unset
        Status message :
    Span #1
        Trace ID       : f30faffbde5fcf71432f89da1bf7bc14
        Parent ID      :
        ID             : 6f1ff7f9cf4ec1c7
        Name           : lets-go
        Kind           : Client
        Start time     : 2024-01-16 14:13:54.585877 +0000 UTC
        End time       : 2024-01-16 14:13:54.586 +0000 UTC
        Status code    : Unset
        Status message :
    ...
    
  4. 打开 http://localhost:55679/debug/tracez, 在表格中选择一个示例,以查看你刚刚生成的链路。

  5. 完成后,关闭 Collector 容器,例如按下 Control-C

后续步骤

在本教程中,你已经启动了 OpenTelemetry Collector 并向其发送了遥测数据。下一步建议你执行以下操作:


  1. 更多信息请参见你的第一个程序。 ↩︎