tokio-rs/console:非同步Rust執行偵錯程式控制檯

banq發表於2021-12-17

這是一個用於非同步 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板條箱實現了一個 互動式命令列工具消耗此資料,但其它實施方式中,諸如圖形或基於網路的工具,也是可能的。

詳細點選

相關文章