Skip to main content

Nogi

Build PyPI PyPI - Python Version PyPI - Status Downloads Downloads Code style: black

Toogleable events auditor for Python apps.

Live monitor Python events and user defined custome events in running Python applications.

Nogi allow you to audit your code without adding debug tracing and invasive prints. Just instantiate Nogi in your code and then send a signal to your running app to start auditing it.

Nogi allow you to enable and disable audit without restarting your application and so without loosing the context that you want to observe, by example a occuring bug.

See the example below.

For further details please read the official documentation

Install

$ pip install nogi

Usages

Simply instanciate Nogi at the begining of your code:

Nogi()

Example

Here is a concret example (see examples/sample.py):

# sample.py
import requests
import time

from nogi import Nogi

Nogi()

def main():
    for i in range(1000):
        r = requests.get(
            "https://en.wikipedia.org/wiki/Python_(programming_language)")
        print(r.status_code)
        time.sleep(1)

if __name__ == "__main__":
    main()

Run the previous code:

$ python examples/sample.py
200
200
...
200
...

Then enable the audit by sending the SIGUSR1 to the process previously launched:

$ ps ax | grep python | grep sample # to retrieve the process id (pid)
$ kill -SIGUSR1 <pid>

We are now able to collect events by running the Nogi client:

$ nogi
Starting the audit listener
Audit client listening...
event: socket.getaddrinfo
data: ('en.wikipedia.org', 443, 0, 1, 0)
event: socket.__new__
data: (<socket.socket fd=-1, family=0, type=0, proto=0>, 2, 1, 6)
event: socket.connect
data: (<socket.socket fd=4, family=2, type=1, proto=6, laddr=('0.0.0.0', 0)>, ('185.15.58.224', 443))
event: http.client.connect
data: (<urllib3.connection.HTTPSConnection object at 0x7f0b48fafbf0>, 'en.wikipedia.org', 443)
event: socket.__new__
data: (<ssl.SSLSocket fd=-1, family=0, type=0, proto=0>, 2, 1, 6)
event: http.client.send
data: (<urllib3.connection.HTTPSConnection object at 0x7f0b48fafbf0>, b'GET /wiki/Python_(programming_language) HTTP/1.1\r\nHost: en.wikipedia.org\r\nUser-Agent: python-requests/2.31.0\r\nAccept-Encoding: gzip, deflate\r\nAccept: */*\r\nConnection: keep-alive\r\n\r\n')
...

When you want to terminate your audit, simply send the SIGUSR2 signal to the same process id (pid) to stop forwarding events.

$ kill -SIGUSR2 <pid>

Release files for nogi 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for nogi 0.2.0
File Size Uploaded
nogi-0.2.0.tar.gz 13.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for nogi 0.2.0
File Interpreter ABI Platform
nogi-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 20.4 kB

Release files / nogi-0.2.0.tar.gz

Download URL nogi-0.2.0.tar.gz
Size 13.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c040413415c6476701b54f3ac22c28dd8c00ab9506ef8956c502010ca49d24c6
BLAKE2b-256 checksum
How to use checksums
1225b21b9cb47c33c2d9eefbc5cbbdb8bec0835b7ee3d9fc331b2e7a21aa2201
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release files / nogi-0.2.0-py3-none-any.whl

Download URL nogi-0.2.0-py3-none-any.whl
Size 7.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d455f3f99c5656058dacaf071da6b8d50ae442bd98e97105dce07aaffe9d78c8
BLAKE2b-256 checksum
How to use checksums
66bc9c5d3d983cee613c0d368a3e3e47d4123f79469544e326cc2ddfad9fea77
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/5.0.0 CPython/3.12.2

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page