Contrato de evento
Campos que espera la consulta
| Campo | Tipo | Por que existe |
|---|---|---|
| timestamp_utc | Timestamp | Hora de transacción del terminal en UTC. |
| transaction_id | Utf8 | Identificador generado por la aplicación para una transacción lógica. |
| service | Utf8 | Aplicación o trabajador propietario de la transacción. |
| database_name | Utf8 | Nombre de la base de datos lógica aprobada. |
| status | Utf8 | comprometido o rolled_back. |
| error_type | Utf8 | Categoría de reversión controlada como punto muerto o serialization_failure. |
| duration_ms | Float64 | Duración de la transacción lógica de un extremo a otro. |
| account_id | Utf8 | Identificador de cliente o inquilino aprobado utilizado para el análisis de impacto. |
| environment | Utf8 | Entorno de implementación. |
Copiar la consulta
SELECT
service,
database_name,
COUNT(*) AS transactions,
SUM(CASE WHEN status = 'rolled_back' THEN 1 ELSE 0 END) AS rollbacks,
100.0 * SUM(CASE WHEN status = 'rolled_back' THEN 1 ELSE 0 END)
/ NULLIF(COUNT(*), 0) AS rollback_rate_pct,
COUNT(DISTINCT CASE
WHEN status = 'rolled_back' THEN account_id
ELSE NULL
END) AS affected_accounts,
AVG(duration_ms) AS average_duration_ms
FROM database_transaction_events
WHERE timestamp_utc >= now() - INTERVAL '7 days'
AND environment = 'production'
GROUP BY service, database_name
HAVING COUNT(*) >= 10
ORDER BY rollback_rate_pct DESC, transactions DESC;Esta consulta de solo lectura se planifica y ejecuta en una tabla escrita vacía con Apache DataFusion 45.2.0. El resultado de la muestra determinista es sintético y se revisa por separado; valide tipos de campos, umbrales y definiciones comerciales con sus propios datos. Lea la metodología de prueba.
Resultado de la consulta
Tasa de reversión de transacciones por servicio
Checkout tiene la tasa de reversión más alta y el mayor número de cuentas afectadas.
| service | database_name | transactions | rollbacks | rollback_rate_pct | affected_accounts | average_duration_ms |
|---|---|---|---|---|---|---|
| checkout-api | app_production | 12 | 3 | 25 | 3 | 290 |
| billing-worker | billing_production | 12 | 1 | 8,33 | 1 | 275 |
| catalog-api | catalog_production | 12 | 0 | 0 | 0 | 107,5 |
Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.
Reproducir el ejemplo
Descargar el accesorio público
El paquete JSON incluye el contrato de evento escrito, reproducible filas de entrada, SQL exacto, resultado esperado, notas de revisión y versión del motor. El CSV contiene el resultado mostrado.
Cómo funciona el SQL
- 1El numerador cuenta las transacciones revertidas del terminal, no todos los reintentos.
- 2Las cuentas afectadas añaden contexto al cliente sin cambiar el denominador de la transacción.
- 3Un error_type controlado debe examinarse por separado para distinguir los reintentos de serialización esperados de los defectos de la aplicación.
Casos extremos para decidir
- Una operación lógica puede reintentar varias transacciones. Mantenga un ID de flujo de trabajo si también necesita el resultado del usuario final.
- Las transacciones de solo lectura pueden tener una base diferente y deben segmentarse cuando sea relevante.
- No registre parámetros de declaración, cadenas de conexión ni mensajes de error sin restricciones.
Panel recomendado
- Barras: rollback_rate_pct por servicio
- Tendencia acumulada: confirmaciones y reversiones a lo largo del tiempo
- Tabla: revertir error_type por versión y recuento de cuentas afectadas
Guía de alerta
Alerte sobre un aumento sostenido de la tasa de reversión con un volumen de transacciones significativo y luego separe los errores de simultaneidad reintentables de las fallas finales.
Leer configuración de alertaPon la receta a trabajar
Instrumentación y guías relacionadas.
Continuar el análisis
Encuentre consultas lentas en bases de datos por huella digital
Clasifique las operaciones de bases de datos normalizadas por tasa de consultas lentas, duración promedio y peor duración observada sin almacenar SQL ni parámetros sin formato.
Receta abiertaMedir la saturación del grupo de conexiones de la base de datos
Mida la utilización promedio del grupo, las esperas de adquisición en cola, los tiempos de espera y la capacidad inactiva por servicio de aplicación.
Receta abiertaEncuentre esperas y bloqueos de bloqueo de bases de datos
Clasifique las huellas dactilares de operaciones de bases de datos bloqueadas por recuento de incidentes, duración de la espera, bloqueos no resueltos y puntos muertos detectados.
Receta abiertaEjecútelo en eventos reales.
Crea una tabla, adapta los campos y guarda el resultado.
Comience gratis, envíe eventos estructurados y utilice el resultado de la consulta como un gráfico, un widget de panel compartido o una entrada de alerta.