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()