Commit Graph

3 Commits

Author SHA1 Message Date
david 9aead397fd fix: remove After=synth-diagnostic from pipeline services
Root cause: synth-diagnostic uses systemctl start to start pipeline
services, but those services had After=synth-diagnostic — causing
deadlock (they waited for synth-diagnostic to exit, which was waiting
for them).

Fix: pipeline services no longer list synth-diagnostic in After=.
synth-diagnostic has Before= them for boot ordering, and starts them
directly via systemctl start in run-tests.sh.

Also fixed prometheus-exporter: had After=synth-diagnostic backwards
— should start before synth-diagnostic (synth-diagnostic has
After=prometheus-exporter).
2026-06-24 02:53:16 -07:00
david b445c272fb add boot-time synth-diagnostic.service
- synth-diagnostic.service: runs test-unit.py before pipeline services
- Type=oneshot, After=prometheus-exporter, Before=pipeline services
- Pipeline services: After=synth-diagnostic
- deploy: restart prometheus-exporter → start synth-diagnostic → restart pipeline
- install.sh: includes synth-diagnostic in SERVICES array
2026-06-24 02:48:40 -07:00
david 163ad4145b add prometheus exporter + test suite
- prometheus-exporter.py: stdlib-only HTTP metrics on :9090/metrics
- Exposes: ALSA status, hw_ptr rate, service health, mixer controls
- MIDI counters: notes_on, notes_off, errors
- test-unit.py: 10-test suite covering full MIDI→Pd→Audio pipeline
- test-tone.pd, test-midi-log.pd: minimal debug patches
- systemd service for exporter
- install.sh/deploy updated to include exporter
2026-06-24 02:22:05 -07:00