refactor(metrics): unify per-provider AI metrics under provider-labeled counters and histograms
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 35/100
- Tipo di issue
- Refactoring
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Attiva
- Stack tecnologico
- python
- Ambito
- ai, observability
Direzione di ricerca
Start in supernote/server/metrics.py, where the per-vendor Gemini and OpenAI counters and histograms are defined, then compare the _track_api_call helpers in each provider's backend.py. Check how OcrModel, SummaryModel and EmbeddingModel wrap calls, since the shared instrumentation probably belongs there. Done means ocr, summary and embedding calls emit provider-labeled request count and latency metrics, and tests/server/test_metrics.py passes. The design of the label scheme and the deprecation path needs maintainer input before coding.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
Each AI backend currently defines its own vendor-specific Prometheus metric families in supernote/server/metrics.py (supernote_gemini_api_calls_total, supernote_openai_api_calls_total, and matching *_duration_seconds histograms) and duplicates _track_api_call instrumentation logic inside each provider's backend.py.
As additional model providers are added (e.g. Mistral #304, named provider entries #476, and local/OS model backends), multiplying per-vendor metric names makes Prometheus queries, dashboards, and alerting brittle and forces boilerplate instrumentation into every new provider implementation.
Goals
- Introduce unified provider-neutral AI metrics in
supernote/server/metrics.py(e.g.supernote_ai_requests_totalandsupernote_ai_request_duration_secondslabeled byprovider,capability/operation, andstatus). - Centralize request timing, error counting, and
AIErrorlogging in a shared helper or at the base capability wrapper layer (OcrModel,SummaryModel,EmbeddingModel) so every provider gets consistent observability out of the box. - Remove (or deprecate) bespoke per-vendor metric families and update
tests/server/test_metrics.pyand backend tests.
Acceptance Criteria
- All AI model invocations (
ocr,summary,embedding) emit unified Prometheus request count and latency metrics labeled with provider and capability/operation. - Adding a new AI provider no longer requires defining new Counter/Histogram objects in
supernote/server/metrics.py.
- Lingua principale
- Python
- Stelle
- 82
- Fork
- 31
- Merge medio
- 4h 55m
- PR unite (30g)
- 168
Preparare l'ambiente
- Include un Dockerfile o un file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di allenporter/supernote
-
fix(schedule): align list_tasks since cursor filter boundary from strict > to >=Forse già presa @bfs2021 l’ha presa oggi. Apertaagent-ready bug p2 schedule
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
allenporter/supernote#540 ·
I maintainer di solito rispondono entro 1 giorno
-
fix(client): check HTTP status and wrap ClientError in ScheduleClient delete and iCal methodsApertaagent-ready bug cli-client p1 schedule
Difficoltà 3/5 1-2 giorni Idoneità per principianti 66/100
allenporter/supernote#537 ·
I maintainer di solito rispondono entro 1 giorno
-
agent-ready ai p1 tech-debt
Difficoltà 4/5 3-5 giorni Idoneità per principianti 25/100
allenporter/supernote#513 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
agent-ready ai p1 tech-debt
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
allenporter/supernote#512 ·
I maintainer di solito rispondono entro 1 giorno
-
chore(testing): add trace.log fixture sanitizer script and automated OpenAPI route conformance testApertaagent-ready p2 storage-sync tech-debt
Difficoltà 4/5 3-5 giorni Idoneità per principianti 42/100
allenporter/supernote#509 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di allenporter/supernote
Issue simili
-
ChatBedrockConverse changes the keys of JSON tool results to camelCase (`order_id` becomes `orderId`)Forse già presa @geyazheng l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
langchain-ai/langchain-aws#1469 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
I maintainer di solito rispondono entro 1 giorno
-
b4b usability
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
frazane/scoringrules#164 ·
I maintainer di solito rispondono entro 1 giorno
-
The docs build fails: ecc's live inventory dropped the ecc.ecc names btclib's pinned ecc usesForse già presa @fametrano l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
btclib-org/btclib#2968 ·
I maintainer di solito rispondono entro 1 giorno