A lightweight monitoring and heartbeat client for Seer API
Project description
SeerPy
SeerPy is the official Python client for the Seer Monitoring API by Ansr Studio. It helps you monitor jobs, capture logs, record heartbeats, and automatically report execution results to your Seer dashboard.
🚀 Installation
pip install seerpy
🔑 Getting Started
1. Import and initialize
from seerpy import Seer
# Initialize with your Seer API key
seer = Seer(apiKey="YOUR_SEER_API_KEY")
2. Monitor jobs
Use the monitor() context manager to automatically track job execution time, status, and logs.
with seer.monitor("daily_etl_job", capture_logs=True, metadata={"source": "data-lake"}):
print("Running ETL job...")
# Your job logic here
raise Exception("Simulated error") # This will be logged and marked as failed
When you run this, Seer automatically captures:
- Start and end timestamps
- Job status (running, success, or failed)
- Logs (if
capture_logs=True) - Error traceback (if any)
💓 Heartbeat Monitoring
Send regular heartbeats from long-running processes to confirm they’re still active.
seer.heartbeat("worker_process", metadata={"pid": 1234, "status": "active"})
This helps detect downtime or stalled jobs in real time.
⚙️ Error Handling & Offline Support
If the Seer API is temporarily unavailable, payloads are safely stored locally using helpers like payloads.save_failed_payload. You can later replay them manually:
from payloads import replay_failed_payloads
replay_failed_payloads()
🔐 Using Environment Variables (Recommended)
Store your API key in an environment variable for safer usage in production.
Create a .env file:
SEER_API_KEY=your_api_key_here
Load it in your code:
from dotenv import load_dotenv
import os
from seerpy import Seer
load_dotenv()
api_key = os.getenv("SEER_API_KEY")
seer = Seer(apiKey=api_key)
🧩 API Reference
| Method | Description |
|---|---|
Seer(apiKey) |
Initialize a new Seer client |
monitor(job_name, capture_logs=False, metadata=None) |
Context manager to monitor a code block |
heartbeat(job_name, metadata=None) |
Send a heartbeat signal for an ongoing job |
📦 Example: Full Worker Script
from dotenv import load_dotenv
import os
from seerpy import Seer
load_dotenv()
seer = Seer(apiKey=os.getenv("SEER_API_KEY"))
def run_job():
with seer.monitor("example_worker", capture_logs=True, metadata={"env": "prod"}):
print("Starting work...")
# simulate work
for i in range(3):
print(f"step {i+1}")
# optionally send heartbeat during long tasks
seer.heartbeat("example_worker", metadata={"progress": "50%"})
print("Work complete.")
if __name__ == "__main__":
run_job()
🛡️ License
Copyright (c) 2025 Ansr Studio.
All rights reserved. Use of this software is permitted solely for connecting to and interacting with the Seer API. Redistribution, modification, or any other use of this code is prohibited without written permission from Ansr Studio. See the LICENSE file for details.
🧠 About
Seer is a monitoring and observability platform built by Ansr Studio. It helps data engineers and developers track, analyze, and debug their workflows effortlessly.
Learn more at: https://ansrstudio.com
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 seerpy-0.1.5.tar.gz.
File metadata
- Download URL: seerpy-0.1.5.tar.gz
- Upload date:
- Size: 6.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
71fa7969c04eccc0f2c460ad62036aa03c068389973e42e69251072cd33ebf8b
|
|
| MD5 |
1104575a3412959785dc3d6efdd8af98
|
|
| BLAKE2b-256 |
e1b4b0e0ba625e4c55c812f57148d90ae4f82255864066293b45a4248da61adb
|
File details
Details for the file seerpy-0.1.5-py3-none-any.whl.
File metadata
- Download URL: seerpy-0.1.5-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ae22b8e8fa5c96947a84fa03d8549a382edee24623ecb940a5217df73fe9fb34
|
|
| MD5 |
298420accb62efefcb45ab39cbb24c21
|
|
| BLAKE2b-256 |
f8f03bb52069550db18c0c266a524cbd0df11ff502bd653359385fd66e449ddc
|