MagicStack / MagicStack/uvloop
Implement tracing support
まだ誰も着手していません。
- 主要言語
- Cython
- スター
- 11.9k
- フォーク
- 615
- PR マージ指標
- 30日以内にマージされた PR はありません
説明
This is a meta issue to discuss how new asyncio tracing API should look like. We will implement it first in uvloop, and later, if necessary, port it to asyncio.
Requirements
-
Base on the new
contextvars(PEP 567) API, so that async tasks and callbacks they schedule are traced consistently. -
Traces should be hierarchical, i.e. it should be possible to see what and how exactly one Task did, what Tasks that it spawned did, etc.
-
Low performance overhead. Ideally we should be able to run tracing in production.
-
Low-level and detailed: we want to be able to measure DNS requests, read/write callbacks performance, throughput, number of callbacks/tasks created etc.
-
Flexibility: traces should be in easy to work with format, so that it's possible to submit them to existing systems like zipkin.
-
Extensibility: the new API should be easy to maintain on both ends: in the event loop and in applications that use it. This means that adding a new kind of trace should not require people to write any glue code.
-
[TBD]
コントリビューションガイド
このリポジトリのコントリビューションガイドは索引されていません
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、この issue の要件と PEP 567 contextvars API を確認してください。実装ファイル、テスト、エントリポイントは指定されていません。実装を開始する前に、階層的で、オーバーヘッドが小さく、詳細で、柔軟かつ拡張可能な asyncio トレーシング API について合意に達することが完了の条件です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- python
- 領域
- backend, networking
- issue の種類
- 機能追加
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 20/100