Github user revans2 commented on the issue:
https://github.com/apache/storm/pull/2714
We have 4 separate metrics APIs right now
2 for daemons
https://github.com/apache/storm/blob/master/storm-server/src/main/java/org/apache/storm/metric/api/IClusterMetricsConsumer.java
https://github.com/apache/storm/blob/master/storm-server/src/main/java/org/apache/storm/metric/StormMetricsRegistry.java
and similarly 2 for the workers.
https://github.com/apache/storm/blob/master/storm-client/src/jvm/org/apache/storm/metric/api/IMetricsConsumer.java
https://github.com/apache/storm/blob/master/storm-client/src/jvm/org/apache/storm/metrics2/StormMetricRegistry.java
IClusterMetricsConsumer and IMetricsConsumer are way too open so we
deprecated them, or should do so. They allowed you to send anything
(literately an Object) but they had a lot of context about the metrics, a.k.a.
dimensions, which process it came from, what component, etc. The new APIs fix
the Object issue, because they are based off of the dropwizard/yammer/codahale
API, but it does not support dimensions.
The Flink APIs appears to more or less fix the dimensions issue, but it is
a fork of codahale/yammer.
https://github.com/apache/flink/blob/16ec3d7ea12c520c5c86f0721553355cc938c2ae/flink-metrics/flink-metrics-core/pom.xml
They have no external dependencies.
So are you proposing that we fork just like flink does? do you want us to
use the flink-metrics-core instead as a backend? Either of these choices will
require that we have at a minimum a new API for reporting metrics to other
systems, and possibly a 3rd API for registering metrics. This is not a small
amount of work, and it is possibly going to be painful to our users, who may
have spent some time trying to move to the new APIs. I am not opposed to it,
as it will solve some problems and ugliness that we currently have, I just want
to be sure that we understand the ramifications of a move like this.
On the plus side it would make it so we could have a single API for all
metrics.
---