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
Ottenere un token di accesso per una GitHub App
Configurare automaticamente un webhook in Azure DevOps
Testare il failover sulle region in Azure Storage
Gestire gli accessi con Token su Azure Container Registry
Scrivere selettori CSS più semplici ed efficienti con :is()
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Utilizzare l'espressione if inline in una pipeline di Azure DevOps
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Escludere alcuni file da GitHub Secret Scanning
Gestione dei nomi con le regole @layer in CSS
Utilizzare DeepSeek R1 con Azure AI
I più letti di oggi
- Sfruttare i nuovi overload di TimeSpan.From* per creare timespan usando numeri interi
- Documentare i servizi REST con Swagger e OpenAPI con .NET 9
- Inviare i comandi SQL generati da Entity Framework alla console di Visual Studio
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- Gestione CSS in Blazor con .NET 9
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!