Changelog

Track the latest updates, features, and improvements to SEER

SEER Platform

Web dashboard, API, and monitoring infrastructure updates

v1.2.0

Latest

December 2024

New Features

  • Metric-Based Alerts: Added execution time and success rate alert monitoring with customizable thresholds
  • Email Verification: Enhanced signup flow with dedicated email verification page
  • Quickstart Guide: Added comprehensive quickstart documentation for faster onboarding
  • Heartbeat Monitoring: Dedicated documentation page explaining heartbeat setup and best practices

Improvements

  • Improved duration formatting - removed excessive decimal places across all dashboards
  • Enhanced landing page with refined messaging and visual hierarchy
  • Added "View Job" button in run details for easier navigation
  • Simplified help center with verified content and better organization

Bug Fixes

  • Fixed captcha "already-seen-response" error during signup
  • Fixed free plan selection for new users
  • Fixed email recipient query in test email functionality

v1.1.0

November 2024

New Features

  • Job Heartbeat Monitoring: Track long-running jobs with configurable heartbeat intervals
  • REST API: Full REST API support for non-Python integrations
  • Slack Integration: Real-time alerts via Slack webhooks

Seer CLI

Go Binary

Official command-line client for the Seer Monitoring API

View on GitHub →

v0.2.4

Latest

2025 — aligned with SeerPy 0.2.4 offline semantics

New in 0.2.x

  • Offline queue redesign: Versioned envelopes in ~/.seer/queue (shared with SeerPy). Atomic writes, cross-process locking, FIFO eviction, dead-letter folder. Override with SEER_QUEUE_DIR.
  • Correct offline behavior: If unreachable at start, the command runs locally and only the final outcome is queued. Exit code preserved.
  • seer replay command (replaces seer replay-failed, kept as alias). Supports --max-attempts.
  • New flags on seer run: --tags, --base-url, --no-auto-replay, --background-replay, --replay-interval, --log-sync-interval.
  • Idempotency keys: Every POST and queued envelope carries a UUID v4 Idempotency-Key.
  • New env vars: SEER_BASE_URL, SEER_QUEUE_DIR, SEER_QUEUE_MAX_FILES, SEER_QUEUE_MAX_BYTES, SEER_TIMEOUT, SEER_LOG_SYNC_INTERVAL.

Installation

curl -fsSL https://raw.githubusercontent.com/seer-monitoring/seer-cli/main/cli/install.sh | sh

Quick Example

export SEER_API_KEY=your_key

# Monitor any command (job_name must exist in your Seer dashboard)
seer run daily_etl --metadata='{"source":"lake"}' --tags=etl,prod -- python etl.py

# Heartbeat
seer heartbeat worker_process --metadata='{"pid":1234}'

# Flush offline queue
seer replay

SEER Python Library (seerpy)

PyPI Package

Official Python SDK for SEER monitoring

View on GitHub →

v0.2.4

Latest

2025

New in 0.2.x

  • Offline queue redesign: Failed uploads stored as versioned envelopes in ~/.seer/queue (shared with Seer CLI). Atomic writes, cross-process locking, FIFO eviction at 500 files / 50 MiB, dead-letter folder.
  • Correct offline monitor behavior: If Seer is unreachable at start, the job still runs locally and only the final outcome is queued — no forever-running stubs.
  • Replay tiers: seer.replay() manual flush, auto_replay=True on init, and background_replay=True daemon thread.
  • Idempotency keys: Every live POST and queued envelope carries a UUID v4 Idempotency-Key header. Replay uses {key}:register then {key}:complete.
  • Tags support: tags= parameter added to both monitor() and heartbeat().
  • Configurable API host: Pass base_url= or set SEER_BASE_URL. Envelopes pin the base_url they were created with.
  • Reliability fixes: Monitoring never raises from finally. HTTP 4xx not retried (except 429). Log capture restores prior handlers. Shared requests.Session.
  • New dependency: filelock for cross-process queue locking.

Installation

pip install seerpy

Quick Example

from seerpy import Seer
import os

# api_key= preferred; apiKey= accepted for backwards compat
seer = Seer(api_key=os.getenv("SEER_API_KEY"), auto_replay=True)

with seer.monitor("daily_job", capture_logs=True, tags=["prod"]):
    print("Running job...")
    # Your code here

v0.1.7

December 2024

Features

  • Context Manager Monitoring: Simple with seer.monitor() syntax for automatic job tracking
  • Automatic Log Capture, Heartbeat Support, Offline Payload Storage, Metadata Support, Environment Variable Configuration