From 657b3de8a926a46692c03e46c3b47097ff9dbcae Mon Sep 17 00:00:00 2001 From: Taddes Date: Fri, 15 May 2026 13:21:14 -0400 Subject: [PATCH] timing metrics and finally branch to fire off at success --- tools/tokenserver/purge_old_records.py | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/tools/tokenserver/purge_old_records.py b/tools/tokenserver/purge_old_records.py index a70e367a..ad7bf2d7 100644 --- a/tools/tokenserver/purge_old_records.py +++ b/tools/tokenserver/purge_old_records.py @@ -62,9 +62,16 @@ def purge_old_records( """ logger = logging.getLogger(LOGGER) logger.info("Purging old user records") + start = time.monotonic() + success = False try: database = Database() previous_uids = set() + if metrics: + metrics.gauge( + "purge.backlog.size", database.count_old_user_records(grace_period) + ) + previous_list = [] # Process batches of items, until we run out. while True: offset = random.randint(0, max_offset) @@ -89,6 +96,8 @@ def purge_old_records( f" to {uid_range[1] or 'End'}" ) logger.info(f"Fetched {len(rows)} rows at offset {offset}{range_msg}") + if metrics: + metrics.incr("purge.batch.fetched", value=len(rows)) counter = 0 for row in rows: try: @@ -185,15 +194,22 @@ def purge_old_records( logger.info("Reached max_records, exiting") if metrics: metrics.incr("max_records") + success = True return True if len(rows) < max_per_loop: break + logger.info("Finished purging old user records") + success = True + return True except Exception: logger.exception("Error while purging old user records") return False - else: - logger.info("Finished purging old user records") - return True + finally: + if metrics: + metrics.timing( + "purge.run.duration_ms", int((time.monotonic() - start) * 1000) + ) + metrics.incr("purge.run.success" if success else "purge.run.failure") def delete_service_data(