Friday, 11 April 2025

RPO 1

Filled under:

- type: host-command

  name: check_rpo

  command: |

    psql -t -A -F "," -c "

    SELECT round((redo_lsn - restart_lsn) / 1024 / 1024 / 1024, 2)

    FROM pg_control_checkpoint(), pg_replication_slots;"

  result: rpo_check_output

--------


JavaScript state:


yaml

Copy

Edit

- type: javascript

  name: validate_rpo

  script: |

    var rpoValues = rpo_check_output.stdout.trim().split("\n").map(parseFloat);


    if (rpoValues.every(val => val === 0)) {

      proceed("Replicas are in sync");

    } else {

      fail("Replication lag detected. gb_behind: " + rpoValues.join(", "));

    }



---


State 2 :

var rpoValues = rpo_check_output.stdout

  .trim()

  .split("\n")

  .map(v => parseFloat(v));


// Check if all replicas are in sync

if (rpoValues.every(val => val === 0)) {

  proceed("Replication is in sync");

} else {

  fail("Replication lag detected: gb_behind = " + rpoValues.join(", "));

}

0 comments:

Post a Comment