diff --git a/tracer/gsttr-stats.py b/tracer/gsttr-stats.py index 4547aef3ad..aeee522a93 100644 --- a/tracer/gsttr-stats.py +++ b/tracer/gsttr-stats.py @@ -77,13 +77,12 @@ class Stats(Analyzer): if event[Parser.F_FUNCTION]: return - try: - s = Structure(event[Parser.F_MESSAGE]) - except ValueError: - logger.warning("failed to parse: '%s'", event[Parser.F_MESSAGE]) + msg = event[Parser.F_MESSAGE] + p = msg.find(',') + if p == -1: return - entry_name = s.name + entry_name = msg[:p] if self.classes: if not any([fnmatch(entry_name, c) for c in self.classes]): return @@ -92,6 +91,12 @@ class Stats(Analyzer): if not record: return + try: + s = Structure(msg) + except ValueError: + logger.warning("failed to parse: '%s'", msg) + return + # aggregate event based on class for sk,sv in record['scope'].items(): # look up bin by scope (or create new)