CnOps 智能运维与可观测社区
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题
导航菜单
首页开源项目实践文章视频课程常见问答开发者工具STAROps 专题

CnOps 智能运维与可观测社区

愿景

CnOps 智能运维与可观测社区是一个以"智能运维与可观测"为核心的开放、包容、分享的技术社区,旨在聚集运维专家、开发者和爱好者,共同探讨、学习和分享可观测最佳实践与最新技术,与众多技术社区合作互动,共同探讨交叉领域的技术挑战,推动可观测领域的创新与进步。

内容社区

  • 实践文章
  • 视频课程
  • 开源项目
  • 常见问答
  • 开发者工具

友情链接

  • Prometheus
  • Grafana Lab
  • OpenTelemetry
  • LoongCollector

关注我们

阿里云云原生公众号阿里云云原生
阿里云可观测公众号阿里云可观测

Copyright © 2026 CnOps 社区. All rights reserved.

首页/开源项目/OpenTelemetry/Docker 部署
文档目录
文档开始手动插桩使用插桩库导出器资源采样什么是 OpenTelemetry?
演示架构Collector 数据流仪表盘开发Docker 部署Fork 演示仓库Kubernetes 部署
API 参考文档示例
支持库列表

OpenTelemetry

Docker 部署

<!-- markdownlint-disable code-block-style ol-prefix --> - Docker - Docker Compose,版本需为 v2.0.0+ - Make(可选) - 应用需占用 6 GB 内存 1. 克隆演示仓库: 2. 进入演示文件夹: 3. 开始演示[^1]: 4. (可选)启用基于 API...

前置条件 {#prerequisites}

  • Docker
  • Docker Compose,版本需为 v2.0.0+
  • Make(可选)
  • 应用需占用 6 GB 内存

获取并运行演示程序 {#get-and-run-the-demo}

  1. 克隆演示仓库:

    git clone https://github.com/open-telemetry/opentelemetry-demo.git
    
  2. 进入演示文件夹:

    cd opentelemetry-demo/
    
  3. 开始演示[^1]:

make start
docker compose up --force-recreate --remove-orphans --detach
  1. (可选)启用基于 API 可观测性的测试[^1]:
make run-tracetesting
docker compose -f docker-compose-tests.yml run traceBasedTests

验证 Web 商店和遥测数据 {#verify-the-web-store-and-telemetry}

当镜像构建完成并容器启动后,你可以访问以下地址:

  • Web 商店:http://localhost:8080/
  • Grafana:http://localhost:8080/grafana/
  • 负载生成器 UI:http://localhost:8080/loadgen/
  • Jaeger UI:http://localhost:8080/jaeger/ui/
  • Tracetest UI:http://localhost:11633/,仅在使用 make run-tracetesting 时可用
  • Flagd 配置器 UI:http://localhost:8080/feature

修改演示的默认端口号 {#changing-the-demos-primary-port-number}

默认情况下,演示应用将为所有浏览器流量启动一个绑定在 8080 端口的代理服务。
如需更换端口号,请在启动演示前设置环境变量 ENVOY_PORT。

  • 例如,使用 8081 端口[^1]:
ENVOY_PORT=8081 make start
ENVOY_PORT=8081 docker compose up --force-recreate --remove-orphans --detach

使用你自己的后端服务 {#bring-your-own-backend}

你可能希望将 Web 商店作为演示应用,用于连接你已有的可观测性后端服务
(例如你已有的 Jaeger、Zipkin 实例,或你选择的其他厂商)。

OpenTelemetry Collector 可用于将遥测数据导出到多个后端。默认情况下,演示应用中的 Collector 会合并以下两个配置文件的内容:

  • otelcol-config.yml
  • otelcol-config-extras.yml

如需添加自己的后端服务,请使用编辑器打开文件
src/otel-collector/otelcol-config-extras.yml。

  • 首先添加一个新的导出器。例如,如果你的后端支持通过 HTTP 的 OTLP 协议,添加如下内容:

    exporters:
      otlphttp/example:
        endpoint: <your-endpoint-url>
    
  • 然后重写要连接到你后端的遥测管道中的 exporters 配置:

    service:
      pipelines:
        traces:
          exporters: [spanmetrics, otlphttp/example]
    

在使用 Collector 合并 YAML 配置时,对象会被合并,但数组会被替换。
如果你重写了 traces 管道的 exporters,必须确保数组中包含 spanmetrics
导出器。如果未包含该导出器,将导致错误

某些厂商的后端可能要求你添加额外的认证参数,请参考相应文档。部分后端需要使用不同的导出器,你可以在
opentelemetry-collector-contrib/exporter
找到这些导出器及其文档。

更新完 otelcol-config-extras.yml 后,通过运行 make start 开始演示。
稍等片刻后,你应能看到数据流入你的后端服务。

[^1]:

文章大纲