MetricKey: Handling of integer metrics
In MetricTreeNode, there are int, double, and String metrics. However, MetricKey only handles doubles and strings.
What about marking the type of a MetricKey with a Class<? extends Number> field? In the constructor, you can check that only the admissible types Integer, Double, String are passed.