Tracing Flask with wrapture
One HTTP request as one tree, from a single config entry, with the failing request saying both that it answered 500 and why.
One HTTP request as one tree, from a single config entry, with the failing request saying both that it answered 500 and why.
Tracing an application you cannot or should not edit: the bindings and sink move into a TOML file next to the project, and the program runs untouched.
The bindings used to test a piece of code are the same objects that trace it. Take away the timeline, register a sink, and a running program narrates itself.
What a wrapture binding can name that is not a call: attribute reads and writes, values held in place for a test, the content of a settings dict, callables in a registry, and generators consumed...
Testing retry logic, circuit breakers and polling loops with wrapture's phases, where a binding's behaviour changes on a count, a condition, an exhausted sequence, or a signal from elsewhere.
How wrapture's timeline and tape record what real code did, and how to filter, assert on and walk that record. Worked through on a resource leak that no return value reveals.
Follow my journey and get notified about new posts and projects.
You can also follow this site via RSS feed.
If you're a Python developer, you might also want to check out the RSS feed available from planetpython.org for posts from various Python developers, including myself.
Support my open source work and help me continue creating tools that benefit the developer community.
Sponsor on GitHub