...
Current state: "Under Discussion"
Discussion thread: here [Change the link from the KIP proposal email archive to your own email thread]
JIRA: here [Change the link from KAFKA-1 to your own ticket]5746
Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
...
MBean: kafka.network:type=RequestMetrics,name=ErrorsPerSec,request=api_key_name,error=error_code_name
Since only a small number of error codes are used per request, unused entries will be expired similar to quota metric expiry.
When responses contain multiple errors (e.g. per-partition error in Produce response or per-topic error in CreateTopics), all the errors in the response are counted. So there is a 1:n mapping between responses and errors for some responses. The scope of errors in each response is shown in this table.
ApiKey | Scope of error | Request:Errors Mapping |
---|---|---|
UpdateMetadata | request | 1:1 |
ControlledShutdown | request | 1:1 |
FindCoordinator | request | 1:1 |
JoinGroup | request | 1:1 |
Heartbeat | request | 1:1 |
LeaveGroup | request | 1:1 |
SyncGroup | request | 1:1 |
ListGroups | request | 1:1 |
SaslHandshake | request | 1:1 |
ApiVersions | request | 1:1 |
InitProducerId | request | 1:1 |
AddOffsetsToTxn | request | 1:1 |
EndTxn | request | 1:1 |
DescribeAcls | request | 1:1 |
Produce | partition | 1:n |
Fetch | partition | 1:n |
Offsets | partition | 1:n |
OffsetCommit | partition | 1:n |
OffsetFetch | partition | 1:n |
DeleteRecords | partition | 1:n |
OffsetForLeaderEpoch | partition | 1:n |
AddPartitionsToTxn | partition | 1:n |
WriteTxnMarkers | partition | 1:n |
TxnOffsetCommit | partition | 1:n |
LeaderAndIsr | partition + request | 1:n |
StopReplica | partition + request | 1:n |
Metadata | topic | 1:n |
CreateTopics | topic | 1:n |
DeleteTopics | topic | 1:n |
DescribeGroups | group | 1:n |
CreateAcls | acl | 1:n |
DeleteAcls | acl | 1:n |
DescribeConfigs | resource | 1:n |
AlterConfigs | resource | 1:n |
Fetch down conversion rate
...
This will be a histogram in the same group as existing ZooKeeper session metrics ZooKeeperSyncConnectsPerSec
etca new group ZooKeeperClient.
MBean: kafka.server:type=SessionExpireListenerZooKeeperClient,name=ZooKeeperLatency
Client-side metrics
...
We currently have a MBean for client version that gives commit id and version, but this is not exposed as a metric. In order to optimize upgrades and debug issues, it will be useful to have a gauge for client versions to monitor the versions used by clients.
This will be a Gauge with value 1.
MBean: [kafka.admin.client|kafka.consumer|kafka.producer]:type=client-version,commit_id="CommitId",version="Version"
...