La telemetria è una implementazione fondamentale per sapere se le nostre applicazioni, servizi o altro, stanno funzionando come si deve. Per questo è altrettanto utile integrarla nei nostri workflow di GitHub, perchè così possiamo sapere, per esempio esportandoci dei dati in tool di analisi come Power BI, quanti dei job eseguiti sono falliti, quanti sono completati con successo, il numero di esecuzioni per workflow, il tempo medio di esecuzione e così via, utile anche per stimare i costi e le varie ottimizzazioni da eseguire.
Purtroppo, al momento, in GitHub non è previsto alcun strumento di telemetria out-of-the-box. Tuttavia, se eseguiamo i nostri workflow su runner self-hosted (quindi quelli gestiti da noi), possiamo iniettare alcuni script pre/post esecuzione dei job, così da poter eseguire la nostra logica custom.
Ci sono solamente due requisiti. Il primo consiste nel creare a priori lo script da eseguire e di caricarlo nel self-hosted runner in una qualsiasi folder (ad eccezione di quella del runner), il secondo è l'impostazione delle variabili ACTIONS_RUNNER_HOOK_JOB_STARTED o ACTIONS_RUNNER_HOOK_JOB_COMPLETED a seconda di quando lo script custom deve girare (prima che il job inizi, oppure terminata la sua esecuzione).
ACTIONS_RUNNER_HOOK_JOB_STARTED=/opt/runner/cleanup_script.sh
Non è previsto alcun timeout di default, quindi l'esecuzione andrà avanti all'infinito qualora ci fossero dei problemi e non fosse prevista lato nostro una terminazione forzata, con tutte le conseguenze del caso (job in pending, runner occupato, utenti bloccati, ecc).
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Introduzione alle Container Queries
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Creare una custom property in GitHub
Eseguire i worklow di GitHub su runner potenziati
Ottenere un token di accesso per una GitHub App
Filtrare i dati di una QuickGrid in Blazor con una drop down list
Generare la software bill of material (SBOM) in GitHub
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Testare l'invio dei messaggi con Event Hubs Data Explorer
Creare un webhook in Azure DevOps
Utilizzare QuickGrid di Blazor con Entity Framework
Eseguire una ricerca avanzata per recuperare le issue di GitHub