public class StreamsMetricsImpl extends java.lang.Object implements StreamsMetrics
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
PROCESSOR_NODE_ID_TAG |
static java.lang.String |
PROCESSOR_NODE_METRICS_GROUP |
Constructor and Description |
---|
StreamsMetricsImpl(org.apache.kafka.common.metrics.Metrics metrics,
java.lang.String threadName) |
Modifier and Type | Method and Description |
---|---|
static void |
addAvgMaxLatency(org.apache.kafka.common.metrics.Sensor sensor,
java.lang.String group,
java.util.Map<java.lang.String,java.lang.String> tags,
java.lang.String operation) |
static void |
addInvocationRateAndCount(org.apache.kafka.common.metrics.Sensor sensor,
java.lang.String group,
java.util.Map<java.lang.String,java.lang.String> tags,
java.lang.String operation) |
org.apache.kafka.common.metrics.Sensor |
addLatencyAndThroughputSensor(java.lang.String scopeName,
java.lang.String entityName,
java.lang.String operationName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel,
java.lang.String... tags)
Add a latency and throughput sensor for a specific operation, which will include the following sensors:
average latency
max latency
throughput (num.operations / time unit)
Also create a parent sensor with the same metrics that aggregates all entities with the same operation under the
same scope if it has not been created.
|
org.apache.kafka.common.metrics.Sensor |
addSensor(java.lang.String name,
org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel)
Generic method to create a sensor.
|
org.apache.kafka.common.metrics.Sensor |
addSensor(java.lang.String name,
org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel,
org.apache.kafka.common.metrics.Sensor... parents)
Generic method to create a sensor with parent sensors.
|
org.apache.kafka.common.metrics.Sensor |
addThroughputSensor(java.lang.String scopeName,
java.lang.String entityName,
java.lang.String operationName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel,
java.lang.String... tags)
Add a throughput sensor for a specific operation:
throughput (num.operations / time unit)
Also create a parent sensor with the same metrics that aggregates all entities with the same operation under the
same scope if it has not been created.
|
org.apache.kafka.common.metrics.Sensor |
cacheLevelSensor(java.lang.String taskName,
java.lang.String cacheName,
java.lang.String sensorName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel,
org.apache.kafka.common.metrics.Sensor... parents) |
java.util.Map<org.apache.kafka.common.MetricName,? extends org.apache.kafka.common.Metric> |
metrics()
Get read-only handle on global metrics registry.
|
org.apache.kafka.common.metrics.Sensor |
nodeLevelSensor(java.lang.String taskName,
java.lang.String processorNodeName,
java.lang.String sensorName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel,
org.apache.kafka.common.metrics.Sensor... parents) |
void |
recordLatency(org.apache.kafka.common.metrics.Sensor sensor,
long startNs,
long endNs)
Record the given latency value of the sensor.
|
void |
recordThroughput(org.apache.kafka.common.metrics.Sensor sensor,
long value)
Record the throughput value of a sensor.
|
void |
removeAllCacheLevelSensors(java.lang.String taskName,
java.lang.String cacheName) |
void |
removeAllNodeLevelSensors(java.lang.String taskName,
java.lang.String processorNodeName) |
void |
removeAllStoreLevelSensors(java.lang.String taskName,
java.lang.String storeName) |
void |
removeAllTaskLevelSensors(java.lang.String taskName) |
void |
removeAllThreadLevelSensors() |
void |
removeSensor(org.apache.kafka.common.metrics.Sensor sensor)
Deletes a sensor and its parents, if any
|
org.apache.kafka.common.metrics.Sensor |
skippedRecordsSensor() |
org.apache.kafka.common.metrics.Sensor |
storeLevelSensor(java.lang.String taskName,
java.lang.String storeName,
java.lang.String sensorName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel,
org.apache.kafka.common.metrics.Sensor... parents) |
java.util.Map<java.lang.String,java.lang.String> |
tagMap(java.lang.String... tags) |
org.apache.kafka.common.metrics.Sensor |
taskLevelSensor(java.lang.String taskName,
java.lang.String sensorName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel,
org.apache.kafka.common.metrics.Sensor... parents) |
org.apache.kafka.common.metrics.Sensor |
threadLevelSensor(java.lang.String sensorName,
org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel,
org.apache.kafka.common.metrics.Sensor... parents) |
public static final java.lang.String PROCESSOR_NODE_METRICS_GROUP
public static final java.lang.String PROCESSOR_NODE_ID_TAG
public StreamsMetricsImpl(org.apache.kafka.common.metrics.Metrics metrics, java.lang.String threadName)
public final org.apache.kafka.common.metrics.Sensor threadLevelSensor(java.lang.String sensorName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, org.apache.kafka.common.metrics.Sensor... parents)
public final void removeAllThreadLevelSensors()
public final org.apache.kafka.common.metrics.Sensor taskLevelSensor(java.lang.String taskName, java.lang.String sensorName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, org.apache.kafka.common.metrics.Sensor... parents)
public final void removeAllTaskLevelSensors(java.lang.String taskName)
public org.apache.kafka.common.metrics.Sensor nodeLevelSensor(java.lang.String taskName, java.lang.String processorNodeName, java.lang.String sensorName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, org.apache.kafka.common.metrics.Sensor... parents)
public final void removeAllNodeLevelSensors(java.lang.String taskName, java.lang.String processorNodeName)
public final org.apache.kafka.common.metrics.Sensor cacheLevelSensor(java.lang.String taskName, java.lang.String cacheName, java.lang.String sensorName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, org.apache.kafka.common.metrics.Sensor... parents)
public final void removeAllCacheLevelSensors(java.lang.String taskName, java.lang.String cacheName)
public final org.apache.kafka.common.metrics.Sensor storeLevelSensor(java.lang.String taskName, java.lang.String storeName, java.lang.String sensorName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, org.apache.kafka.common.metrics.Sensor... parents)
public final void removeAllStoreLevelSensors(java.lang.String taskName, java.lang.String storeName)
public final org.apache.kafka.common.metrics.Sensor skippedRecordsSensor()
public org.apache.kafka.common.metrics.Sensor addSensor(java.lang.String name, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel)
StreamsMetrics
StreamsMetrics.addThroughputSensor(String, String, String, Sensor.RecordingLevel, String...)
or StreamsMetrics.addLatencyAndThroughputSensor(String, String, String, Sensor.RecordingLevel, String...)
to ensure
metric name well-formedness and conformity with the rest of the streams code base.
However, if the above two methods are not sufficient, this method can also be used.addSensor
in interface StreamsMetrics
name
- name of the sensor.recordingLevel
- the recording level (e.g., INFO or DEBUG) for this sensorpublic org.apache.kafka.common.metrics.Sensor addSensor(java.lang.String name, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, org.apache.kafka.common.metrics.Sensor... parents)
StreamsMetrics
StreamsMetrics.addThroughputSensor(String, String, String, Sensor.RecordingLevel, String...)
or StreamsMetrics.addLatencyAndThroughputSensor(String, String, String, Sensor.RecordingLevel, String...)
to ensure
metric name well-formedness and conformity with the rest of the streams code base.
However, if the above two methods are not sufficient, this method can also be used.addSensor
in interface StreamsMetrics
name
- name of the sensorrecordingLevel
- the recording level (e.g., INFO or DEBUG) for this sensorpublic java.util.Map<org.apache.kafka.common.MetricName,? extends org.apache.kafka.common.Metric> metrics()
StreamsMetrics
metrics
in interface StreamsMetrics
public void recordLatency(org.apache.kafka.common.metrics.Sensor sensor, long startNs, long endNs)
StreamsMetrics
StreamsMetrics.addLatencyAndThroughputSensor(String, String, String, Sensor.RecordingLevel, String...)
method, then the
throughput metrics will also be recorded from this event.recordLatency
in interface StreamsMetrics
sensor
- sensor whose latency we are recording.startNs
- start of measurement time in nanoseconds.endNs
- end of measurement time in nanoseconds.public void recordThroughput(org.apache.kafka.common.metrics.Sensor sensor, long value)
StreamsMetrics
recordThroughput
in interface StreamsMetrics
sensor
- add Sensor whose throughput we are recordingvalue
- throughput valuepublic final java.util.Map<java.lang.String,java.lang.String> tagMap(java.lang.String... tags)
public org.apache.kafka.common.metrics.Sensor addLatencyAndThroughputSensor(java.lang.String scopeName, java.lang.String entityName, java.lang.String operationName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, java.lang.String... tags)
StreamsMetrics
addLatencyAndThroughputSensor
in interface StreamsMetrics
scopeName
- name of the scope, could be the type of the state store, etc.entityName
- name of the entity, could be the name of the state store instance, etc.operationName
- name of the operation, could be get / put / delete / etc.recordingLevel
- the recording level (e.g., INFO or DEBUG) for this sensor.tags
- additional tags of the sensorjava.lang.IllegalArgumentException
- if tags is not constructed in key-value pairspublic org.apache.kafka.common.metrics.Sensor addThroughputSensor(java.lang.String scopeName, java.lang.String entityName, java.lang.String operationName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, java.lang.String... tags)
StreamsMetrics
StreamsMetrics.addLatencyAndThroughputSensor(String, String, String, Sensor.RecordingLevel, String...)
.addThroughputSensor
in interface StreamsMetrics
scopeName
- name of the scope, could be the type of the state store, etc.entityName
- name of the entity, could be the name of the state store instance, etc.operationName
- name of the operation, could be get / put / delete / etc.recordingLevel
- the recording level (e.g., INFO or DEBUG) for this sensor.tags
- additional tags of the sensorjava.lang.IllegalArgumentException
- if tags is not constructed in key-value pairspublic static void addAvgMaxLatency(org.apache.kafka.common.metrics.Sensor sensor, java.lang.String group, java.util.Map<java.lang.String,java.lang.String> tags, java.lang.String operation)
public static void addInvocationRateAndCount(org.apache.kafka.common.metrics.Sensor sensor, java.lang.String group, java.util.Map<java.lang.String,java.lang.String> tags, java.lang.String operation)
public void removeSensor(org.apache.kafka.common.metrics.Sensor sensor)
removeSensor
in interface StreamsMetrics
sensor
- sensor to be removed