All Projects → yiblet → Inquest

yiblet / Inquest

Licence: lgpl-3.0
Inquest lets you add log statements to python without restarting your python instance. It helps you quickly uncover what is going wrong.

Programming Languages

python
139335 projects - #7 most used programming language
typescript
32286 projects
python3
1442 projects

Projects that are alternatives of or similar to Inquest

spanner-schema-diff-tool
Compare two Cloud Spanner Schema (DDL) files, determine the differences and generate the required ALTER statements to convert one schema to the other.
Stars: ✭ 20 (-84.62%)
Mutual labels:  development-tools
Gulp Scss Starter
Frontend development with pleasure. SCSS version
Stars: ✭ 339 (+160.77%)
Mutual labels:  development-tools
Intero
Stars: ✭ 1,042 (+701.54%)
Mutual labels:  development-tools
docker-imap-devel
Dockerized SMTP/IMAP server for development
Stars: ✭ 45 (-65.38%)
Mutual labels:  development-tools
Query track
Find time-consuming database queries for ActiveRecord-based Rails Apps
Stars: ✭ 258 (+98.46%)
Mutual labels:  development-tools
Fast
The adaptive interface system for modern web experiences.
Stars: ✭ 6,532 (+4924.62%)
Mutual labels:  development-tools
docker-dev
A local Docker Environment for building PHP applications 🔨
Stars: ✭ 97 (-25.38%)
Mutual labels:  development-tools
Stayswifty
This is the place where iOS developer can get the most recent and helpful information. Have fun!
Stars: ✭ 82 (-36.92%)
Mutual labels:  development-tools
Pug Starter
Simple pug (jade) starter [framework] enabling faster delivery of HTML & CSS projects to a private server and/or automatic deployment of GitHub pages.
Stars: ✭ 328 (+152.31%)
Mutual labels:  development-tools
Repotools
Short names, big time savings – a collection of commands for the git operations you perform most often
Stars: ✭ 24 (-81.54%)
Mutual labels:  development-tools
php-switch-scripts
🔄 Scripts to aid in the setup of and switching between multiple PHP versions in Ubuntu 14.04 LTS or newer
Stars: ✭ 61 (-53.08%)
Mutual labels:  development-tools
Haskell Tools
Developer tools for Haskell
Stars: ✭ 256 (+96.92%)
Mutual labels:  development-tools
Crc
Red Hat CodeReady Containers is a tool that manages a local OpenShift 4.x cluster optimized for testing and development purposes
Stars: ✭ 676 (+420%)
Mutual labels:  development-tools
dev-env
Install and configure a development environment with Ansible (Ubunu 16.04 LTS)
Stars: ✭ 26 (-80%)
Mutual labels:  development-tools
Bosco
A microservice helper
Stars: ✭ 63 (-51.54%)
Mutual labels:  development-tools
zzz
Go程序热编译、压力测试等,日常开发辅助工具,提升开发效率 - Daily development aids
Stars: ✭ 34 (-73.85%)
Mutual labels:  development-tools
Torus Cli
A secure, shared workspace for secrets
Stars: ✭ 611 (+370%)
Mutual labels:  development-tools
Monday
⚡️ A dev tool for microservice developers to run local applications and/or forward others from/to Kubernetes SSH or TCP
Stars: ✭ 1,246 (+858.46%)
Mutual labels:  development-tools
React Builder
⚙ A GUI tool to build your react app in the fastest way with all components and pages with routing.
Stars: ✭ 82 (-36.92%)
Mutual labels:  development-tools
Mailslurper
Local, web-based mail server application. Slurp mails into oblivion!
Stars: ✭ 920 (+607.69%)
Mutual labels:  development-tools

What's Inquest?

Inquest is a logging tool for python programs. It let's you add logs to your running python programs without restarting the program, redeploying the program, or modifying the code in any way. Inquest takes extremely low overhead: the part that's a python library is completely idle unless there is something to log. Inquest is specifically designed to enable you to quickly introspect into Python even in production environments.

Here's a gif of the magic. I'm running a single python instance in the background and I use Inquest to dynamically add log statements to the running code.

Installation

There are two ways to use Inquest:

  1. A simple docker-compose
  2. The Inquest Cloud

Resources

Frequently Asked Questions

How does Inquest work?

Inquest works by bytecode injection. The library sets up a connection with the backend. When you add a new log statment on the dashboard, the backend relays that change the connected python instance. Inside python, inquest finds the affected functions inside the VM.

Then it uses the python interpreter to recompile a newly generated piece of python bytecode with the new log statements inserted. Then inquest pointer-swaps the new bytecode with the old bytecode.

This has 4 benefits:

  1. your underlying code object is never modified
  2. reverting a log statement is always possible and will always result in code behavior identical to the original
  3. it generates extremely efficient python
  4. it has not overhead

Why can't I edit the code in the dashboard?

The dashboard right now cannot persist changes to the files. So modifications to the file on the dashboard wouldn't have been reflected on the underlying file. This opens up an avenue for gotchas where you unintetionally change the IDE but never see those changes in your VCS. In order to avoid that, we made things, simple. The code viewer is read-only.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].