draios / tracers-py

Python library to easy emit Sysdig tracers

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

tracers-py

Python library to easy emit Sysdig tracers

Install

This library supports python 2.7 and 3, it also works on pypy 3 as well. To install it, just type:

pip install sysdig-tracers

Install also sysdig to read trace data and correlate them.

Usage

Using this library is pretty easy, just wrap your code in a with statement:

from sysdig_tracers import Tracer
import time

while True:
  with Tracer():
    print "Hello World"
  time.sleep(0.5)

then while your code is running, launch sysdig:

$ sysdig evt.type=tracer
11132 12:58:56.203177473 0 python (11163) > tracer id=11163 tags=example/simple.py:5(<module>) args=
11136 12:58:56.203257412 0 python (11163) < tracer id=11163 tags=example/simple.py:5(<module>) args=
12570 12:58:56.705334633 2 python (11163) > tracer id=11163 tags=example/simple.py:5(<module>) args=
12615 12:58:56.705540522 2 python (11163) < tracer id=11163 tags=example/simple.py:5(<module>) args=
14202 12:58:57.207921927 2 python (11163) > tracer id=11163 tags=example/simple.py:5(<module>) args=
14245 12:58:57.208221298 2 python (11163) < tracer id=11163 tags=example/simple.py:5(<module>) args=
15672 12:58:57.710556623 3 python (11163) > tracer id=11163 tags=example/simple.py:5(<module>) args=
15680 12:58:57.710613724 3 python (11163) < tracer id=11163 tags=example/simple.py:5(<module>) args=
17325 12:58:58.213161095 3 python (11163) > tracer id=11163 tags=example/simple.py:5(<module>) args=
17333 12:58:58.213259041 3 python (11163) < tracer id=11163 tags=example/simple.py:5(<module>) args=

You can also use it as a decorator to automatically trace each function call:

from sysdig_tracers import Tracer
import time

@Tracer
def myprinter():
  print "Hello World"

while True:
  myprinter()
  time.sleep(0.5)

And in sysdig you will see:

$ sysdig evt.type=tracer
2542 13:01:25.798147410 1 python (11171) > tracer id=11171 tags=myprinter args=
2546 13:01:25.798198636 1 python (11171) < tracer id=11171 tags=myprinter args=
4176 13:01:26.298901248 1 python (11171) > tracer id=11171 tags=myprinter args=
4180 13:01:26.298988231 1 python (11171) < tracer id=11171 tags=myprinter args=
5550 13:01:26.799701837 1 python (11171) > tracer id=11171 tags=myprinter args=
5554 13:01:26.799757884 1 python (11171) < tracer id=11171 tags=myprinter args=
7150 13:01:27.300566452 1 python (11171) > tracer id=11171 tags=myprinter args=
7154 13:01:27.300669953 1 python (11171) < tracer id=11171 tags=myprinter args=
8502 13:01:27.801823005 1 python (11171) > tracer id=11171 tags=myprinter args=

For more advanced usages see the examples directory or our tests

About

Python library to easy emit Sysdig tracers

License:GNU General Public License v2.0


Languages

Language:Python 95.8%Language:Shell 2.9%Language:Roff 1.3%