Métricas y supervisión del TTL

En esta página, se analizan las métricas de tiempo de actividad (TTL) de Spanner. Para obtener más información, consulta Acerca del TTL.

Métricas

Spanner proporciona información sobre las actividades de TTL en un sistema que se puede leer con consultas en SQL y como métricas a las que se accede a través de Cloud Monitoring.

La tabla del sistema informa información de TTL por tabla para una base de datos, mientras que Cloud Monitoring informa métricas a nivel de base de datos.

Usa una consulta en SQL

Spanner proporciona una tabla integrada que realiza un seguimiento de la información relacionada a TTL. La tabla se llama SPANNER_SYS.ROW_DELETION_POLICIES y tiene la el siguiente esquema.

Nombre de la columna Tipo Descripción
TABLE_NAME STRING El nombre de la tabla que contiene esta política de TTL.
PROCESSED_WATERMARK TIMESTAMP A partir de este momento, esta política se ejecutó en todas las filas de la tabla. Es posible que algunas particiones de tabla se hayan procesado más recientemente, por lo que esta marca de tiempo representa la partición que se procesó menos recientemente. Por lo general, es de 72 horas.
UNDELETABLE_ROWS INT64 La cantidad de filas que la política de TTL no puede borrar. Consulta Filas que no se pueden borrar para obtener más detalles.
MIN_UNDELETABLE_TIMESTAMP TIMESTAMP La marca de tiempo más antigua de las filas que no se pueden borrar que se observó durante el último ciclo de procesamiento.

La información de la política de eliminación se muestra por tabla para tu base de datos.

Puedes consultar estos datos con una consulta en SQL similar a la siguiente:

SELECT TABLE_NAME, UNDELETABLE_ROWS
FROM SPANNER_SYS.ROW_DELETION_POLICIES
WHERE UNDELETABLE_ROWS > 0

Solo se puede acceder a las tablas SPANNER_SYS a través de las interfaces de SQL. por ejemplo:

  • La página de Spanner Studio en la consola de Google Cloud
  • El comando gcloud spanner databases execute-sql
  • La API de executeQuery

Otros métodos de lectura única que proporciona Spanner no son compatibles SPANNER_SYS.

Use Cloud Monitoring

Spanner proporciona las siguientes métricas para supervisar la actividad de TTL en a nivel de base de datos:

  • row_deletion_policy/deleted_rows es la cantidad de filas que borró el TTL. .
  • row_deletion_policy/undeletable_rows es el número de filas que coinciden con eliminación de filas (GoogleSQL) o TTL INTERVAL(PostgreSQL) pero que no se puede borrar. Por lo general, esto se debe a que la fila tenía muchas filas secundarias, lo que provoca que la acción supere la capacidad límite de transacciones.
  • row_deletion_policy/processed_watermark_age es el tiempo entre hoy y las marca de tiempo de lectura usada por el último ciclo exitoso (con o sin no borrados filas).

Estas métricas están disponibles a través de Cloud Monitoring y la consola de Google Cloud.

Supervisar

También puedes supervisar otras actividades de TTL.

Buscar el último análisis exitoso

Puedes encontrar la hora de la última instantánea a la que Spanner completó un análisis de la tabla en busca de filas vencidas. Para hacerlo como una consulta en SQL:

SELECT PROCESSED_WATERMARK
FROM SPANNER_SYS.ROW_DELETION_POLICIES
WHERE TABLE_NAME = $name

Como alternativa, la métrica row_deletion_policy/process_watermark_age muestra información similar, pero se expresa como la diferencia entre la y la hora del último análisis. La métrica no se desglosa por tabla, pero representa el tiempo de análisis más antiguo de cualquier tabla habilitada para TTL en la base de datos.

Las filas que coinciden con una política de TTL se suelen borrar en un plazo de 72 horas fecha de vencimiento. Puedes configurar una alerta en processed_watermark_age para que se te notifique si se superan las 72 horas.

Si processed_watermark_age tiene más de 72 horas, puede indicar lo siguiente: tareas con mayor prioridad impiden que se ejecute el TTL. En este caso, recomendamos verificar el uso de CPU y agregar más capacidad de procesamiento si es necesario. Si el uso de CPU es dentro del rango recomendado, comprueba la generación de hotspots con Key Visualizer.

Supervisa las filas borradas

Para supervisar la actividad del TTL en tu tabla, grafica el row_deletion_policy/deleted_rows métrica. Esta métrica muestra la cantidad de filas eliminadas con el tiempo.

Si no hay datos vencidos, esta métrica estará vacía.

Supervisa las filas que no se pueden borrar

Cuando el TTL no puede borrar una fila, Spanner vuelve a intentarlo automáticamente. Si, luego de reintentarlo, la acción de TTL no se puede procesar, Spanner omite la fila y la informa en el row_deletion_policy/undeletable_rows_count métrica

Puedes configurar una alerta en la row_deletion_policy/undeletable_rows_count para recibir una notificación de un valor distinto de cero de los datos.

Si encuentras un recuento distinto de cero, puedes crear una consulta para desglosar los recuento por tabla:

SELECT TABLE_NAME, UNDELETABLE_ROWS, MIN_UNDELETABLE_TIMESTAMP
FROM SPANNER_SYS.ROW_DELETION_POLICIES
WHERE UNDELETABLE_ROWS > 0

Para buscar el contenido de la fila que no se puede borrar, haz lo siguiente:

SELECT *
FROM $TABLE_NAME
WHERE $EXPIRE_COL >= $MIN_UNDELETABLE_TIMESTAMP

Por lo general, un error en la eliminación de una fila se debe a actualizaciones en cascada para índices y tablas intercaladas de modo que el tamaño de la transacción resultante supere Límites de mutación de Spanner Puedes resolver el si actualizas tu esquema para agregar cuentas Políticas de TTL en tablas intercaladas.