src/pyams_apm/packages/chameleon.py
changeset 28 57ede88e05a1
parent 15 1cedda2f8455
equal deleted inserted replaced
27:f39e48cdd7b6 28:57ede88e05a1
    34         """Wrapped method call"""
    34         """Wrapped method call"""
    35         with capture_span('COOK',
    35         with capture_span('COOK',
    36                           span_type='template',
    36                           span_type='template',
    37                           span_subtype='chameleon',
    37                           span_subtype='chameleon',
    38                           span_action='cook',
    38                           span_action='cook',
    39                           extra={'filename': instance.filename},
    39                           extra={
    40                           leaf=True):
    40                               'filename': instance.filename
       
    41                           },
       
    42                           leaf=False):
    41             return wrapped(*args, **kwargs)
    43             return wrapped(*args, **kwargs)
    42 
    44 
    43 
    45 
    44 class ChameleonRenderingInstrumentation(AbstractInstrumentedModule):
    46 class ChameleonRenderingInstrumentation(AbstractInstrumentedModule):
    45     """Chameleon rendering instrumentation"""
    47     """Chameleon rendering instrumentation"""
    49     instrument_list = [("chameleon.template", "BaseTemplate.render")]
    51     instrument_list = [("chameleon.template", "BaseTemplate.render")]
    50 
    52 
    51     def call(self, module, method, wrapped, instance, args, kwargs):
    53     def call(self, module, method, wrapped, instance, args, kwargs):
    52         # pylint: disable=too-many-arguments
    54         # pylint: disable=too-many-arguments
    53         """Wrapped method call"""
    55         """Wrapped method call"""
       
    56         view = kwargs.get('view')
       
    57         context = kwargs.get('context')
    54         with capture_span('RENDER',
    58         with capture_span('RENDER',
    55                           span_type='template',
    59                           span_type='template',
    56                           span_subtype='chameleon',
    60                           span_subtype='chameleon',
    57                           span_action='render',
    61                           span_action='render',
    58                           extra={'filename': instance.filename},
    62                           tags={
    59                           leaf=True):
    63                               'view': '{}.{}'.format(view.__class__.__module__,
       
    64                                                      view.__class__.__name__)
       
    65                               if view is not None else None,
       
    66                               'context': '{}.{}'.format(context.__class__.__module__,
       
    67                                                         context.__class__.__name__)
       
    68                               if context is not None else None
       
    69                           },
       
    70                           extra={
       
    71                               'filename': instance.filename
       
    72                           },
       
    73                           leaf=False):
    60             return wrapped(*args, **kwargs)
    74             return wrapped(*args, **kwargs)