En esta página, se analizan las métricas de tiempo de actividad (TTL) de Spanner. Para obtener más información, consulta Acerca de TTL.
Métricas
Spanner proporciona información sobre las actividades de TTL en una tabla del sistema que se puede leer con consultas de SQL y como métricas a las que se accede a través de Cloud Monitoring.
La tabla del sistema informa la información de TTL por tabla para una base de datos, mientras que Cloud Monitoring informa las métricas a nivel de la base de datos.
Usa una consulta en SQL
Spanner proporciona una tabla integrada que realiza un seguimiento de la información relacionada con el TTL. La tabla se llama SPANNER_SYS.ROW_DELETION_POLICIES
y tiene el siguiente esquema:
Nombre de la columna | Tipo | Descripción |
---|---|---|
TABLE_NAME | STRING | Es el nombre de la tabla que contiene esta política de TTL. |
PROCESSED_WATERMARK | TIMESTAMP | Esta política se ejecutó en todas las filas de la tabla en este momento. Es posible que algunas particiones de la tabla se hayan procesado más recientemente, por lo que esta marca de tiempo representa la partición que se procesó más atrás. Por lo general, se realiza en un plazo de 72 horas. |
UNDELETABLE_ROWS | INT64 | Es la cantidad de filas que la política de TTL no puede borrar. Consulta Filas que no se pueden borrar para obtener más información. |
MIN_UNDELETABLE_TIMESTAMP | TIMESTAMP | Es 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 de 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 interfaces de SQL, por ejemplo:
- La página 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 con SPANNER_SYS
.
Use Cloud Monitoring
Spanner proporciona las siguientes métricas para supervisar la actividad de TTL a nivel de la base de datos:
row_deletion_policy/deleted_rows
es la cantidad de filas que borró la política de TTL.row_deletion_policy/undeletable_rows
es la cantidad de filas que coinciden con la instrucción de eliminación de filas (GoogleSQL) oTTL INTERVAL
(PostgreSQL), pero que no se pueden borrar. Por lo general, esto se debe a que la fila tenía demasiadas filas secundarias, lo que provocó que la acción excediera el límite de transacciones de Spanner.row_deletion_policy/processed_watermark_age
es el tiempo entre el momento actual y la marca de tiempo de lectura que usó el último ciclo correcto (con o sin filas que no se pueden borrar).
Estas métricas están disponibles a través de Cloud Monitoring y la consola deGoogle Cloud .
Supervisar
También puedes supervisar otras actividades de TTL.
Cómo encontrar el último análisis exitoso
Puedes encontrar la última hora de instantánea en la que Spanner completó un análisis de la tabla en busca de filas vencidas. Para hacerlo como una consulta en SQL, sigue estos pasos:
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 hora actual 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.
Por lo general, las filas que coinciden con una política de TTL se borran en un plazo de 72 horas después de su fecha de vencimiento. Puedes configurar una alerta en processed_watermark_age
para que se te notifique si supera las 72 horas.
Si processed_watermark_age
tiene más de 72 horas, es posible que las tareas de prioridad más alta impidan que se ejecute el TTL. En este caso, te recomendamos que verifiques el uso de la CPU y que agregues más capacidad de procesamiento si es necesario. Si el uso de la CPU está dentro del rango recomendado, verifica si hay hotspots con Key Visualizer.
Supervisa las filas borradas
Para supervisar la actividad de TTL en tu tabla, grafica la métrica row_deletion_policy/deleted_rows
. Esta métrica muestra la cantidad de filas borradas con el tiempo.
Si no vencieron datos, 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, después de reintentarlo, no se puede procesar la acción de TTL, Spanner omite la fila y la informa en la métrica row_deletion_policy/undeletable_rows_count
.
Puedes establecer una alerta en row_deletion_policy/undeletable_rows_count
para que se te notifique un recuento distinto de cero.
Si encuentras un recuento distinto de cero, puedes crear una consulta para desglosar el 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, una falla de eliminación de filas se debe a actualizaciones en cascada de tablas y índices intercalados, de modo que el tamaño de la transacción resultante supera los límites de mutación de Spanner. Para resolver el problema, actualiza el esquema para agregar políticas de TTL separadas en tablas intercaladas.