Skip to main content

Middleware for Django, Flask, and FastAPI to intercept requests, logs, and exceptions.

Project description

SF3 Middleware - Currently transmissions are diabled

Middleware for Python (Django, Flask, and FastAPI) to intercept requests, print statements, logs, and exceptions while persisting tracing.

Installation

Use Poetry to install:

poetry add sf-veritas

Usage

Django, etc

Switch the following:

python manage.py runserver 0.0.0.0:8000

To:

sf-veritas API-KEY python manage.py runserver 0.0.0.0:8000

TODO - Rename all Sailfish artifacts to Sailfish.ai

Debug Mode

Sailfish supports a server-triggered debug mode that turns on full function-span capture (arguments, return values, timings) for a time-bounded, budget-bounded window — for live backend services that have no HTTP surface (Celery workers, Kafka consumers, cron jobs).

A daemon thread holds a WebSocket connection to the Sailfish backend. When the UI enables debug for a service identifier, the rule list is broadcast to every pod of that service simultaneously via Redis pub/sub on the backend, applied through a process-wide override on the C profiler's hot path. Capture stops when TTL expires, span budget is exhausted, byte budget is exhausted, or the UI cancels.

Disable via SF_DEBUG_MODE_DISABLED=true. See docs/docs-enterprise/debug-mode.md for the full user-facing description, rule schema, and limitations.

Network Hop Calculation Time

To evaluate the performance impact of this package, we benchmarked 1000 HTTP requests with and without the package enabled.

Configuration Mean (ms) Median (ms) Std Dev (ms)
✅ With Package 79.12 54.00 111.18
❌ Without Package 69.70 52.00 73.78

⚠️ Note: The package introduces a slight increase in mean response time and variance. This trade-off may be acceptable depending on the value the package provides (e.g., additional logging, monitoring, or security features).


Optimized Entrypoint Capture (Post-Refactor)

After optimizing how the user-code entrypoint is captured (via faster stack inspection), we observed improved stability and performance across 1015 analyzed requests:

Configuration Mean (ms) Median (ms) Std Dev (ms)
✅ With Package 142.45 138.50 80.78
❌ Without Package 131.07 127.00 35.75

⚠️ The optimized implementation added a slight increase in mean latency (~8.7%), but this tradeoff is offset by improved accuracy of entrypoint capture.


Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

sf_veritas-0.15.7-cp314-cp314-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.28+ x86-64

sf_veritas-0.15.7-cp313-cp313-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

sf_veritas-0.15.7-cp312-cp312-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

sf_veritas-0.15.7-cp311-cp311-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

sf_veritas-0.15.7-cp310-cp310-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

sf_veritas-0.15.7-cp39-cp39-manylinux_2_28_x86_64.whl (5.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

File details

Details for the file sf_veritas-0.15.7-cp314-cp314-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sf_veritas-0.15.7-cp314-cp314-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a1c41b5573c5c8124be0353098c6a2831e8ec6b1989ff77bf5625da7d0fa9b93
MD5 5d7cb64e359a9de95ea0f901d01acdb3
BLAKE2b-256 e1731971022738b8fd399d6e140217d45a7924accd27ac05d9e855b84bf91936

See more details on using hashes here.

File details

Details for the file sf_veritas-0.15.7-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sf_veritas-0.15.7-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0655b0e4467e89ca622f557f6e05ffd511e5df180fa32c3ea152017ef306cfef
MD5 6f801f483d6be86bd25c819958afe851
BLAKE2b-256 4dfec7c26bdbcc62166c0ab41faac25f638f416c504c10f569720052abeed8c2

See more details on using hashes here.

File details

Details for the file sf_veritas-0.15.7-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sf_veritas-0.15.7-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f9f14ec8fbce1647330f167f850136f10b271171e2c1dfac674bf9f65f1b5c13
MD5 dc4ab64749e332dad24275d382e3a922
BLAKE2b-256 32e6bdab06439522fd0f1855eabdaf9509828232c75dcddf19906171feeb2ba6

See more details on using hashes here.

File details

Details for the file sf_veritas-0.15.7-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sf_veritas-0.15.7-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 8c3b3b9f33189ef3806d48a381038e7cf60868507096e8c29b943b5c272da709
MD5 a6c9e74a44b2b5439c75e9b26488e205
BLAKE2b-256 4821d907a6d803189f64de3e488c4c203a59eca810eb7490f0482709bca4f79a

See more details on using hashes here.

File details

Details for the file sf_veritas-0.15.7-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sf_veritas-0.15.7-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c91e355d53ef6bbcdcd22cbcdc2eaf5f5131f070b7583015bf663ce17806d0b6
MD5 1c446ea082da44b4e44afc1cd38f7e4c
BLAKE2b-256 91bc9840286bebfbf2441ad405fdef16c95d16df50968109761c1b6a9bfd5deb

See more details on using hashes here.

File details

Details for the file sf_veritas-0.15.7-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for sf_veritas-0.15.7-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 19cf201e8848e06f65b7af1d007ae59f0b6b1ee912e8ed81064d35ce830fbaf0
MD5 0d1f6dc8ee4b6a7eac73a0c5213c4f3f
BLAKE2b-256 88507e7b44db9f7fb720a51e998a4c4370c4550871c1c02cd7e8c31aa662173e

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