pt-heartbeat
Percona Toolkit Heartbeat
pt-heartbeat è uno strumento di Percona Toolkit progettato per misurare il lag di replica MySQL in modo diretto e affidabile. A differenza della metrica nativa Seconds_Behind_Master, che può restituire valori fuorvianti in presenza di errori di replica o di connessione interrotta, pt-heartbeat misura il ritardo reale osservando dati scritti sul master e letti sullo slave.
Come funziona #
Il tool opera in due modalità distinte, tipicamente avviate come processi separati:
# Sul master: scrive un timestamp in una tabella dedicata ogni N secondi
pt-heartbeat --host=master-host --user=repl --password=secret \
--database=percona --update --interval=1
# Sullo slave: legge la tabella e calcola il delta rispetto all'ora corrente
pt-heartbeat --host=slave-host --user=repl --password=secret \
--database=percona --monitor --master-server-id=1
La tabella heartbeat (creata automaticamente al primo avvio) contiene un timestamp aggiornato dal processo --update. Il processo --monitor sullo slave legge quel valore e calcola la differenza rispetto all’orario locale: il risultato è il lag effettivo in secondi, con precisione al centesimo.
Quando si usa #
pt-heartbeat è lo strumento di riferimento per l’alerting in produzione quando Seconds_Behind_Master non è sufficiente. I casi tipici sono:
- Replica interrotta:
Seconds_Behind_MasterrestituisceNULL, mentrept-heartbeatcontinua a mostrare il lag crescente. - Replica multi-source o con filtri: il calcolo nativo può essere impreciso; il timestamp scritto sul master non mente.
- Integrazione con sistemi di monitoraggio: l’output di
--monitorè parsabile da Nagios, Prometheus (via exporter) o qualsiasi script bash.
Il limite principale è la necessità di un processo attivo sul master: se il processo --update si ferma, il lag misurato cresce indefinitamente anche se la replica è sana.