Non sarebbe utile includere GitHub - Strech/sidekiq-prometheus-exporter: All the basic metrics of Sidekiq with pluggable contribs prepared for Prometheus · GitHub nel progetto? Ad esempio, con questo plugin mi mancano i conteggi dei job completati e falliti, che sono tra le metriche più importanti per verificare se qualcosa non sta funzionando correttamente…
Quel progetto è completamente autonomo e non è qualcosa che integreremmo.
Se mancano delle metriche, crea una richiesta di funzionalità (#feature request) per aggiungerle o inseriscile in una PR.
Purtroppo Ruby non è il mio forte, quindi aprire una PR sembra per me una strada in salita. Posso provare, ma per me ci sarà una ripida curva di apprendimento. D’altro canto, il repository ufficiale menzionato sopra non consente la creazione di ticket, quindi ho un numero limitato di luoghi in cui posso richiedere nuove funzionalità. Nello specifico: qui.
Di conseguenza, chiedo di estendere l’attuale libreria con le metriche elencate di seguito. Che, non a caso, è l’elenco delle metriche della libreria citata sopra. Ho già segnato quelle già disponibili nella versione corrente. Quelle in grassetto sembrano le più ovvie per monitorare completamente Sidekiq in esecuzione in background.
| Metrica | Tipo | Descrizione | Metrica già implementata |
|---|---|---|---|
| counter | Il numero totale di job elaborati | discourse_sidekiq_job_count | |
| sidekiq_failed_jobs_total | counter | Il numero totale di job falliti | |
| gauge | Il numero di worker su tutti i processi | discourse_sidekiq_workers | |
| gauge | Il numero di processi | discourse_sidekiq_processes | |
| sidekiq_busy_workers | gauge | Il numero di worker che stanno eseguendo un job | |
| gauge | Il numero di job in coda | discourse_sidekiq_jobs_enqueued | |
| sidekiq_scheduled_jobs | gauge | Il numero di job schedulati per un’esecuzione futura | |
| sidekiq_retry_jobs | gauge | Il numero di job schedulati per il prossimo tentativo | |
| sidekiq_dead_jobs | gauge | Il numero di job considerati dead | |
| sidekiq_queue_latency_seconds | gauge | Il numero di secondi tra l’inserimento del job più vecchio in coda e il momento attuale (etichette: name) | |
| sidekiq_queue_max_processing_time_seconds | gauge | Il numero di secondi tra l’inizio dell’esecuzione del job più vecchio della coda e il momento attuale (etichette: name) | |
| sidekiq_queue_enqueued_jobs | gauge | Il numero di job in coda nella coda specifica (etichette: name) |
Per favore, correggetemi se ne ho saltata una o se ho frainteso qualcosa.