📊 Alpura Back Java Lib Statistics v1.3
Librería común para implementar estadísticas en microservicios Java desarrollados con Spring Boot (com.alpura:back-java-lib-common-statistics:1.3). Automatiza el registro de eventos críticos y métricas para KPIs, integrándose con Pub/Sub y ejecutándose de forma asíncrona.
📦 Requisitos
- Java JDK: 21 (Temurin LTS)
- Spring Boot: 3.4.4 o superior
- Base de datos: PostgreSQL
- Alpura BOM: 1.0.4
⚙️ Instalación
Opción A: Heredando versión desde Alpura BOM 1.0.4 (RECOMENDADO)
<dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alpura</groupId>
<artifactId>bom</artifactId>
<version>1.0.4</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<dependency>
<groupId>com.alpura</groupId>
<artifactId>back-java-lib-common-statistics</artifactId>
</dependency>
</dependencies>
Opción B: Uso directo (Standalone)
<dependency>
<groupId>com.alpura</groupId>
<artifactId>back-java-lib-common-statistics</artifactId>
<version>1.3</version>
</dependency>
Gradle:
implementation 'com.alpura:back-java-lib-common-statistics:1.3'
🛠️ Configuración (YAML)
statistic:
config:
logStatistic: true # Habilita logging en consola de las métricas capturadas
🧭 Configuración del Escaneo de Componentes
Asegúrate de incluir los siguientes paquetes en @ComponentScan:
@SpringBootApplication
@ComponentScan({
"com.alpura.statistics",
"com.alpura.queue",
"com.alpura.utilities"
})
public class ExApplication {
public static void main(String[] args) {
SpringApplication.run(ExApplication.class, args);
}
}
🧩 Uso de la Anotación @IStatistics
Las estadísticas se activan automáticamente al anotar métodos con @IStatistics.
📌 Requisitos del método anotado:
- Recibir un parámetro de tipo
RequestVO<?>. - Retornar
SingleResponseVO<?>,ResponseVO<?>o un objeto de datos (el aspectoSmartLoggerStatisticAspectenvolverá automáticamente objetos no-null enSingleResponseVOsi no vienen envueltos).
@IStatistics
public SingleResponseVO<String> myMethod(RequestVO<String> request) {
// Lógica del servicio
return SingleResponseVO.ok("OK");
}
⚡ Flujo de Ejecución
Una vez ejecutado el método:
- Si la ejecución es exitosa, los datos se envían de forma asíncrona al tópico
dev.estadisticsa través de Pub/Sub para su posterior persistencia y procesamiento de KPIs.
🧾 Estructura de Datos
📄 Entidad: StatisticsLog
{
"userId": "string", // ID del usuario que inició la acción
"appSource": "string", // Aplicación de la cual se extraen las estadísticas
"requestVO": {}, // Objeto con los datos de entrada de la solicitud
"timestamp": "datetime", // Fecha y hora en que ocurrió el evento
"userEmail": "string", // Email del usuario que ejecuta el método
"deviceType": "string", // Tipo de dispositivo: web, mobile, etc.
"httpMethod": "string", // Verbo HTTP: GET, POST, PUT, DELETE
"methodName": "string", // Nombre del método interceptado
"responseVO": {}, // Objeto con la respuesta del proceso
"elapsedTime": 150, // Tiempo transcurrido en milisegundos
"methodReference": "string" // Firma del método ejecutado
}