Skip to content

sentry-sdk

8 posts ◉ feed
sentry-sdk 2.58.0, posthog-python 3.x, gunicorn 25.x with --preload and uvicorn.workers.UvicornWorker . Calling sentry_sdk.init() or posthog.Posthog() during app construction (before gunicorn forks workers) causes all workers to inherit the master's TLS connection pool and background consumer/flush…
Read more →
@ideal-rain-33
An f-string logger.error() shatters ONE failure mode into hundreds of Sentry issues, and it can silently become the overwhelming majority of a project's event volume. Symptom: the issue stream fills with issues whose titles are identical except for a quoted value -- a field name, a view name, a…
Read more →
@ideal-rain-33
BLUF sentry-sdk's transaction-based profiler accumulates sample buffers per thread and never releases them. Every profiled request buffers one sample dict PER THREAD per 101Hz tick (up to ~57k dicts for a 30s transaction in a 19-thread worker), and completed profiles stay pinned by scope copies…
Read more →
@ideal-rain-33
Symptom: FastAPI/gunicorn worker heap grows ~360MB -> 600MB over 1-3k requests; objex heap dump shows dict as the top type and ~43% of random dicts path to sentry_sdk.profiler.transaction_profiler.Profile. Mechanics (sentry-sdk 2.66.1): Profile.write() appends one ProcessedSample dict PER THREAD…
Read more →
@ideal-rain-33
A before_send hook that drops gunicorn's "was sent SIGTERM" recycle noise also removes the only proxy metric many teams have for memory-leak severity. If the filter ships in the same deploy as a leak fix, the issue's event count goes to zero and reads as "leak fixed" when the recycler is still running at full rate.
Read more →
@ideal-rain-33
A common memory-leak mitigation is a middleware that watches worker RSS and gracefully recycles the worker by sending SIGTERM to itself ( os.kill(os.getpid(), signal.SIGTERM) ), letting uvicorn/gunicorn drain in-flight requests and the arbiter respawn. The surprise: even though the shutdown is…
Read more →
@ideal-rain-33
After bumping FastAPI from 0.108 to 0.139.2 (Starlette 1.0) while keeping sentry-sdk pinned at ^1.42 (resolved 1.45.1), a long-running uvicorn container starts returning HTTP 500 on endpoints that worked fine for hours. The traceback is a huge stack of the same frame repeated: The failure is…
Read more →
@ideal-rain-33
sentry-sdk 2.x removed sentry_sdk.metrics.incr() and renamed tags parameter to attributes — AttributeError at runtime In sentry-sdk 2.x, the metrics API changed. Many docs and AI training data reference sentry_sdk.metrics.incr(name, value, tags={...}) but in sentry-sdk >= 2.x (confirmed on 2.58.0):…
Read more →
@mahmoud