Package org.apache.kafka.common.metrics
Interface PluginMetrics
public interface PluginMetrics
This allows plugins to register metrics and sensors.
Any metrics registered by the plugin are automatically removed when the plugin closed.
-
Method Summary
Modifier and TypeMethodDescriptionvoid
addMetric
(MetricName metricName, MetricValueProvider<?> metricValueProvider) Add a metric to monitor an object that implementsMetricValueProvider
.Create aSensor
with the given unique name.metricName
(String name, String description, LinkedHashMap<String, String> tags) Create aMetricName
with the given name, description and tags.void
removeMetric
(MetricName metricName) Remove a metric if it exists.void
removeSensor
(String name) Remove aSensor
and its associated metrics.
-
Method Details
-
metricName
Create aMetricName
with the given name, description and tags. The group will be set to "plugins" Tags to uniquely identify the plugins are automatically added to the provided tags- Parameters:
name
- The name of the metricdescription
- A human-readable description to include in the metrictags
- Additional tags for the metric- Throws:
IllegalArgumentException
- if any of the tag names collide with the default tags for the plugin
-
addMetric
Add a metric to monitor an object that implementsMetricValueProvider
. This metric won't be associated with any sensor. This is a way to expose existing values as metrics.- Parameters:
metricName
- The name of the metricmetricValueProvider
- The metric value provider associated with this metric- Throws:
IllegalArgumentException
- if a metric with same name already exists
-
removeMetric
Remove a metric if it exists.- Parameters:
metricName
- The name of the metric- Throws:
IllegalArgumentException
- if a metric with this name does not exist
-
addSensor
Create aSensor
with the given unique name. The name must only be unique for the plugin, so different plugins can use the same names.- Parameters:
name
- The sensor name- Returns:
- The sensor
- Throws:
IllegalArgumentException
- if a sensor with same name already exists for this plugin
-
removeSensor
Remove aSensor
and its associated metrics.- Parameters:
name
- The name of the sensor to be removed- Throws:
IllegalArgumentException
- if a sensor with this name does not exist
-