public final class MetricName
extends java.lang.Object
MetricName
class encapsulates a metric's name, logical group and its related attributes
This class captures the following parameters
name The name of the metric group logical group name of the metrics to which this metric belongs. description A human-readable description to include in the metric. This is optional. tags additional key/value attributes of the metric. This is optional.group, tags parameters can be used to create unique metric names while reporting in JMX or any custom reporting.
Ex: standard JMX MBean can be constructed like domainName:type=group,key1=val1,key2=val2
Usage looks something like this:
// set up metrics:
Metrics metrics = new Metrics(); // this is the global repository of metrics and sensors
Sensor sensor = metrics.sensor("message-sizes");
Map<String, String> metricTags = new LinkedHashMap<String, String>();
metricTags.put("client-id", "producer-1");
metricTags.put("topic", "topic");
MetricName metricName = new MetricName("message-size-avg", "producer-metrics", "average message size", metricTags);
sensor.add(metricName, new Avg());
metricName = new MetricName("message-size-max", "producer-metrics", metricTags);
sensor.add(metricName, new Max());
metricName = new MetricName("message-size-min", "producer-metrics", "message minimum size", "client-id", "my-client", "topic", "my-topic");
sensor.add(metricName, new Min());
// as messages are sent we record the sizes
sensor.record(messageSize);
Constructor and Description |
---|
MetricName(java.lang.String name,
java.lang.String group) |
MetricName(java.lang.String name,
java.lang.String group,
java.util.Map<java.lang.String,java.lang.String> tags) |
MetricName(java.lang.String name,
java.lang.String group,
java.lang.String description) |
MetricName(java.lang.String name,
java.lang.String group,
java.lang.String description,
java.util.Map<java.lang.String,java.lang.String> tags) |
MetricName(java.lang.String name,
java.lang.String group,
java.lang.String description,
java.lang.String... keyValue) |
public MetricName(java.lang.String name, java.lang.String group, java.lang.String description, java.util.Map<java.lang.String,java.lang.String> tags)
name
- The name of the metricgroup
- logical group name of the metrics to which this metric belongsdescription
- A human-readable description to include in the metrictags
- additional key/value attributes of the metricpublic MetricName(java.lang.String name, java.lang.String group, java.lang.String description, java.lang.String... keyValue)
name
- The name of the metricgroup
- logical group name of the metrics to which this metric belongsdescription
- A human-readable description to include in the metrickeyValue
- additional key/value attributes of the metric (must come in pairs)public MetricName(java.lang.String name, java.lang.String group, java.util.Map<java.lang.String,java.lang.String> tags)
name
- The name of the metricgroup
- logical group name of the metrics to which this metric belongstags
- key/value attributes of the metricpublic MetricName(java.lang.String name, java.lang.String group, java.lang.String description)
name
- The name of the metricgroup
- logical group name of the metrics to which this metric belongsdescription
- A human-readable description to include in the metricpublic MetricName(java.lang.String name, java.lang.String group)
name
- The name of the metricgroup
- logical group name of the metrics to which this metric belongspublic java.lang.String name()
public java.lang.String group()
public java.util.Map<java.lang.String,java.lang.String> tags()
public java.lang.String description()
public int hashCode()
hashCode
in class java.lang.Object
public boolean equals(java.lang.Object obj)
equals
in class java.lang.Object
public java.lang.String toString()
toString
in class java.lang.Object