Debugging 如何可视化多个并发多阶段流程的行为?

Debugging 如何可视化多个并发多阶段流程的行为?,debugging,concurrency,monitoring,visualization,distributed,Debugging,Concurrency,Monitoring,Visualization,Distributed,假设我有一吨(连续流)的请求要处理,每个请求都有几个阶段。例如:“连接到数据源”、“从数据源读取数据”、“验证数据”、“处理数据”、“连接到数据接收器”、“将结果写入数据接收器” 哪些可视化方法或工具适合可视化此类系统的行为 我希望能够看到哪些阶段花费了很长的时间,以及不同请求的阶段之间如何相互协调(例如,当一次被太多请求访问时,数据源的响应时间更长) 如果只有几十个请求,我可以选择几十个单独的彩色时间表,但几千个不太合适。我想我可以避开N个彩色的时间线,其中N是“并发因素”,但是1)也许有更好

假设我有一吨(连续流)的请求要处理,每个请求都有几个阶段。例如:“连接到数据源”、“从数据源读取数据”、“验证数据”、“处理数据”、“连接到数据接收器”、“将结果写入数据接收器”

哪些可视化方法或工具适合可视化此类系统的行为

我希望能够看到哪些阶段花费了很长的时间,以及不同请求的阶段之间如何相互协调(例如,当一次被太多请求访问时,数据源的响应时间更长)

如果只有几十个请求,我可以选择几十个单独的彩色时间表,但几千个不太合适。我想我可以避开N个彩色的时间线,其中N是“并发因素”,但是1)也许有更好的东西,2)也许有这样的工具

p.S.无耻插件:一旦我找到了可视化的最佳方式,我将把它添加到我的漂亮工具;)

另一个无耻的插件:我决定写一个单独的工具:。基于一个简单的日志和一个awk单行程序,它可以做到以下几点:


它显示了一个集群的160个核心执行RabbitMQ提供给它们的任务。蓝色是“获取数据”,橙色是“计算”,白色是“无所事事”。从这张图中可以立即看出几个问题,仅通过查看日志很难发现这些问题。

我有一个多进程软件,在一台有15个内核的机器上运行。这就是我要做的

将所有消息记录到syslog。最后绘制(选定)最后20分钟的日志数据。我使用syslog viewer查看记录的内容和模式。你可以找到很多适合你的


希望这有帮助。

这真是太棒了!我不清楚相互依赖的程度,但是在最右边的任务依赖于左边的任务的情况下,你可以得到一个关键路径分析图表。我肯定会修补你的软件:)