Class StreamsMetricsImpl

    • Constructor Summary

      Constructors 
      Constructor Description
      StreamsMetricsImpl​(org.apache.kafka.common.metrics.Metrics metrics, java.lang.String threadName)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • PROCESSOR_NODE_METRICS_GROUP

        public static final java.lang.String PROCESSOR_NODE_METRICS_GROUP
        See Also:
        Constant Field Values
      • PROCESSOR_NODE_ID_TAG

        public static final java.lang.String PROCESSOR_NODE_ID_TAG
        See Also:
        Constant Field Values
    • Constructor Detail

      • StreamsMetricsImpl

        public StreamsMetricsImpl​(org.apache.kafka.common.metrics.Metrics metrics,
                                  java.lang.String threadName)
    • Method Detail

      • threadLevelSensor

        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)
      • removeAllThreadLevelSensors

        public final void removeAllThreadLevelSensors()
      • taskLevelSensor

        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)
      • removeAllTaskLevelSensors

        public final void removeAllTaskLevelSensors​(java.lang.String taskName)
      • nodeLevelSensor

        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)
      • removeAllNodeLevelSensors

        public final void removeAllNodeLevelSensors​(java.lang.String taskName,
                                                    java.lang.String processorNodeName)
      • cacheLevelSensor

        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)
      • removeAllCacheLevelSensors

        public final void removeAllCacheLevelSensors​(java.lang.String taskName,
                                                     java.lang.String cacheName)
      • storeLevelSensor

        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)
      • removeAllStoreLevelSensors

        public final void removeAllStoreLevelSensors​(java.lang.String taskName,
                                                     java.lang.String storeName)
      • skippedRecordsSensor

        public final org.apache.kafka.common.metrics.Sensor skippedRecordsSensor()
      • metrics

        public java.util.Map<org.apache.kafka.common.MetricName,​? extends org.apache.kafka.common.Metric> metrics()
        Description copied from interface: StreamsMetrics
        Get read-only handle on global metrics registry.
        Specified by:
        metrics in interface StreamsMetrics
        Returns:
        Map of all metrics.
      • recordThroughput

        public void recordThroughput​(org.apache.kafka.common.metrics.Sensor sensor,
                                     long value)
        Description copied from interface: StreamsMetrics
        Record the throughput value of a sensor.
        Specified by:
        recordThroughput in interface StreamsMetrics
        Parameters:
        sensor - add Sensor whose throughput we are recording
        value - throughput value
      • tagMap

        public final java.util.Map<java.lang.String,​java.lang.String> tagMap​(java.lang.String... tags)
      • addLatencyAndThroughputSensor

        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)
        Description copied from interface: StreamsMetrics
        Add a latency and throughput sensor for a specific operation, which will include the following sensors:
        1. average latency
        2. max latency
        3. 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.
        Specified by:
        addLatencyAndThroughputSensor in interface StreamsMetrics
        Parameters:
        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 sensor
        Returns:
        The added sensor.
        Throws:
        java.lang.IllegalArgumentException - if tags is not constructed in key-value pairs
      • addThroughputSensor

        public 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)
        Description copied from interface: StreamsMetrics
        Add a throughput sensor for a specific operation:
        1. 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. This sensor is a strict subset of the sensors created by StreamsMetrics.addLatencyAndThroughputSensor(String, String, String, Sensor.RecordingLevel, String...).
        Specified by:
        addThroughputSensor in interface StreamsMetrics
        Parameters:
        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 sensor
        Returns:
        The added sensor.
        Throws:
        java.lang.IllegalArgumentException - if tags is not constructed in key-value pairs
      • addAvgMaxLatency

        public 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)
      • addInvocationRateAndCount

        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)
      • removeSensor

        public void removeSensor​(org.apache.kafka.common.metrics.Sensor sensor)
        Deletes a sensor and its parents, if any
        Specified by:
        removeSensor in interface StreamsMetrics
        Parameters:
        sensor - sensor to be removed