Per monitorare la profilazione della memoria nelle pipeline CI/CD, è necessario tenere traccia dei seguenti parametri chiave:
1. Attività di Garbage Collection: misura la quantità di tempo dedicata alle attività di Garbage Collection rispetto al tempo di esecuzione totale. Un valore inferiore indica una migliore gestione della memoria[1].
2. Tempo medio di pausa della Garbage Collection: misura il tempo medio di pausa dell'applicazione durante la Garbage Collection. Valori più bassi indicano un impatto minore sulle prestazioni dell'applicazione[1].
3. Tempo massimo di pausa della Garbage Collection: misura il tempo massimo di pausa dell'applicazione durante la Garbage Collection. Valori più bassi indicano un impatto minore sulle prestazioni dell'applicazione[1].
4. Tasso di creazione oggetti: misura la velocità con cui gli oggetti vengono creati dall'applicazione. Valori più alti possono indicare perdite di memoria o utilizzo inefficiente della memoria[1].
5. Peak Heap Size: misura la quantità massima di memoria utilizzata dall'applicazione. Valori più alti possono indicare perdite di memoria o utilizzo inefficiente della memoria[1].
6. Conteggio thread: misura il numero di thread attivi nell'applicazione. Valori più alti possono indicare un maggiore utilizzo della memoria[1].
7. Stati dei thread: misura la distribuzione dei thread in diversi stati (ad esempio, in esecuzione, in sospensione, bloccato). Ciò può aiutare a identificare i problemi relativi alla memoria[1].
8. Gruppi di thread: misura il numero di gruppi di thread nell'applicazione. Valori più alti possono indicare un maggiore utilizzo della memoria[1].
9. Memoria sprecata: misura la quantità di memoria che non viene utilizzata in modo efficiente. Valori più alti possono indicare perdite di memoria o utilizzo inefficiente della memoria[1].
10. Conteggio oggetti: misura il numero totale di oggetti nell'applicazione. Valori più alti possono indicare perdite di memoria o utilizzo inefficiente della memoria[1].
11. Conteggio classi: misura il numero di classi nell'applicazione. Valori più alti possono indicare un maggiore utilizzo della memoria[1].
Tenendo traccia di questi parametri, puoi identificare i problemi relativi alla memoria nelle prime fasi del ciclo di vita dello sviluppo e ottimizzare l'utilizzo della memoria per garantire prestazioni efficienti dell'applicazione.
Citazioni:[1] https://blog.heaphero.io/2018/07/10/micrometrics-for-ci-cd-pipeline/
[2] https://www.linkedin.com/pulse/cicd-pipeline-metrics-palani-thiyagarajan
[3] https://thenewstack.io/using-dora-metrics-to-optimize-ci-pipelines/
[4] https://docs.gitlab.com/ee/user/analytics/ci_cd_analytics.html
[5] https://codilime.com/blog/continuous-monitoring-and-observability-in-devops/