Zuvio Atlas job/cron-run monitoring SDK — report start/finish/fail of scheduled jobs.
Project description
zuvio-atlas — Python job monitoring SDK
Report your cron scripts, Celery tasks, and Airflow jobs to Zuvio Atlas. Wrap a function and Atlas records each run — start, finish/fail, duration, and the exception on failure — then alerts you on failed, overrun, or missed runs.
Python 3.8+, standard library only (no dependencies).
Install
pip install zuvio-atlas
Use
import zuvio_atlas as atlas
# The slug comes from the monitor's page (Uptime → Cron Jobs) in the dashboard.
@atlas.job("abc123")
def run_backup():
...
As a context manager:
with atlas.monitor("abc123"):
run_backup()
Manual control:
run_id = atlas.start("abc123")
try:
do_work()
atlas.finish("abc123", run_id=run_id, metrics={"rows": 1200})
except Exception as e:
atlas.fail("abc123", run_id=run_id, message=str(e))
raise
API-key mode (monitoring-as-code)
Set a pm_live_ key (Pro+) to provision monitors from code and use a human key
(auto-created on first ping) instead of a dashboard slug:
import os, zuvio_atlas as atlas
atlas.configure(api_key=os.environ["ZUVIO_ATLAS_KEY"])
atlas.put("nightly-backup", cron_expression="0 3 * * *") # idempotent
@atlas.job("nightly-backup")
def run_backup():
...
Without an api key, the identifier is a per-monitor slug on the unauthenticated capability URL.
Heartbeats
atlas.heartbeat("important-heartbeat") # alive
atlas.heartbeat("important-heartbeat", state="fail", message="disk full")
With an api key the id is a human key (auto-created on first ping); otherwise a
slug. atlas.put_heartbeat("key", interval=60) provisions one from code.
Config
atlas.configure(base_url="https://atlas.zuviosystems.com", api_key="pm_live_…", timeout=10.0)
# or set the ZUVIO_ATLAS_URL / ZUVIO_ATLAS_KEY environment variables
Pings are best-effort — a monitoring outage never raises into your job, and your function's return value / exception is always preserved.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zuvio_atlas-0.1.0.tar.gz.
File metadata
- Download URL: zuvio_atlas-0.1.0.tar.gz
- Upload date:
- Size: 4.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ca99bfa803ec0aabc3325ca893c339c2814772603206448c31f6170f214295fa
|
|
| MD5 |
3a174e729b97ee1e738da4c6fc41b619
|
|
| BLAKE2b-256 |
3e72cf4208842a36890987be3bc05539dca2d305e2e8d79aa89d1d3f8990b56e
|
File details
Details for the file zuvio_atlas-0.1.0-py3-none-any.whl.
File metadata
- Download URL: zuvio_atlas-0.1.0-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d6da314b9c35854da7cc71669d258886baafae2f83a63e6964c2502b9f85bc8
|
|
| MD5 |
7da87bb22473f9a8bc9b41abafd705c9
|
|
| BLAKE2b-256 |
12f31c58e3631c67864517883a9c081388ad7a45bbf2f72be4441a919880c822
|