Skip to content

Instantly share code, notes, and snippets.

@samuraisam
Created June 8, 2012 21:56
Show Gist options
  • Save samuraisam/2898268 to your computer and use it in GitHub Desktop.
Save samuraisam/2898268 to your computer and use it in GitHub Desktop.
Adds function-level tracing to pycassa
import newrelic.api.function_trace
def instrument_pycassa_connection(module):
newrelic.api.function_trace.wrap_function_trace(
module, 'Connection.__init__')
_cf_methods = ['xget', 'get', 'get_indexed_slices', 'multiget', 'get_count',
'multiget_count', 'get_range', 'insert', 'batch_insert',
'add', 'remove', 'remove_counter', 'truncate']
def instrument_pycassa_columnfamily(module):
for meth in _cf_methods:
try:
newrelic.api.function_trace.wrap_function_trace(
module, 'ColumnFamily.{}'.format(meth))
except AttributeError:
print 'not tracing ColumnFamily.{}'.format(meth)
_cfm_methods = ['get', 'multiget', 'get_range', 'get_indexed_slices', 'insert',
'batch_insert', 'remove']
def instrument_pycassa_columnfamilymap(module):
for meth in _cfm_methods:
try:
newrelic.api.function_trace.wrap_function_trace(
module, 'ColumnFamilyMap.{}'.format(meth))
except AttributeError:
print 'not tracing ColumnFamilyMap.{}'.format(meth)
instrument_pycassa_connection('pycassa.connection')
instrument_pycassa_columnfamily('pycassa.columnfamily')
instrument_pycassa_columnfamilymap('pycassa.columnfamilymap')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment