You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Docker容器内实现函数调用追踪

Docker容器内函数调用追踪方案及Zipkin配置指引

可行方案汇总

  • 无侵入式eBPF方案:通过bpftrace、Pyroscope等eBPF工具,无需修改业务代码即可捕获容器内进程的函数调用栈,适合不能改造业务代码的场景
  • 开源APM工具方案:Zipkin、Jaeger、SkyWalking等链路追踪工具,支持Docker环境部署,配合埋点可以精准采集函数调用、延迟、依赖等链路数据
  • 语言原生埋点方案:使用对应语言的追踪SDK(如Go的OpenTelemetry、Java的Sleuth、Python的OpenCensus)在代码层嵌入采集逻辑,上报到追踪后端实现细粒度函数监控

Zipkin 配置使用实操步骤

1. 部署Zipkin服务端

Docker环境下直接拉取官方镜像启动即可,执行命令:
docker run -d -p 9411:9411 openzipkin/zipkin
启动完成后访问宿主机的9411端口即可打开Zipkin的可视化界面。

2. 业务服务埋点配置

通用场景推荐使用OpenTelemetry SDK集成,无需绑定特定框架:

  • 给业务服务引入对应语言的OpenTelemetry SDK依赖
  • 配置Trace导出地址为 http://<Zipkin服务所在IP>:9411/api/v2/spans
  • 开启函数调用采集开关,SDK会自动上报生成的调用链路数据

如果是Spring Cloud生态的应用,可以直接用官方Starter简化配置:

  1. 引入spring-cloud-starter-zipkin依赖
  2. 在配置文件中添加如下内容:
spring:
  zipkin:
    base-url: http://<你的Zipkin服务IP>:9411
  sleuth:
    sampler:
      probability: 1.0 # 采样率设置为1.0即采集所有请求的链路数据,生产环境可按需调低

3. Docker网络适配注意事项

  • 如果业务容器和Zipkin容器部署在同一台宿主机的同一自定义Docker网络下,可直接用Zipkin的容器名替换IP地址通信,不需要对外暴露9411端口
  • 如果跨主机部署,需要确保宿主机的9411端口放行,业务容器所在网络可以正常访问Zipkin服务

4. 效果验证

给业务服务发起测试请求后,打开Zipkin UI即可搜索到对应请求的全链路数据,包含每个函数的调用耗时、返回状态、上下游服务依赖等信息。

内容的提问来源于stack exchange,提问作者Yuhang Lin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 20:06:09