From 080f10a1e03cd658cec51f9df032054fe67063e6 Mon Sep 17 00:00:00 2001 From: Chris Zerafa Date: Tue, 21 Jul 2026 11:29:25 -0400 Subject: [PATCH] Add telemetry framework - Add shared telemetry module - Add common telemetry helpers - Ignore Python cache files --- .gitignore | 2 ++ telemetry/__init__.py | 0 telemetry/common.py | 18 ++++++++++++++++++ 3 files changed, 20 insertions(+) create mode 100644 telemetry/__init__.py create mode 100644 telemetry/common.py diff --git a/.gitignore b/.gitignore index 78eaa89..d303b97 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,5 @@ *.backup *.backup-* config/mail-status.json +config/mail-status.json +telemetry/__pycache__/ diff --git a/telemetry/__init__.py b/telemetry/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/telemetry/common.py b/telemetry/common.py new file mode 100644 index 0000000..a3ba65b --- /dev/null +++ b/telemetry/common.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python3 + +from pathlib import Path +from datetime import datetime, timezone +import json + +def timestamp(): + return datetime.now(timezone.utc).isoformat() + +def write_json(path, payload): + path = Path(path) + path.parent.mkdir(parents=True, exist_ok=True) + + payload["generated_at"] = timestamp() + + tmp = path.with_suffix(".tmp") + tmp.write_text(json.dumps(payload, indent=2) + "\n") + tmp.replace(path)