审计任何正在运行的Python进程。
项目描述
Nogi
Python应用的开关式事件审计器。
实时监控运行中的Python应用程序中的Python事件和用户自定义事件。
Nogi允许您在不添加调试跟踪和侵入性打印的情况下审计您的代码。只需在您的代码中实例化Nogi,然后向运行中的应用程序发送信号以开始审计。
Nogi允许您在不重新启动应用程序的情况下启用和禁用审计,因此不会丢失您想要观察的上下文,例如正在发生的错误。
请看下面的示例。
有关详细信息,请阅读官方文档
安装
$ pip安装nogi
用法
只需在代码的开头实例化Nogi
Nogi()
示例
下面是一个具体的示例(见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()
运行前面的代码
$ python examples/sample.py
200
200
...
200
...
然后通过向先前启动的进程发送SIGUSR1
来启用审计
$ ps ax | grep python | grep sample # to retrieve the process id (pid)
$ kill -SIGUSR1 <pid>
现在我们可以通过运行Nogi客户端来收集事件
$ 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')
...
当您想要终止审计时,只需向相同的进程ID(pid)发送SIGUSR2
信号以停止转发事件。
$ kill -SIGUSR2 <pid>
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
nogi-0.2.0.tar.gz (13.1 kB 查看散列)
构建分布
nogi-0.2.0-py3-none-any.whl (7.3 kB 查看散列)
关闭
nogi-0.2.0.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | c040413415c6476701b54f3ac22c28dd8c00ab9506ef8956c502010ca49d24c6 |
|
MD5 | ea3ac61ad84b44132788cf667aa3a1b9 |
|
BLAKE2b-256 | 1225b21b9cb47c33c2d9eefbc5cbbdb8bec0835b7ee3d9fc331b2e7a21aa2201 |
关闭
nogi-0.2.0-py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | d455f3f99c5656058dacaf071da6b8d50ae442bd98e97105dce07aaffe9d78c8 |
|
MD5 | c1347ed941344bfe820112ed74bacf9e |
|
BLAKE2b-256 | 66bc9c5d3d983cee613c0d368a3e3e47d4123f79469544e326cc2ddfad9fea77 |