Github user ptgoetz commented on the issue:
https://github.com/apache/storm/pull/2203
Crude test, but illustrates the cost of meters:
(code marks a meter | increments a counter from 0 to `Integer.MAX`)
```
*** METER ***
Time: 126.39
ops/sec: 16,990,930
*** COUNTER ***
Time: 18.221
ops/sec: 117,857,617
```
The obvious path would be to switch critical path metrics to use counters.
But I'd ultimately err on the side of user choice (e.g. let users decide which
to use). That could be made configurable. I can imagine use cases where users
would be willing to take a minor performance hit for more performance metrics
(e.g. "sleepy" topologies). The performance hit could be tolerable in certain
situations.
For the time being, I'll switch some of the metrics to counters, and re-run.
---