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 tramite 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 | STRING | Il nome della tabella contenente 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 di recente, pertanto questo timestamp rappresenta la partizione elaborata più 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 la sezione Righe non eliminabili. |
MIN_UNDELETABLE_TIMESTAMP | TIMESTAMP | Il timestamp più antico per le righe non eliminabili osservato durante l'ultimo ciclo di elaborazione. |
Le informazioni sui criteri di eliminazione vengono restituite per tabella per il 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
- L'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 criterio TTL.row_deletion_policy/undeletable_rows
è il numero di righe che corrispondono eliminazione di righe (GoogleSQL) oTTL 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.
Trovare l'ultima scansione riuscita
Puoi trovare l'ora dell'ultimo snapshot in cui Spanner ha completato una 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, la metrica row_deletion_policy/process_watermark_age
mostra informazioni simili, ma è espressa come differenza tra l'ora corrente e l'ora dell'ultima scansione. La metrica non è suddivisa per tabella, ma rappresenta la data e l'ora della scansione meno recenti di tutte le tabelle con TTL abilitato 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 su
processed_watermark_age
in modo da ricevere una notifica se supera le 72 ore.
Se processed_watermark_age
è precedente a 72 ore, è possibile che le attività con priorità più elevata impediscano 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.
Monitorare le righe eliminate
Per monitorare l'attività TTL nella tabella, crea un grafico della metrica row_deletion_policy/deleted_rows
. 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, al nuovo tentativo, l'azione TTL non può essere elaborata, Spanner salta la riga e la segnala nella metrica row_deletion_policy/undeletable_rows_count
.
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
In genere, un errore di eliminazione di righe è dovuto ad aggiornamenti a cascata di tabelle e indici interlacciati in modo che le dimensioni della transazione risultante superino i limiti di mutazione di Spanner. Puoi risolvere il problema aggiornando lo schema per aggiungere criteri TTL separati per le tabelle interlacciate.