tokio-rs/console:异步Rust运行调试器控制台


这是一个用于异步 Rust 程序的诊断和调试工具。
Tokio 团队宣布 Tokio Console ( Github )的初始版本,使 Rust 开发人员能够更深入地了解其应用程序的运行时行为。Tokio Console 是一个用于异步 Rust 程序的诊断和调试工具。它为您提供了对程序任务和资源的实时、易于导航的视图,总结了它们的当前状态和历史行为。
到目前为止,了解异步运行时的状态需要开发人员解释事件日志。类似的框架tracing提供了用于检测程序和查询结果输出的工具,但知道要使用什么查询以及如何解释输出并非易事。例如,如果您不熟悉 Tokio 的源代码,您就不一定知道tracing要查找哪些事件,也不知道这些事件的含义。
tokio-console通过提供异步运行时的演示来解决此问题,该描述使用异步开发人员已经熟悉的术语进行描述:异步运行时轮询的任务集,以及每个任务在为请求提供服务时获取或释放的资源。您不需要编写任何新的检测逻辑:只需一行代码即可启用 Tokio Console,之后,您可以使用提供的终端工具来观察异步运行时。
tokio-console将奇怪的行为带到最前面。您可以按总忙碌时间或轮询次数等指标对任务进行排序。控制台通过突出显着差异来提供帮助,例如从毫秒到秒的转变。
诊断工具包由多个组件组成:

  • 一种用于将诊断数据从仪表应用程序流式传输到诊断工具的有线协议。线路格式是使用gRPC协议缓冲区定义的,以实现线路上的高效传输以及数据生产者和消费者的不同实现之间的互操作性。
    console-api箱包含生成的代码本线格式使用项目tonicGRPC实施。此外,使用其他 gRPC 代码生成器(包括其他语言的!)的项目可能依赖于 protobuf 定义本身。
  • 用于从过程中收集诊断数据并通过有线格式公开它的工具。在console-subscriber这个仓库箱子包含仪表端API作为一个的实现 tracing-subscriber Layer,使用项目东京和 tracing
  • 用于显示和探索诊断数据的工具,使用控制台线路协议作为 gRPC 客户端实现。所述console板条箱实现了一个 交互式命令行工具消耗此数据,但其它实施方式中,诸如图形或基于网络的工具,也是可能的。

详细点击