Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Current state: Under Discussion 

Discussion thread: here 

JIRA: here 

Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

Public Interfaces

New Metrics

Each added metric will be on the client-level  and have the following tag:

  • type = client-metrics

The metrics for thread state will also contain an additional tag:

  • thread-id=[thread-id] 

The following table provides the new metric name, recording level, type, and description.  Additionally, the group, tag, and converted telemetry name are provided.

NameRecording LevelMetric TypeDescriptionGroupTagsTelemetry NameMBEAN Name
client-stateINFOGaugeThe current state of the Kafka Streams instance stream-metricsclient-id, process-idorg.apache.kafka.stream.client.statekafka.streams:type=stream-metrics,client-id=([-.\w]+), process-id=([-.\w]+)
thread
NameRecording LevelMetric TypeDescription
client-stateINFOGaugeThe current state of the Kafka Streams instance  StreamThread stream-thread-metricsthread-id, process-idorg.apache.kafka.stream.thread.thread.statekafka.streams:type=stream-thread-metrics,thread-id=([-.\w]+), process-id=([-.\w]+)
stateINFOStringINFOGaugeThe current state of the StreamThread stream-thread-metricsthread-idN/A JMX onlykafka.streams:type=stream-thread-metrics,thread-id=([-.\w]+)
recording-levelINFOGaugeIntegerThe level of metrics recordingstream-metricsclient-id, process-idorg.apache.kafka.stream.recording.levelkafka.streams:type=stream-metrics,client-id=([-.\w]+), process-id=([-.\w]+)

Values for client-state metrics

The client-state  metric values will reflect the current state of the Kafka Streams client instance, represented by the value returned by KafkaStreams.State.ordinal() of the current state enum.

Client StateMetric Value
CREATED0
REBALANCING1
RUNNING2
PENDING_SHUTDOWN3
NOT_RUNNING4
PENDING_ERROR5
ERROR6

Values for thread-state metrics (KIP-1076 extension)

The thread-state  metric will reflect the current state of a StreamThread  instance, represented by the value returned by StreamThread.State.ordinal()  of the current state enum.

Thread StateMetric Value
CREATED0
STARTING1
PARTITIONS_REVOKED2
PARTITIONS_ASSIGNED3
RUNNING4
PENDING_SHUTDOWN5
DEAD6

Values for thread-state metrics (JMX)

The thread-state  metric for JMX reporters will also reflect the current state represented by the current StreamThread.State, but the metric will be the string value of enum name.

Thread StateMetric Value
CREATED"created"
STARTING"starting"
PARTITIONS_REVOKED"partitions_revoked"
PARTITIONS_ASSIGNED"partitions_assigned"
RUNNING"running"
PENDING_SHUTDOWN"pending_shutdown"
DEAD"dead"

Values for recording-level metrics

The recording-level metric will map the values in the following table

Recording levelMetric Value
INFO0
DEBUG1
TRACE2

Proposed Changes

These new metrics will be available at the INFO level.  Both the client-state  and thread-state will be updated to reflect the changes in the client or thread state.  The recording-level is determined on startup and contains the configured metrics recording level. 

...