Profile the ingest worker with Pyroscope

Aperta
#480 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 3 giorni

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
45/100
Tipo di issue
Funzionalità
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
postgresql, python

Direzione di ricerca

Read tagbase_server/tagbase_server/ingest_worker.py and services/observability/config.cloud.alloy, then trace the existing ingest.parse_etuff span and benchmark workflow. The scope also calls for updates to the wiki Observability and Installation pages. Done means profiles show flame graphs for parse, row build, DataFrame and COPY in Grafana Cloud, while profiling stays off by default and does not change ingest time when disabled.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

enhancement

Part of #476

We need CPU and memory profiles of the Python ingest path to decide which hypotheses are worth building.

Scope

  • Add the Pyroscope Python SDK to the ingest worker (tagbase_server/tagbase_server/ingest_worker.py), off by default, enabled by an environment variable.
  • Send profiles through Alloy to Grafana Cloud Profiles in services/observability/config.cloud.alloy (pyroscope.receive_http and pyroscope.write). The local LGTM stack is unchanged.
  • Tag profiles with submission_id and the ingest phase, and link spans to profiles so a slow ingest.parse_etuff span opens its flame graph.
  • Document enabling it on the wiki Observability and Installation pages.

Done when

  • A benchmark run with profiling enabled shows flame graphs for parse, row build, DataFrame and COPY in Grafana Cloud.
  • With profiling disabled, ingest time is unchanged.
Lingua principale
Python
Stelle
7
Fork
1
Merge medio
3g 18h
PR unite (30g)
25

Preparare l'ambiente

  • Include un Dockerfile o un file Docker Compose
  • Nessun modello di pull request
  • Nessuna guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di tagbase/tagbase-server

Tutte le issue di tagbase/tagbase-server

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.