PR jumelle de kadans-jobs#3 (qui expose /metrics sur la façade — via annotations de pod, zéro config ici — et sur le worker du laptop).
prometheus : nouvelle entrée scrapeConfigs.kadans-worker-mac — cible statique 192.168.1.103:9105 (labels tier: laptop, app: kadans-worker). Un scrape en échec n'est pas un incident : le Mac dort, up == 0 raconte la latence des analyses (« sa disponibilité n'impacte que la latence, jamais la disponibilité de l'API ») — ne pas alerter sur cette cible. ⚠ Réserver l'IP du Mac au routeur (DHCP), ou remplacer par un nom résolvable.
grafana : provider kadans + dashboard « Kadans — jobs d'analyse » (uid: kadans-jobs-analyse, dossier Kadans) : worker en écoute / dernier poll / jobs en attente / âge du plus ancien pending (seuils 1 h / 24 h = le SLO honnête), la file par statut et les publications par issue (couleurs de statut sémantiques : pending jaune, running bleu, done vert, failed rouge — jamais recyclées pour de l'identité), lanes exécutées et durée moyenne par lane.
Rendu validé localement (helm dependency build + helm template : la cible et le dashboard sortent bien ; YAML + JSON parsés).
PR jumelle de kadans-jobs#3 (qui expose `/metrics` sur la façade — via annotations de pod, zéro config ici — et sur le worker du laptop).
- **prometheus** : nouvelle entrée `scrapeConfigs.kadans-worker-mac` — cible statique `192.168.1.103:9105` (labels `tier: laptop`, `app: kadans-worker`). Un scrape en échec n'est **pas** un incident : le Mac dort, `up == 0` raconte la latence des analyses (« sa disponibilité n'impacte que la latence, jamais la disponibilité de l'API ») — ne pas alerter sur cette cible. ⚠ Réserver l'IP du Mac au routeur (DHCP), ou remplacer par un nom résolvable.
- **grafana** : provider `kadans` + dashboard **« Kadans — jobs d'analyse »** (`uid: kadans-jobs-analyse`, dossier Kadans) : worker en écoute / dernier poll / jobs en attente / âge du plus ancien pending (seuils 1 h / 24 h = le SLO honnête), la file par statut et les publications par issue (couleurs de statut sémantiques : pending jaune, running bleu, done vert, failed rouge — jamais recyclées pour de l'identité), lanes exécutées et durée moyenne par lane.
Rendu validé localement (`helm dependency build` + `helm template` : la cible et le dashboard sortent bien ; YAML + JSON parsés).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- prometheus : cible statique kadans-worker-mac (192.168.1.103:9105, tier
laptop). Un scrape raté n'est PAS un incident : le Mac dort, up==0 raconte
la latence — ne pas alerter dessus. ⚠ réserver l'IP au routeur (DHCP).
- grafana : provider + dashboard « Kadans — jobs d'analyse » (uid
kadans-jobs-analyse) : worker en écoute / dernier poll / file pending + âge
du plus ancien (seuils 1 h / 24 h = le SLO), file par statut et publications
par issue (couleurs de STATUT sémantiques), lanes exécutées et durée moyenne
par lane. La façade, elle, arrive par les annotations de son pod
(kadans-jobs#3) — zéro config ici.
Co-Authored-By: Claude Fable 5 <[email protected]>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
PR jumelle de kadans-jobs#3 (qui expose
/metricssur la façade — via annotations de pod, zéro config ici — et sur le worker du laptop).scrapeConfigs.kadans-worker-mac— cible statique192.168.1.103:9105(labelstier: laptop,app: kadans-worker). Un scrape en échec n'est pas un incident : le Mac dort,up == 0raconte la latence des analyses (« sa disponibilité n'impacte que la latence, jamais la disponibilité de l'API ») — ne pas alerter sur cette cible. ⚠ Réserver l'IP du Mac au routeur (DHCP), ou remplacer par un nom résolvable.kadans+ dashboard « Kadans — jobs d'analyse » (uid: kadans-jobs-analyse, dossier Kadans) : worker en écoute / dernier poll / jobs en attente / âge du plus ancien pending (seuils 1 h / 24 h = le SLO honnête), la file par statut et les publications par issue (couleurs de statut sémantiques : pending jaune, running bleu, done vert, failed rouge — jamais recyclées pour de l'identité), lanes exécutées et durée moyenne par lane.Rendu validé localement (
helm dependency build+helm template: la cible et le dashboard sortent bien ; YAML + JSON parsés).🤖 Generated with Claude Code