Example #1
0
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
# DISCLAIMED. IN NO EVENT SHALL LIBRATO, INC. BE LIABLE FOR ANY
# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

import sys
from librato_python_web.instrumentor import bootstrap

bootstrap.init()

# Gather every top-level module we instrument
unexpected = set()
for lib in bootstrap._instrumentors:
    for instrumentor in bootstrap._instrumentors[lib]:
        for module in instrumentor.modules:
            unexpected.add(module.split('.')[0])

# Gather top-level modules that actually exist
actual = set([m.split('.')[0] for m in sys.modules])


for prefix in actual:
    assert prefix not in unexpected, "Module %s was unexpectedly loaded" % prefix
from librato_python_web.instrumentor import bootstrap

bootstrap.init()

import gevent
from gevent import monkey
monkey.patch_all()

import requests
import werkzeug.serving

# Ensure the patched libs are in use
assert 'gevent' in requests.adapters.socket.socket.__module__, "Requests used unpatched socket"
assert 'gevent' in werkzeug.serving.socket.socket.__module__, "Werkzeug used unpatched socket"
Example #3
0
import os
from librato_python_web.instrumentor.bootstrap import init

os.environ['LIBRATO_INTEGRATION'] = 'django'
init()