Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zuvio_atlas-0.1.0.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zuvio_atlas-0.1.0-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

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

Hashes for zuvio_atlas-0.1.0.tar.gz
Algorithm Hash digest
SHA256 ca99bfa803ec0aabc3325ca893c339c2814772603206448c31f6170f214295fa
MD5 3a174e729b97ee1e738da4c6fc41b619
BLAKE2b-256 3e72cf4208842a36890987be3bc05539dca2d305e2e8d79aa89d1d3f8990b56e

See more details on using hashes here.

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

Hashes for zuvio_atlas-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 5d6da314b9c35854da7cc71669d258886baafae2f83a63e6964c2502b9f85bc8
MD5 7da87bb22473f9a8bc9b41abafd705c9
BLAKE2b-256 12f31c58e3631c67864517883a9c081388ad7a45bbf2f72be4441a919880c822

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page