Para monitorar o perfil de memória em pipelines de CI/CD, você deve acompanhar as seguintes métricas principais:
1. Rendimento da coleta de lixo: mede a quantidade de tempo gasto em atividades de coleta de lixo em comparação com o tempo total de execução. Um valor mais baixo indica melhor gerenciamento de memória[1].
2. Tempo médio de pausa na coleta de lixo: mede o tempo médio de pausa do aplicativo durante a coleta de lixo. Valores mais baixos indicam menos impacto no desempenho do aplicativo[1].
3. Tempo máximo de pausa na coleta de lixo: mede o tempo máximo que o aplicativo pausa durante a coleta de lixo. Valores mais baixos indicam menos impacto no desempenho do aplicativo[1].
4. Taxa de criação de objetos: mede a taxa na qual os objetos são criados pelo aplicativo. Valores mais altos podem indicar vazamentos de memória ou uso ineficiente de memória[1].
5. Tamanho máximo de heap: mede a quantidade máxima de memória usada pelo aplicativo. Valores mais altos podem indicar vazamentos de memória ou uso ineficiente de memória[1].
6. Contagem de threads: mede o número de threads ativos no aplicativo. Valores mais altos podem indicar aumento no uso de memória[1].
7. Estados de thread: mede a distribuição de threads em diferentes estados (por exemplo, em execução, em suspensão, bloqueado). Isso pode ajudar a identificar problemas relacionados à memória[1].
8. Grupos de threads: mede o número de grupos de threads no aplicativo. Valores mais altos podem indicar aumento no uso de memória[1].
9. Memória desperdiçada: mede a quantidade de memória que não está sendo usada de forma eficiente. Valores mais altos podem indicar vazamentos de memória ou uso ineficiente de memória[1].
10. Contagem de objetos: mede o número total de objetos no aplicativo. Valores mais altos podem indicar vazamentos de memória ou uso ineficiente de memória[1].
11. Contagem de turmas: mede o número de turmas no aplicativo. Valores mais altos podem indicar aumento no uso de memória[1].
Ao monitorar essas métricas, você pode identificar problemas relacionados à memória no início do ciclo de vida de desenvolvimento e otimizar o uso da memória para garantir um desempenho eficiente do aplicativo.
Citações:[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/