alby-report
Official Alby error-tracking SDK for Python.
Captures uncaught exceptions and anything you explicitly report, then ships them to your Alby project where an AI agent can auto-open a fix task.
Zero runtime dependencies. Python 3.8+.
Install
pip install alby-report
Use
import os
import alby
alby.init(
dsn=os.environ['ALBY_DSN'], # https://<key>@alby.sh/ingest/v1/<app-id>
release='1.4.2',
environment='production',
)
# Uncaught exceptions are sent automatically (sys.excepthook + threading.excepthook).
# Manual report:
try:
do_thing()
except Exception as exc:
alby.capture_exception(exc)
# Non-error events:
alby.capture_message('Failed to acquire lease', level='warning')
# Enrich:
alby.set_user({'id': 'u_412', 'email': 'ada@example.com'})
alby.set_tag('region', 'eu-west-3')
alby.set_context('billing_tenant', {'plan': 'pro', 'seats': 12})
alby.add_breadcrumb({'type': 'http', 'message': 'GET /api/orders/42'})
# Decorator:
@alby.monitor
def charge_customer(customer_id: str) -> None:
...
# Before exit (e.g. in a short-lived CLI):
alby.flush(2000)
Options
| Option | Type | Default | Notes |
|---|---|---|---|
dsn |
str |
- (required) | The DSN from your Alby app settings. |
release |
str |
'' |
Your build version. Enables release tracking / auto-resolve. |
environment |
str |
$ALBY_ENV or 'production' |
production / staging / dev / anything. |
sample_rate |
float |
1.0 |
Fraction of events actually sent. |
platform |
str |
'python' |
Override auto-detection. |
server_name |
str |
socket.gethostname() |
Attached to every event. |
auto_register |
bool |
True |
Install sys.excepthook + threading.excepthook handlers. |
transport |
Transport |
HttpTransport |
Custom delivery (tests, batching, filesystem spool). |
debug |
bool |
False |
Log SDK diagnostics to stderr. |
max_breadcrumbs |
int |
100 |
Ring buffer size. |
Framework integrations
Django
In settings.py:
MIDDLEWARE = [
# ... Django's own middleware ...
'alby.integrations.django.AlbyMiddleware',
]
Initialise Alby early in your app setup (e.g. settings.py or wsgi.py).
Flask
from flask import Flask
from alby.integrations.flask import init_app as alby_init_app
app = Flask(__name__)
alby_init_app(app)
FastAPI / Starlette
from fastapi import FastAPI
from alby.integrations.fastapi import AlbyMiddleware
app = FastAPI()
app.add_middleware(AlbyMiddleware)
Transport
urllib.requestunder the hood (zero deps).- Non-blocking: a bounded
queue.Queue(maxsize=100)plus a daemon worker thread.capture_*only enqueues. - Retries: 3 attempts at 1s / 5s / 15s backoff.
- Honours
Retry-Afteron HTTP 429. - Best-effort drain on interpreter exit via
atexit.
For synchronous delivery, inject your own Transport via alby.init(transport=...).
Wire protocol
This SDK speaks the Alby Ingest Protocol v1. If you're writing a new SDK (different runtime, different language) start there.
Links
- Website: alby.sh
- Report issues: GitHub Issues
- Other SDKs: alby-sdk-js · alby-sdk-browser · alby-sdk-php
License
MIT (c) Alby.
Metadata
Release files for alby-report 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| alby_report-0.1.0.tar.gz | 20.0 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| alby_report-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 41.6 kB
Release files / alby_report-0.1.0.tar.gz
| Download URL | alby_report-0.1.0.tar.gz |
|---|---|
| Size | 20.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0a41503c63a763a9c0b464e5f3ed87749cd83754608d6640d1f42aa5e25655a1
|
|
BLAKE2b-256 checksum How to use checksums |
b0d9ecd1c6c67157c3d2602293de3a632d85e23edae12540ff566b04474a5cf9
|
| 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 Apr 20, 2026.
Transparency logRelease files / alby_report-0.1.0-py3-none-any.whl
| Download URL | alby_report-0.1.0-py3-none-any.whl |
|---|---|
| Size | 21.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
2e118e26669e0a76ce54cab66556f4a934c35d3458c843519f0bbd54f1e2543e
|
|
BLAKE2b-256 checksum How to use checksums |
ac0a79acc89012a6124591174918baa6deb0c7492d96c0c9146c5c006ffb0d4e
|
| 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 Apr 20, 2026.
Transparency log