Exemplo n.º 1
0
def instrument_requests_api(module):
    def url_request(method, url, *args, **kwargs):
        return url

    if hasattr(module, 'request'):

        wrap_external_trace(module, 'request', 'requests', url_request)
Exemplo n.º 2
0
def instrument_requests_sessions(module):
    def url_request(obj, method, url, *args, **kwargs):
        return url

    def url_send(obj, request, *args, **kwargs):
        return request.url

    if hasattr(module.Session, 'send'):

        # Session.send() was introduced in v1.0.0. At the same time,
        # Session.request() was modified to use Session.send() underneath,
        # so if the version of Requests is >= 1.0.0, then we only need to
        # instrument Session.send().

        wrap_external_trace(module, 'Session.send', 'requests', url_send)

    else:

        # If Session.send() doesn't exist, then we are instrumenting
        # a version of Requests < 1.0.0, so we need to instrument
        # Session.request().

        if hasattr(module.Session, 'request'):
            wrap_external_trace(module, 'Session.request', 'requests',
                                url_request)
Exemplo n.º 3
0
def instrument_weberror_reporter(module):

    def smtp_url(reporter, *args, **kwargs):
        return 'smtp://' + reporter.smtp_server

    wrap_external_trace(module, 'EmailReporter.report', 'weberror', smtp_url)
    wrap_function_trace(module, 'EmailReporter.report')

    wrap_function_trace(module, 'LogReporter.report')
    wrap_function_trace(module, 'FileReporter.report')
Exemplo n.º 4
0
def instrument(module):

    def tsocket_open_url(socket, *args, **kwargs):
        scheme = 'socket' if socket._unix_socket else 'http'
        if socket.port:
            url = '%s://%s:%s' % (scheme, socket.host, socket.port)
        else:
            url = '%s://%s' % (scheme, socket.host)

        return url

    wrap_external_trace(module, 'TSocket.open', 'thrift', tsocket_open_url)
Exemplo n.º 5
0
def instrument_gluon_tools(module):

    # Wrap utility function for fetching an external URL.

    def url_external_fetch(url, *args, **kwargs):
        return url

    wrap_external_trace(module,
                        'fetch',
                        library='gluon.tools.fetch',
                        url=url_external_fetch)

    # Wrap utility function for fetching GEOCODE data.
    # The URL in this case is hardwired in code to point
    # at Google service and not part of arguments to we
    # need to hard code it here as well.

    wrap_external_trace(module,
                        'geocode',
                        library='gluon.tools.geocode',
                        url='http://maps.google.com/maps/geo')
Exemplo n.º 6
0
def instrument(module):
    def url_connect_http(connection):
        return 'http://%s/' % connection.host

    wrap_external_trace(module, 'HTTPConnectionWithTimeout.connect',
                        'httplib2', url_connect_http)

    def url_connect_https(connection):
        return 'https://%s/' % connection.host

    wrap_external_trace(module, 'HTTPSConnectionWithTimeout.connect',
                        'httplib2', url_connect_https)

    def url_request(connection, uri, *args, **kwargs):
        return uri

    wrap_external_trace(module, 'Http.request', 'httplib2', url_request)
Exemplo n.º 7
0
def instrument(module):

    def url_connect_http(connection):
        return 'http://%s/' % connection.host

    wrap_external_trace(module, 'HTTPConnectionWithTimeout.connect', 'httplib2',
                        url_connect_http)

    def url_connect_https(connection):
        return 'https://%s/' % connection.host

    wrap_external_trace(module, 'HTTPSConnectionWithTimeout.connect', 'httplib2',
                        url_connect_https)

    def url_request(connection, uri, *args, **kwargs):
        return uri

    wrap_external_trace(module, 'Http.request', 'httplib2', url_request)
Exemplo n.º 8
0
def instrument(module):
    def url_query(graph_obj, method, path, *args, **kwargs):
        return '/'.join([graph_obj.url, path])

    wrap_external_trace(module, 'GraphAPI._query', 'facepy', url_query)
Exemplo n.º 9
0
def instrument(module):
    def url_request(rest_obj, method, url, *args, **kwargs):
        return url

    wrap_external_trace(module, 'rest.RESTClientObject.request', 'dropbox',
                        url_request)
Exemplo n.º 10
0
def instrument(module):

    wrap_external_trace(module, 'Transport.request', 'xmlrpclib', wrap_transport_request)
Exemplo n.º 11
0
def instrument(module):

    def url_query(graph_obj, method, path, *args, **kwargs):
        return '/'.join([graph_obj.url, path])

    wrap_external_trace(module, 'GraphAPI._query', 'facepy', url_query)
Exemplo n.º 12
0
def instrument(module):

    def url_request(rest_obj, method, url, *args, **kwargs):
        return url

    wrap_external_trace(module, 'rest.RESTClientObject.request', 'dropbox', url_request)