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

如何获取Dataflow中worker_status.py生成的诊断数据?

获取Dataflow Streaming Worker的诊断信息(thread dump、heap dump等)

要启用并访问apache_beam/runners/worker/worker_status.py提供的诊断数据,按以下步骤操作:

1. 启用Worker状态端点

提交Dataflow管道时,需要指定两个关键配置:

  • 添加实验参数开启功能:--experiments=enable_worker_status_endpoint
  • 通过环境变量指定服务端口(默认8091,可自定义):--environment_variables=BEAM_WORKER_STATUS_PORT=8091

2. 访问诊断数据

Dataflow Worker默认部署在VPC内网,访问方式分两种:

直接VPC访问

如果拥有Worker所在VPC的访问权限,可直接通过Worker内网IP+指定端口访问对应端点:

  • Thread dump:http://<worker-internal-ip>:8091/threadDump
  • Heap dump:http://<worker-internal-ip>:8091/heapDump
  • State缓存统计:http://<worker-internal-ip>:8091/stateCacheStats
  • 活跃处理Bundle状态:http://<worker-internal-ip>:8091/activeProcessingBundles

SSH隧道访问(无直接VPC权限时)

通过Cloud SDK建立SSH隧道转发端口,在本地访问:

  1. 给Worker实例配置SSH密钥(可通过GCP控制台或gcloud compute project-info add-metadata提前设置)
  2. 执行隧道命令:gcloud compute ssh <worker-instance-name> --zone=<worker-zone> --ssh-flag="-L 8091:localhost:8091"
  3. 本地用浏览器或curl访问:http://localhost:8091/<target-endpoint>(比如http://localhost:8091/threadDump)

3. 注意事项

  • 该功能属于实验性特性,Beam 2.30及以上版本支持,不同版本可能存在细节差异
  • Heap dump文件体积较大,频繁触发可能影响Worker性能,建议在低负载时段操作
  • 所有端点返回JSON格式数据,便于后续脚本解析或可视化处理

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 18:32:12