42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
|
from eventlet.zipkin import http
|
||
|
from eventlet.zipkin import wsgi
|
||
|
from eventlet.zipkin import greenthread
|
||
|
from eventlet.zipkin import log
|
||
|
from eventlet.zipkin import api
|
||
|
from eventlet.zipkin.client import ZipkinClient
|
||
|
|
||
|
|
||
|
def enable_trace_patch(host='127.0.0.1', port=9410,
|
||
|
trace_app_log=False, sampling_rate=1.0):
|
||
|
""" Apply monkey patch to trace your WSGI application.
|
||
|
|
||
|
:param host: Scribe daemon IP address (default: '127.0.0.1')
|
||
|
:param port: Scribe daemon port (default: 9410)
|
||
|
:param trace_app_log: A Boolean indicating if the tracer will trace
|
||
|
application log together or not. This facility assume that
|
||
|
your application uses python standard logging library.
|
||
|
(default: False)
|
||
|
:param sampling_rate: A Float value (0.0~1.0) that indicates
|
||
|
the tracing frequency. If you specify 1.0, all request
|
||
|
are traced (and sent to Zipkin collecotr).
|
||
|
If you specify 0.1, only 1/10 requests are traced. (default: 1.0)
|
||
|
"""
|
||
|
api.client = ZipkinClient(host, port)
|
||
|
|
||
|
# monkey patch for adding tracing facility
|
||
|
wsgi.patch(sampling_rate)
|
||
|
http.patch()
|
||
|
greenthread.patch()
|
||
|
|
||
|
# monkey patch for capturing application log
|
||
|
if trace_app_log:
|
||
|
log.patch()
|
||
|
|
||
|
|
||
|
def disable_trace_patch():
|
||
|
http.unpatch()
|
||
|
wsgi.unpatch()
|
||
|
greenthread.unpatch()
|
||
|
log.unpatch()
|
||
|
api.client.close()
|