codekingpro/portable-devtools
114k
1from eventlet.zipkin import http2from eventlet.zipkin import wsgi3from eventlet.zipkin import greenthread4from eventlet.zipkin import log5from eventlet.zipkin import api6from eventlet.zipkin.client import ZipkinClient7 8 9def enable_trace_patch(host='127.0.0.1', port=9410,10 trace_app_log=False, sampling_rate=1.0):11 """ Apply monkey patch to trace your WSGI application.12 13 :param host: Scribe daemon IP address (default: '127.0.0.1')14 :param port: Scribe daemon port (default: 9410)15 :param trace_app_log: A Boolean indicating if the tracer will trace16 application log together or not. This facility assume that17 your application uses python standard logging library.18 (default: False)19 :param sampling_rate: A Float value (0.0~1.0) that indicates20 the tracing frequency. If you specify 1.0, all request21 are traced (and sent to Zipkin collecotr).22 If you specify 0.1, only 1/10 requests are traced. (default: 1.0)23 """24 api.client = ZipkinClient(host, port)25 26 # monkey patch for adding tracing facility27 wsgi.patch(sampling_rate)28 http.patch()29 greenthread.patch()30 31 # monkey patch for capturing application log32 if trace_app_log:33 log.patch()34 35 36def disable_trace_patch():37 http.unpatch()38 wsgi.unpatch()39 greenthread.unpatch()40 log.unpatch()41 api.client.close()42 