Una solución integral y unificada para la recolección, almacenamiento y visualización de métricas críticas de Jenkins, SonarQube, Jira, ArgoCD y mas . Este proyecto optimiza la infraestructura mediante el uso de contenedores compartidos para base de datos y visualización, facilitando el monitoreo de la salud del ciclo de vida de desarrollo de software (SDLC).
- Centralización Total: Monitoreo de Jenkins, SonarQube, Jira, ArgoCD, Argo Rollouts y Git (DORA) en un solo ecosistema.
- Notificaciones Proativas: Sistema de alertas autónomo que notifica fallos vía Slack/Discord.
- Infraestructura Eficiente: Uso de una única instancia de PostgreSQL y Grafana para múltiples fuentes de datos.
- Inicialización Auto-Suficiente: Scripts SQL automáticos que crean bases de datos, tablas y permisos al arrancar.
- Dashboards "Out-of-the-Box": Paneles de Grafana pre-configurados para visualización inmediata.
- Gestión de Retención: Limpieza automática de datos antiguos (configurable en días) para mantener el rendimiento.
- Dual-Deployment: Soporte nativo y optimizado tanto para Docker Compose como para Kubernetes.
- Backend: Python 3.11 (Exporters personalizados).
- Database: PostgreSQL 15 (Alpine based).
- Visualization: Grafana 10.
- Orchestration: Docker Compose & Kubernetes (Kustomize ready).
.
├── Metrics_Collector-docker/ # Configuración para Docker Compose
│ ├── .env.example # Variables de entorno de referencia
│ ├── docker-compose.yml # Orquestación de todos los servicios
│ ├── exporters/ # Fuente de los recolectores (Python 3.11)
│ │ ├── argocd/ # Recolector de Apps ArgoCD
│ │ ├── argorollouts/ # Recolector de Canary Rollouts
│ │ ├── git/ # Recolector DORA (GitHub/GitLab)
│ │ ├── jenkins/ # Recolector de Jobs y Builds
│ │ ├── jira/ # Recolector de Tickets y Sprints
│ │ └── sonarqube/ # Recolector de Calidad de Código
│ ├── grafana/ # Visualización y Provisioning
│ │ ├── dashboards/ # Definiciones JSON de dashboards
│ │ └── provisioning/ # Configuración automática de Grafana
│ └── postgres/ # Persistencia de Datos
│ └── init/ # Scripts SQL de inicialización (00-07)
├── Metrics_Collector-kubernetes/ # Manifiestos para K8s (Kustomize)
│ ├── base/ # Infraestructura base (DB, Grafana)
│ └── [collector]/ # Manifiestos por cada servicio
├── ARCHITECTURE.md # Diagramas y flujo de datos
└── README.md # Esta guía
-
Configura el entorno:
cd Metrics_Collector-docker cp .env.example .envEdita el archivo
.envcon las URLs y Tokens de tus servidores Jenkins y SonarQube. -
Inicia los servicios:
docker-compose up -d --build
-
Acceso:
- Grafana:
http://localhost:3000(Usuario/Pass definidos en.env). - Dashboard Jira:
http://localhost:3000/d/jira-overview - Postgres: Accesible internamente en el puerto
5432.
- Grafana:
-
Desplegar Infraestructura Base:
kubectl apply -f Metrics_Collector-kubernetes/base/
-
Configurar Secretos: Completa los archivos en
Metrics_Collector-kubernetes/jenkins/secretsyMetrics_Collector-kubernetes/sonarqube/secrets. -
Desplegar Colectores:
# Desplegar Jenkins Collector kubectl apply -k Metrics_Collector-kubernetes/jenkins/ # Desplegar SonarQube Collector kubectl apply -k Metrics_Collector-kubernetes/sonarqube/ # Desplegar Jira Collector kubectl apply -k Metrics_Collector-kubernetes/jira/
| Variable | Descripción | Default |
|---|---|---|
JENKINS_POLL_INTERVAL |
Frecuencia de escaneo de Jenkins (segundos) | 60 |
SONARQUBE_POLL_INTERVAL |
Frecuencia de escaneo de SonarQube (segundos) | 3600 |
DATA_RETENTION_DAYS |
Días que se conservan las métricas históricas | 365 |
POSTGRES_DB |
Base de datos principal de configuración | metrics_main |
Para verificar la salud de los colectores:
docker logs jenkins-metrics-collector -f
docker logs metrics-notifier -fEste proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
Uma solução integral e unificada para coleta, armazenamento e visualização de métricas críticas de Jenkins, SonarQube, Jira, ArgoCD e mais. Este projeto otimiza a infraestrutura através do uso de contêineres compartilhados para banco de dados e visualização, facilitando o monitoramento da saúde do ciclo de vida de desenvolvimento de software (SDLC).
- Centralização Total: Monitoramento de Jenkins, SonarQube, Jira, ArgoCD, Argo Rollouts e Git (DORA) em um único ecossistema.
- Notificações Proativas: Sistema de alertas autônomo que notifica falhas via Slack/Discord.
- Infraestrutura Eficiente: Uso de uma única instância de PostgreSQL e Grafana para múltiplas fontes de dados.
- Inicialização Autossuficiente: Scripts SQL automáticos que criam bancos de dados, tabelas e permissões ao iniciar.
- Dashboards "Out-of-the-Box": Painéis do Grafana pré-configurados para visualização imediata.
- Gestão de Retenção: Limpeza automática de dados antigos (configurável em dias) para manter o desempenho.
- Dual-Deployment: Suporte nativo e otimizado tanto para Docker Compose quanto para Kubernetes.
- Backend: Python 3.11 (Exporters personalizados).
- Database: PostgreSQL 15 (Baseado em Alpine).
- Visualization: Grafana 10.
- Orchestration: Docker Compose & Kubernetes (Pronto para Kustomize).
.
├── Metrics_Collector-docker/ # Configuração para Docker Compose
│ ├── .env.example # Variáveis de ambiente de referência
│ ├── docker-compose.yml # Orquestração de todos os serviços
│ ├── exporters/ # Código fonte dos coletores (Python 3.11)
│ │ ├── argocd/ # Coletor de Apps ArgoCD
│ │ ├── argorollouts/ # Coletor de Canary Rollouts
│ │ ├── git/ # Coletor DORA (GitHub/GitLab)
│ │ ├── jenkins/ # Coletor de Jobs y Builds
│ │ ├── jira/ # Coletor de Tickets e Sprints
│ │ └── sonarqube/ # Coletor de Qualidade de Código
│ ├── grafana/ # Visualização e Provisionamento
│ │ ├── dashboards/ # Definições JSON de dashboards
│ │ └── provisioning/ # Configuração automática do Grafana
│ └── postgres/ # Persistência de Dados
│ └── init/ # Scripts SQL de inicialização (00-07)
├── Metrics_Collector-kubernetes/ # Manifestos para K8s (Kustomize)
│ ├── base/ # Infraestrutura base (DB, Grafana)
│ └── [collector]/ # Manifestos por cada serviço
├── ARCHITECTURE.md # Diagramas e fluxo de dados
└── README.md # Guia Multilíngue
-
Configure o ambiente:
cd Metrics_Collector-docker cp .env.example .envEdite o arquivo
.envcom as URLs e Tokens dos seus servidores Jenkins e SonarQube. -
Inicie os serviços:
docker-compose up -d --build
-
Acesso:
- Grafana:
http://localhost:3000(Usuário/Senha definidos no.env). - Dashboard Jira:
http://localhost:3000/d/jira-overview - Postgres: Acessível internamente na porta
5432.
- Grafana:
-
Implantar Infraestrutura Base:
kubectl apply -f Metrics_Collector-kubernetes/base/
-
Configurar Segredos: Preencha os arquivos em
Metrics_Collector-kubernetes/jenkins/secretseMetrics_Collector-kubernetes/sonarqube/secrets. -
Implantar Coletores:
# Implantar Jenkins Collector kubectl apply -k Metrics_Collector-kubernetes/jenkins/ # Implantar SonarQube Collector kubectl apply -k Metrics_Collector-kubernetes/sonarqube/ # Implantar Jira Collector kubectl apply -k Metrics_Collector-kubernetes/jira/
| Variável | Descrição | Padrão |
|---|---|---|
JENKINS_POLL_INTERVAL |
Frequência de varredura do Jenkins (segundos) | 60 |
SONARQUBE_POLL_INTERVAL |
Frequência de varredura do SonarQube (segundos) | 3600 |
DATA_RETENTION_DAYS |
Dias que as métricas históricas são mantidas | 365 |
POSTGRES_DB |
Banco de dados principal de configuração | metrics_main |
Para verificar a saúde dos coletores:
docker logs jenkins-metrics-collector -f
docker logs metrics-notifier -fEste projeto está sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.