Skip to content

Instantly share code, notes, and snippets.

View GrahamDumpleton's full-sized avatar
😎

Graham Dumpleton GrahamDumpleton

😎
View GitHub Profile
# Run this as:
#
# NEW_RELIC_CONFIG_FILE=newrelic.ini newrelic-admin run-python example.py
#
# If being run under Heroku, you can skip setting NEW_RELIC_CONFIG_FILE on the
# command line as the required environment variable settings added by the
# Heroku New Relic addon will be picked up automatically.
import time
import newrelic.agent
@GrahamDumpleton
GrahamDumpleton / gist:4043434
Created November 9, 2012 02:59
Context manager getattr test.
# Python 2.5, 2.6 runs okay.
# Python 2.7:
#
# Traceback (most recent call last):
#  File "test.py", line 33, in <module>
#    with cm2:
# AttributeError: __exit__
from __future__ import with_statement
@GrahamDumpleton
GrahamDumpleton / gist:4043458
Created November 9, 2012 03:08
Context manager getattr fix.
from __future__ import with_statement
class CM1(object):
def __enter__(self):
print '__enter__'
return self
def __exit__(self, *args):
print '__exit__'
class CM2(object):
@GrahamDumpleton
GrahamDumpleton / gist:4064096
Created November 13, 2012 05:26
Suppress requests module connection logging.
import logging
class RequestsConnectionFilter(logging.Filter):
def filter(self, record):
return False
logging.getLogger('newrelic.lib.requests.packages.urllib3.connectionpool').addFilter(RequestsConnectionFilter())
@GrahamDumpleton
GrahamDumpleton / gist:4083818
Created November 16, 2012 03:40
Using function profile decorator.
[function-profile:profile-1]
enabled = true
function = module:handler
filename = /tmp/profile-%(pid)s.dat
delay = 1.0
checkpoint = 5
@GrahamDumpleton
GrahamDumpleton / gist:4083833
Created November 16, 2012 03:41
Processing profile data.
import pstats
import glob
import sys
filenames = sys.argv[1:]
# Read all stats files into a single object
stats = pstats.Stats(filenames[0])
for i in filenames[1:]:
stats.add(i)
@GrahamDumpleton
GrahamDumpleton / gist:4115734
Created November 20, 2012 03:17
Dealing with overridden Resource.wrap_view in TastyPie.
import newrelic.hooks.component_tastypie
...
def wrap_view(self, view):
...
wrap_view = newrelic.hooks.component_tastypie.ObjectWrapper(wrap_view,
None, newrelic.hooks.component_tastypie.outer_fn_wrapper)
@GrahamDumpleton
GrahamDumpleton / gist:4128656
Created November 22, 2012 00:14
Web external modules loaded.
843,httplib
843,urllib
813,urllib2
163,requests
94,httplib2
87,xmlrpclib
33,feedparser
6,urllib3
@GrahamDumpleton
GrahamDumpleton / gist:4130197
Created November 22, 2012 09:29
uWSGI virtual environment PYTHONHOME issues.
(uwsgi-testing)Grumpys-MacBook-Pro-15:htdocs graham$ which python
/Users/graham/Python/uwsgi-testing/bin/python
(uwsgi-testing)Grumpys-MacBook-Pro-15:htdocs graham$ python
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.prefix
'/Users/graham/Python/uwsgi-testing/bin/..'
@GrahamDumpleton
GrahamDumpleton / gist:4133450
Created November 23, 2012 00:30
New Relic version of manage.py.
# Save this as newrelic-manage.py in same directory as existing manage.py.
#
# Run as:
#
# NEW_RELIC_CONFIG_FILE=/some/path/newrelic.ini python newrelic-manage.py run_gunicorn
import os
import newrelic.agent
here = os.path.dirname(__file__)