Interface StreamsMetrics


public interface StreamsMetrics
The Kafka Streams metrics interface for adding metric sensors and collecting metric values.
  • Method Summary

    Modifier and Type
    Method
    Description
    org.apache.kafka.common.metrics.Sensor
    addLatencyRateTotalSensor(String scopeName, String entityName, String operationName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, String... tags)
    Add a latency, rate and total sensor for a specific operation, which will include the following metrics: average latency max latency invocation rate (num.operations / seconds) total invocation count Whenever a user records this sensor via Sensor.record(double) etc., it will be counted as one invocation of the operation, and hence the rate / count metrics will be updated accordingly; and the recorded latency value will be used to update the average / max latency as well.
    org.apache.kafka.common.metrics.Sensor
    addRateTotalSensor(String scopeName, String entityName, String operationName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, String... tags)
    Add a rate and a total sensor for a specific operation, which will include the following metrics: invocation rate (num.operations / time unit) total invocation count Whenever a user records this sensor via Sensor.record(double) etc., it will be counted as one invocation of the operation, and hence the rate / count metrics will be updated accordingly.
    org.apache.kafka.common.metrics.Sensor
    addSensor(String name, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel)
    Generic method to create a sensor.
    org.apache.kafka.common.metrics.Sensor
    addSensor(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.
    Map<org.apache.kafka.common.MetricName,? extends org.apache.kafka.common.Metric>
    Get read-only handle on global metrics registry.
    void
    removeSensor(org.apache.kafka.common.metrics.Sensor sensor)
    Remove a sensor.
  • Method Details

    • metrics

      Map<org.apache.kafka.common.MetricName,? extends org.apache.kafka.common.Metric> metrics()
      Get read-only handle on global metrics registry.
      Returns:
      Map of all metrics.
    • addLatencyRateTotalSensor

      org.apache.kafka.common.metrics.Sensor addLatencyRateTotalSensor(String scopeName, String entityName, String operationName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, String... tags)
      Add a latency, rate and total sensor for a specific operation, which will include the following metrics:
      1. average latency
      2. max latency
      3. invocation rate (num.operations / seconds)
      4. total invocation count
      Whenever a user records this sensor via Sensor.record(double) etc., it will be counted as one invocation of the operation, and hence the rate / count metrics will be updated accordingly; and the recorded latency value will be used to update the average / max latency as well.

      Note that you can add more metrics to this sensor after you created it, which can then be updated upon Sensor.record(double) calls.

      The added sensor and its metrics can be removed with removeSensor().

      Parameters:
      scopeName - name of the scope, which will be used as part of the metric type, e.g.: "stream-[scope]-metrics".
      entityName - name of the entity, which will be used as part of the metric tags, e.g.: "[scope]-id" = "[entity]".
      operationName - name of the operation, which will be used as the name of the metric, e.g.: "[operation]-latency-avg".
      recordingLevel - the recording level (e.g., INFO or DEBUG) for this sensor.
      tags - additional tags of the sensor
      Returns:
      The added sensor.
      See Also:
    • addRateTotalSensor

      org.apache.kafka.common.metrics.Sensor addRateTotalSensor(String scopeName, String entityName, String operationName, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel, String... tags)
      Add a rate and a total sensor for a specific operation, which will include the following metrics:
      1. invocation rate (num.operations / time unit)
      2. total invocation count
      Whenever a user records this sensor via Sensor.record(double) etc., it will be counted as one invocation of the operation, and hence the rate / count metrics will be updated accordingly.

      Note that you can add more metrics to this sensor after you created it, which can then be updated upon Sensor.record(double) calls.

      The added sensor and its metrics can be removed with removeSensor().

      Parameters:
      scopeName - name of the scope, which will be used as part of the metrics type, e.g.: "stream-[scope]-metrics".
      entityName - name of the entity, which will be used as part of the metric tags, e.g.: "[scope]-id" = "[entity]".
      operationName - name of the operation, which will be used as the name of the metric, e.g.: "[operation]-total".
      recordingLevel - the recording level (e.g., INFO or DEBUG) for this sensor.
      tags - additional tags of the sensor
      Returns:
      The added sensor.
      See Also:
    • addSensor

      org.apache.kafka.common.metrics.Sensor addSensor(String name, org.apache.kafka.common.metrics.Sensor.RecordingLevel recordingLevel)
      Generic method to create a sensor. Note that for most cases it is advisable to use addRateTotalSensor() or addLatencyRateTotalSensor() to ensure metric name well-formedness and conformity with the rest of the Kafka Streams code base. However, if the above two methods are not sufficient, this method can also be used.
      Parameters:
      name - name of the sensor.
      recordingLevel - the recording level (e.g., INFO or DEBUG) for this sensor
      Returns:
      The added sensor.
      See Also:
    • addSensor

      org.apache.kafka.common.metrics.Sensor addSensor(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. Note that for most cases it is advisable to use addRateTotalSensor() or addLatencyRateTotalSensor() to ensure metric name well-formedness and conformity with the rest of the Kafka Streams code base. However, if the above two methods are not sufficient, this method can also be used.
      Parameters:
      name - name of the sensor
      recordingLevel - the recording level (e.g., INFO or DEBUG) for this sensor
      Returns:
      The added sensor.
      See Also:
    • removeSensor

      void removeSensor(org.apache.kafka.common.metrics.Sensor sensor)
      Remove a sensor.
      Parameters:
      sensor - sensor to be removed