Skip to main content

Is it somehow possible to get runtime usage statistics from the normalizers?

 

What I want to see is:

How much time was spent within which Compiled Normalizer or Normalizer Package?

How many log messages where normalized with which Compiled Normalizer or Normalizer Package?

 

We have often seen performance issues due to poorly performing normalizer packages or compiled normalizers.

It would be much easier to figure out which normalizer is causing the performance issue here if you could see the above statistics.

This way you could identify runtime hotspots and perform optimizations.

 

Currently I do this manually by stopping a normalizer service and running it in the python debugger:

/opt/immune/bin/envdo /opt/immune/etc/env_bin/python -m pdb /opt/immune/installed/norm/apps/normalizer/normalizer.py /opt/immune/etc/config/normalizer_0/config.json

(Pdb)c
bwait a few seconds]
bpress ctrl + c]
(Pdb)bt
(Pdb)list
(Pdb)display event
bcheck the currently processed log message]

 

Getting a breakdown of how many messages were normalised by which normaliser over a period of time is the easy thing to do (chart count() by norm_id), but I don’t think there is anything we can do about the time spent on each normaliser as things stand.

Improved performance monitoring is one of the themes Product Management is going to look at soon, so it’d be great if you could log this as an idea on the ideas portal - I think the detail would help them.


Thank you @Nils Krumey!

I added the idea here: https://logpoint.ideas.aha.io/ideas/LP-I-99


Reply