Metriche e monitoraggio del TTL

Questa pagina illustra le metriche di durata (TTL) di Spanner. Per saperne di più, consulta la sezione Informazioni sul TTL.

Metriche

Spanner fornisce informazioni sulle attività TTL in un sistema che può essere letta con query SQL e come metriche accessibili Cloud Monitoring.

La tabella di sistema riporta le informazioni sul TTL per tabella per un database, Cloud Monitoring genera report sulle metriche a livello di database.

Utilizza una query SQL

Spanner fornisce una tabella integrata che monitora le informazioni relative a TTL. La tabella è denominata SPANNER_SYS.ROW_DELETION_POLICIES e ha la seguendo lo schema.

Nome colonna Tipo Descrizione
TABLE_NAME STRINGA Il nome della tabella che contiene questo criterio TTL.
PROCESSED_WATERMARK TIMESTAMP Questo criterio è stato eseguito su tutte le righe della tabella al momento. Alcune partizioni della tabella potrebbero essere state elaborate più di recente, quindi il timestamp rappresenta la partizione elaborata meno di recente. In genere, questo avviene entro 72 ore.
UNDELETABLE_ROWS INT64 Il numero di righe che non possono essere eliminate dal criterio TTL. Per ulteriori dettagli, consulta Righe non eliminabili.
MIN_UNDELETABLE_TIMESTAMP TIMESTAMP Il timestamp meno recente per le righe non eliminabili osservato durante l'ultimo ciclo di elaborazione.

Le informazioni sui criteri di eliminazione vengono restituite per ogni tabella relativa al database.

Puoi eseguire query su questi dati con una query SQL simile alla seguente:

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

Le tabelle SPANNER_SYS sono accessibili solo tramite le interfacce SQL. Ad esempio:

  • La pagina Spanner Studio nella console Google Cloud
  • Il comando gcloud spanner databases execute-sql
  • API executeQuery

Gli altri metodi di lettura singoli forniti da Spanner non supportano SPANNER_SYS.

Usa Cloud Monitoring

Spanner fornisce le seguenti metriche per monitorare l'attività TTL durante a livello di database:

  • row_deletion_policy/deleted_rows è il numero di righe eliminate dal TTL .
  • row_deletion_policy/undeletable_rows è il numero di righe che corrispondono eliminazione di righe (GoogleSQL) o TTL INTERVAL(PostgreSQL) ma non può essere eliminata. In genere questo accade perché la riga aveva molte righe figlio, causando il superamento della capacità limite di transazioni.
  • row_deletion_policy/processed_watermark_age è l'intervallo di tempo che intercorre tra oggi e le timestamp di lettura utilizzato dall'ultimo ciclo riuscito (con o senza non eliminabili righe).

Queste metriche sono disponibili tramite Cloud Monitoring e la console Google Cloud.

Monitoraggio

Puoi anche monitorare altre attività TTL.

Trova l'ultima scansione riuscita

Puoi trovare l'ora dell'ultimo snapshot in cui Spanner ha completato un scansione della tabella alla ricerca di righe scadute. Per farlo come query SQL:

SELECT PROCESSED_WATERMARK
FROM SPANNER_SYS.ROW_DELETION_POLICIES
WHERE TABLE_NAME = $name

In alternativa, viene visualizzata la metrica row_deletion_policy/process_watermark_age informazioni simili, ma è espressa come differenza tra i dati ora e l'ora dell'ultima scansione. La metrica non è suddivisa per tabella, ma rappresenta il tempo di scansione meno recente di qualsiasi tabella abilitata per TTL nel database.

Le righe che corrispondono a un criterio TTL vengono in genere eliminate entro 72 ore dal relativo data di scadenza. Puoi impostare un avviso per processed_watermark_age in modo da ricevere una notifica se superano le 72 ore.

Se processed_watermark_age ha più di 72 ore, potrebbe indicare che e le attività con priorità più alta impediscono l'esecuzione del TTL. In questo caso, di controllare l'utilizzo della CPU aggiungendo ulteriore capacità di calcolo se necessario. Se l'utilizzo della CPU è compreso nell'intervallo consigliato, verifica l'eventuale presenza di hotspot usando Key Visualizer.

Monitora le righe eliminate

Per monitorare l'attività TTL nella tabella, traccia un grafico del row_deletion_policy/deleted_rows metrica. Questa metrica mostra il numero di righe eliminate nel tempo.

Se nessun dato è scaduto, questa metrica è vuota.

Monitora le righe non eliminabili

Quando il TTL non è in grado di eliminare una riga, Spanner riprova automaticamente. Se, dopo un nuovo tentativo, l'azione TTL non può essere elaborata, Spanner salta la riga e la registra nella row_deletion_policy/undeletable_rows_count o una metrica di valutazione.

Puoi impostare un avviso nella row_deletion_policy/undeletable_rows_count per ricevere una notifica relativa a un valore diverso da zero conteggio.

Se trovi un conteggio diverso da zero, puoi creare una query per scomporre conteggio per tabella:

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

Per cercare i contenuti della riga non eliminabile:

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

Più comunemente, un errore di eliminazione di una riga è dovuto ad aggiornamenti a cascata tabelle e indici con interleaving, in modo che le dimensioni delle transazioni risultanti superino Limiti di mutazione di Spanner. Puoi risolvere il problema aggiorna lo schema per aggiungere Criteri TTL nelle tabelle con interleaving.