MagicStack / MagicStack/uvloop

Implement tracing support

Ouverte
#163 12 commentaires 4 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

enhancement
Langage dominant
Cython
Étoiles
11.9k
Forks
616
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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
  1. Base on the new contextvars (PEP 567) API, so that async tasks and callbacks they schedule are traced consistently.

  2. 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.

  3. Low performance overhead. Ideally we should be able to run tracing in production.

  4. Low-level and detailed: we want to be able to measure DNS requests, read/write callbacks performance, throughput, number of callbacks/tasks created etc.

  5. Flexibility: traces should be in easy to work with format, so that it's possible to submit them to existing systems like zipkin.

  6. 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.

  7. [TBD]

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par examiner les exigences de cette issue et l’API contextvars de PEP 567 ; aucun fichier d’implémentation, test ou point d’entrée n’est indiqué. Ce serait considéré comme terminé lorsqu’un accord aura été trouvé sur une API de traçage asyncio hiérarchique, à faible overhead, détaillée, flexible et extensible avant le début de l’implémentation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
python
Domaine
backend, networking
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
À clarifier
Accessibilité débutants
20/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.