public final class MetricName
extends java.lang.Object
MetricName
class encapsulates a metric's name, logical group and its related attributes. It should be constructed using metrics.MetricName(...).
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:
Map<String, String> metricTags = new LinkedHashMap<String, String>();
metricTags.put("client-id", "producer-1");
metricTags.put("topic", "topic");
MetricConfig metricConfig = new MetricConfig().tags(metricTags);
Metrics metrics = new Metrics(metricConfig); // this is the global repository of metrics and sensors
Sensor sensor = metrics.sensor("message-sizes");
MetricName metricName = metrics.metricName("message-size-avg", "producer-metrics", "average message size");
sensor.add(metricName, new Avg());
metricName = metrics.metricName("message-size-max", "producer-metrics");
sensor.add(metricName, new Max());
metricName = metrics.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,
java.lang.String description,
java.util.Map<java.lang.String,java.lang.String> tags)
Please create MetricName by method
Metrics.metricName(String, String, String, Map) |
Modifier and Type | Method and Description |
---|---|
java.lang.String |
description() |
boolean |
equals(java.lang.Object obj) |
java.lang.String |
group() |
int |
hashCode() |
java.lang.String |
name() |
java.util.Map<java.lang.String,java.lang.String> |
tags() |
java.lang.String |
toString() |
public MetricName(java.lang.String name, java.lang.String group, java.lang.String description, java.util.Map<java.lang.String,java.lang.String> tags)
Metrics.metricName(String, String, String, Map)
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 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