Saltar al contenido
Telemetry
Fiabilidad de la base de datos receta SQL

Medir la replicación de la base de datos y el retraso de CDC

Compare los consumidores de réplicas y captura de datos modificados por retraso promedio, peor retraso, bytes retrasados y tasa de muestreo obsoleto.

Principiantedatabase_replication_samplesRevisado 2026-07-28Probado con Apache DataFusion 45.2.0

Revisado por el equipo de producto Telemetry en . Compatibilidad con SQL, contrato de eventos, resultados sintéticos y advertencias operativas. Revisar los estándares y la propiedad

Pregunta respondida

¿Qué réplicas o consumidores de CDC se están quedando atrás con respecto a su base de datos de origen?

La replicación es saludable sólo cuando los consumidores intermedios se mantienen lo suficientemente actualizados para su propósito. Medir tanto los segundos como los bytes retrasados ​​permite distinguir a un consumidor estancado y silencioso de uno ocupado que procesa un flujo más grande.

Contrato de evento

Campos que espera la consulta

CampoTipoPor que existe
timestamp_utcTimestampHora de muestra de replicación en UTC.
consumer_nameUtf8Réplica estable, conector o nombre de consumidor de nivel inferior.
source_typeUtf8postgres_replica, cdc_pipeline u otro tipo de fuente controlada.
regionUtf8Región de implementación aprobada.
lag_secondsFloat64Retraso de tiempo observado con respecto a la fuente.
replay_bytes_behindInt64Bytes aproximados en espera de ser reproducidos o consumidos.
statusUtf8saludable, rezagado, estancado o no disponible.
environmentUtf8Entorno de implementación.
DataFusionSQL

Copiar la consulta

sql
SELECT
  consumer_name,
  source_type,
  region,
  COUNT(*) AS samples,
  AVG(lag_seconds) AS average_lag_seconds,
  MAX(lag_seconds) AS maximum_lag_seconds,
  MAX(replay_bytes_behind) AS maximum_bytes_behind,
  SUM(CASE WHEN lag_seconds > 30 THEN 1 ELSE 0 END) AS stale_samples,
  100.0 * SUM(CASE WHEN lag_seconds > 30 THEN 1 ELSE 0 END)
    / NULLIF(COUNT(*), 0) AS stale_sample_rate_pct
FROM database_replication_samples
WHERE timestamp_utc >= now() - INTERVAL '24 hours'
  AND environment = 'production'
GROUP BY consumer_name, source_type, region
HAVING COUNT(*) >= 10
ORDER BY maximum_lag_seconds 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

Replicación máxima o retraso CDC

La réplica de la región occidental supera el umbral de frescura ilustrativo de treinta segundos en dos muestras.

consumer_namesource_typeregionsamplesaverage_lag_secondsmaximum_lag_secondsmaximum_bytes_behindstale_samplesstale_sample_rate_pct
replica-us-westpostgres_replicaus-west1214,584244.040.192216,67
billing-cdccdc_pipelineus-east12366.291.45600

Salida de ejemplo sintético. Ejecute la consulta con su propio esquema de eventos y umbrales antes de utilizarla para decisiones operativas.

Maximum replication or CDC lag: gráfico estático de valores sintéticos de maximum_lag_seconds del resultado del ejemplo Measure Database Replication and CDC Lag
SVG indexable de la salida del ejemplo determinista. Descárguelo para ver un artículo, un runbook o una revisión de diseño con atribución.

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

  1. 1El retraso promedio describe el estado normal, mientras que el retraso máximo preserva paradas breves pero con consecuencias.
  2. 2Es más fácil alertar sobre una tasa de muestra obsoleta que sobre un máximo aislado.
  3. 3Los bytes detrás proporcionan un contexto de carga de trabajo porque el mismo retraso puede representar cantidades muy diferentes de trabajo de reproducción.

Casos extremos para decidir

  • Los campos de retraso de la base de datos pueden significar escritura, vaciado, reproducción o retraso del conector. Nombra el límite medido.
  • Una fuente silenciosa puede informar bytes bajos detrás sin dejar de estar obsoleta; Mantenga tanto el tiempo como el volumen.
  • Utilice un objetivo de actualización específico de la carga de trabajo en lugar de un umbral global de treinta segundos.

Panel recomendado

  • Barras: maximum_lag_seconds por consumidor
  • Tendencia: lag_seconds y replay_bytes_behind
  • Tabla: consumidores más recientes rezagados o no disponibles

Guía de alerta

Alerta cuando un consumidor excede su objetivo de frescura documentado para muestras consecutivas o deja de informar por completo.

Leer configuración de alerta

Pon la receta a trabajar

Instrumentación y guías relacionadas.

Continuar el análisis

Ejecú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.

Obtén una clave API