perf: scaffold skinny package with __init__.py and pyproject.toml entry #203

Closed
opened 2026-03-24 23:50:06 +00:00 by kert · 2 comments
Owner

Create src/perf/ as the 12th module in module-name list.

Tasks

  • Create src/perf/__init__.py with public API: init(), tracer(), meter(), shutdown()
  • Add "perf" to tool.uv.build-backend.module-name in pyproject.toml
  • Add perf optional-dependency group: opentelemetry-api, opentelemetry-sdk, opentelemetry-exporter-otlp-proto-grpc, opentelemetry-instrumentation-fastapi, opentelemetry-semantic-conventions, psutil
  • Add [telemetry] section to stack.toml (enabled, endpoint, fallback, sample_rate, service_name)
  • Create tests/perf/ mirror directory
  • Verify uv sync --extra perf resolves cleanly
Create `src/perf/` as the 12th module in `module-name` list. ## Tasks - [ ] Create `src/perf/__init__.py` with public API: `init()`, `tracer()`, `meter()`, `shutdown()` - [ ] Add `"perf"` to `tool.uv.build-backend.module-name` in pyproject.toml - [ ] Add `perf` optional-dependency group: `opentelemetry-api`, `opentelemetry-sdk`, `opentelemetry-exporter-otlp-proto-grpc`, `opentelemetry-instrumentation-fastapi`, `opentelemetry-semantic-conventions`, `psutil` - [ ] Add `[telemetry]` section to `stack.toml` (enabled, endpoint, fallback, sample_rate, service_name) - [ ] Create `tests/perf/` mirror directory - [ ] Verify `uv sync --extra perf` resolves cleanly
kert added this to the P26: Pipeline Telemetry — OTel instrumentation, perf module, Grafana dashboards milestone 2026-03-24 23:50:06 +00:00
Author
Owner

Starting work on package scaffold.

Plan:

  1. Create src/perf/__init__.py with public API stubs
  2. Add "perf" to module-name in pyproject.toml
  3. Add perf optional-dependency group
  4. Add [telemetry] section to stack.toml
  5. Create tests/perf/ with initial test
  6. Verify uv sync --extra perf resolves cleanly
Starting work on package scaffold. **Plan:** 1. Create `src/perf/__init__.py` with public API stubs 2. Add `"perf"` to `module-name` in pyproject.toml 3. Add `perf` optional-dependency group 4. Add `[telemetry]` section to stack.toml 5. Create `tests/perf/` with initial test 6. Verify `uv sync --extra perf` resolves cleanly
Author
Owner

All tasks complete. Results:

Files created:

  • src/perf/__init__.py — public API: init(), shutdown(), tracer(), meter(), _enabled()
  • src/perf/_tracer.py — MockTracer/MockSpan + TracerProvider setup with OTLP gRPC exporter
  • src/perf/_meter.py — MockMeter + MeterProvider setup with Prometheus exporter
  • src/perf/_resource.py — OTel Resource (service.name, version, git SHA, deployment.environment)
  • src/perf/export.py — FileSpanExporter JSONL fallback
  • tests/perf/__init__.py
  • tests/perf/test_init.py — 20 tests covering all mock objects, public API, config, and export

Files modified:

  • pyproject.toml — added "perf" to module-name, added perf optional-dep group (7 OTel packages + psutil), added to all
  • stack.toml — added [telemetry] section (enabled, endpoint, fallback, sample_rate, service_name)

Verification:

  • ✅ uv sync --extra perf — resolved 17 new packages cleanly
  • ✅ ruff check src/perf/ — 0 errors (8 auto-fixed)
  • ✅ pytest tests/perf/ — 20/20 passed in 0.04s
  • ✅ pytest tests/ — 11,975 passed in 218s (no regressions)
  • ✅ Smoke test: import perf; perf.tracer("test") → MockTracer

Ready to close.

All tasks complete. Results: **Files created:** - `src/perf/__init__.py` — public API: `init()`, `shutdown()`, `tracer()`, `meter()`, `_enabled()` - `src/perf/_tracer.py` — `MockTracer`/`MockSpan` + `TracerProvider` setup with OTLP gRPC exporter - `src/perf/_meter.py` — `MockMeter` + `MeterProvider` setup with Prometheus exporter - `src/perf/_resource.py` — OTel Resource (service.name, version, git SHA, deployment.environment) - `src/perf/export.py` — `FileSpanExporter` JSONL fallback - `tests/perf/__init__.py` - `tests/perf/test_init.py` — 20 tests covering all mock objects, public API, config, and export **Files modified:** - `pyproject.toml` — added `"perf"` to `module-name`, added `perf` optional-dep group (7 OTel packages + psutil), added to `all` - `stack.toml` — added `[telemetry]` section (enabled, endpoint, fallback, sample_rate, service_name) **Verification:** - ✅ `uv sync --extra perf` — resolved 17 new packages cleanly - ✅ `ruff check src/perf/` — 0 errors (8 auto-fixed) - ✅ `pytest tests/perf/` — **20/20 passed** in 0.04s - ✅ `pytest tests/` — **11,975 passed** in 218s (no regressions) - ✅ Smoke test: `import perf; perf.tracer("test")` → `MockTracer` Ready to close.
kert closed this issue 2026-03-25 00:00:27 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: homelab/stack#203