please don’t mention Timer Info node in this context. I tried using it months ago. In my opinion, it’s suitable for very, very, very simple workflows. At the time you introduce loops or even more nested loops, Wrapped Metanodes, multiple nodes of the same type to your workflow, it gets useless.
Let’s consider I process a number of tables in my workflow in a loop. I read the table, then I perform some magic with its content and I write it to its destination. Imagine the size of the tables varies between a couple of rows to millions of rows. If you want to know how long did it take to process each of the tables, the Timer Info can’t tell you the answer. The only option is to parse the console log. First, you set it’s level to the DEBUG. Then you run your workflow. Now you have to find the first and the last node of each iteration. Then, you have to bind each iteration to the name of the current table. You probably do it parsing SQL expression Database Reader or Writer node outputs. It’s not easy if you use an automatic logs-collecting tool like Logstash especially because the SQL is likely line-wrapped in the log.
But if you had an option to register your custom handler which gets notified every time any node is entered or left, you’d be fine with this.