Skip to main content

event-monitoring

A tiny, non-blocking emitter that publishes business/contextual events from any Python app to a Redis Stream for a monitoring dashboard to consume.

  • Sync (emit) and async (aemit) APIs.
  • Transaction-safe under Django (transaction.on_commit); works fine without Django.
  • Opt-in — a no-op unless MONITORING_ENABLED is truthy, so it's inert when installed into an app nobody has wired up to a dashboard.
  • Only hard dependency is redis.

Install

pip install event-monitoring
# or
uv add event-monitoring

Pre-release / unpublished, straight from Git:

pip install "git+https://github.com/<you>/event-monitoring.git@v0.1.0"

For local cross-repo dev, as a uv path source:

[tool.uv.sources]
event-monitoring = { path = "../event-monitoring", editable = true }

Usage

import event_monitoring

# Sync (Django views, scripts, workers)
event_monitoring.emit(
    event="offer_approved",
    entity_type="offer", entity_id=offer.id,
    actor_id=request.user.id,
    url=request.build_absolute_uri(offer.get_absolute_url()),
    payload={"amount": offer.amount},
)

# Async (asyncio apps — e.g. a Discord bot). Offloads the blocking publish.
await event_monitoring.aemit("music_played", entity_type="guild", entity_id=guild_id,
                             actor_id=user.id, payload={"song": title})

Configuration (env vars)

Var Default Meaning
MONITORING_ENABLED 0 (off) Set 1/true/yes to actually publish.
MONITORING_APP unknown Logical source-app name (rms, dryorm, …).
MONITORING_REDIS_URL redis://events-redis:6379/0 Redis the dashboard consumes from. Keep separate from the app's own Redis.
MONITORING_STREAM events Stream name.

Publish failures are swallowed (warned once) — monitoring never breaks the host app.

Event shape

{"app":"rms","event":"offer_approved","entity_type":"offer","entity_id":"123",
 "actor_id":"55","url":"https://rms.example/offers/123",
 "timestamp":"<naive-UTC-iso>","payload":{}}

Metadata

Release files for event-monitoring 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for event-monitoring 0.1.0
File Size Uploaded
event_monitoring-0.1.0.tar.gz 6.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for event-monitoring 0.1.0
File Interpreter ABI Platform
event_monitoring-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 12.1 kB

Release files / event_monitoring-0.1.0.tar.gz

Download URL event_monitoring-0.1.0.tar.gz
Size 6.0 kB
Tags Source
SHA-256 checksum
How to use checksums
4553c69a07e75a3e661589011d9e0adb978cb9fd7ed569a07eab6596790c5b5c
BLAKE2b-256 checksum
How to use checksums
05705f3b57cbb4aa1912b1e657ead44b3a588f635ad52c02878454c95a65fd64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release files / event_monitoring-0.1.0-py3-none-any.whl

Download URL event_monitoring-0.1.0-py3-none-any.whl
Size 6.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ad299e0d4c8a17f0f793242cb8a2a7e136b15a9a66d628c236b9cc9f4d790db7
BLAKE2b-256 checksum
How to use checksums
04537b6a948d3982cea7c3fc2667b9c421d7261c9857711304433c93e8021845
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page