<style>
  input.search-bar {
    box-sizing: border-box;
    margin-bottom: 30px;
    font-size: 22px;
    padding: 20px;
    padding-left: 60px;
    border: 0;
    border-radius: 4px;
    box-shadow: none;
    flex: 1;
    width: 100%;
    color: #3B454F;
    line-height: 27.5px;
    background: #F1FAFF 20px 24px no-repeat url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAGqSURBVHgBrZRBTsJQEIZnHi6AkNiVeYRNDZC4xBMIN9AT0BuIJxBPwBHEExhPQDmB7NFYFiRNcNEFCZu2z5n2EUnpKwSd5KXT8vN15vWfh5AJy7KtSuXMiWNlI8I5AC7osev7Hy4cEbh7I2XrUQgYKAXWvlR5SkU93/c8OAYoZfsZUTn6dkpQNxEg2nS5ISBfgzDE3mo1nxUCuTJqb0griGO4y7Yn5ZUtRDiil9wydLMJL4PAC3KJLK7XW4qXlE0HCoI0k1TXGpo0AiDq6nzq+5/jAh5QhU9JWwj3RiBi3NFiFw7EzlZY7IZcoFLCghOiXIZ8INsBkgrVQTDv9zY32YeAaatCYN/Uxm+EfZ1MTQqh94WXVa2WRiZho9HusLU4p27GRqCu7oE9qBQ69Xrzi2zR3Qq4avYpjeK7fkT+i1wTEHcrIFO/6onIFycv5Y9hHkOxTZbL+UypUo/+9kIrK+RR7MXx2XX6G9LBUZpIadvGCrPBrbI1slXwl0aMJmkn+5UagUVRBD0JWAQ9GWiCluAPsV5/B7XaxRudo3ys2TTGC/iP0EfggPMf4IXM0qeAeMAAAAAASUVORK5CYII=);
    background-clip: padding-box;
    }
 </style>

 <script>
 function filterList() {
     // Get input value and convert to lowercase
     var input = document.getElementById("search-bar").value.toLowerCase();

     // Get all of the sections.
     var sections = document.getElementsByTagName("section")

     // Loop through the sections and check for h3s, which is the section type that contains the config values.
     for (var i = 0; i < sections.length; i++) {
     var section = sections[i];
     var h3Entries = section.getElementsByTagName("h3")
     // There is only 1 h3 in a section that contains a config value.
     if (h3Entries.length == 1) {
             // Now, check if the term matches the search input, and if so display the section. Otherwise, hide it.
         var h3text = h3Entries[0].textContent.toLowerCase();
         if (h3text.indexOf(input) > -1)
         section.style.display ="";
         else
         section.style.display = "none";
     }
     }
     }
   window.addEventListener('load', filterList);
 </script>

<a id="group-coordinator-metrics"></a>

# Group Coordinator Metrics

This topic describes JMX metrics for the Kafka group coordinator.
These metrics are useful for monitoring consumer group management in your Kafka cluster.

For information about how to configure JMX, see [Configure JMX for Monitoring](configure-jmx.md#configure-jmx).

## Search for a metric

<form>

  <input type="text" id="search-bar"
    class="search-bar"
    aria-label="Search"
    placeholder="Enter search text..."
    onkeyup="filterList()"
    autocomplete="off"></input>
 </form>

The following metrics are available for monitoring the group coordinator.

### batch-flush-rate

MBean: `kafka.server:type=group-coordinator-metrics,name=batch-flush-rate`
: The number of batches flushed per second.

### batch-flush-time-ms

MBean: `kafka.server:type=group-coordinator-metrics,name=batch-flush-time-ms-[max|p50|p95|p99|p999]`
: The time that a batch took to be flushed to the local partition.

### batch-linger-time-ms

MBean: `kafka.server:type=group-coordinator-metrics,name=batch-linger-time-ms-[max|p50|p95|p99|p999]`
: The effective linger time of a batch before being flushed.

### consumer-group-count

MBean: `kafka.server:type=group-coordinator-metrics,name=consumer-group-count,state=[empty|assigning|reconciling|stable|dead]`
: Total number of consumer groups in each state. Possible states can be `Empty`, `Assigning`, `Reconciling`, `Stable`, or `Dead`.

### consumer-group-rebalance-count

MBean: `kafka.server:type=group-coordinator-metrics,name=consumer-group-rebalance-count`
: Total number of consumer group rebalances.

### consumer-group-rebalance-rate

MBean: `kafka.server:type=group-coordinator-metrics,name=consumer-group-rebalance-rate`
: The rebalance rate of consumer groups.

### event-processing-time-ms

MBean: `kafka.server:type=group-coordinator-metrics,name=event-processing-time-ms-[max|p50|p95|p99|p999]`
: The time that an event took to be processed.

### event-purgatory-time-ms

MBean: `kafka.server:type=group-coordinator-metrics,name=event-purgatory-time-ms-[max|p50|p95|p99|p999]`
: The time that an event waited in the purgatory before being completed.

### event-queue-size

MBean: `kafka.server:type=group-coordinator-metrics,name=event-queue-size`
: The number of events waiting to be processed in the queue.

### event-queue-time-ms

MBean: `kafka.server:type=group-coordinator-metrics,name=event-queue-time-ms-[max|p50|p95|p99|p999]`
: The time that an event spent waiting in the queue to be processed.

### group-completed-rebalance-count

MBean: `kafka.server:type=group-coordinator-metrics,name=group-completed-rebalance-count`
: The total number of classic group completed rebalances.

### group-completed-rebalance-rate

MBean: `kafka.server:type=group-coordinator-metrics,name=group-completed-rebalance-rate`
: The rate of classic group completed rebalances.

### group-count

MBean: `kafka.server:type=group-coordinator-metrics,name=group-count,protocol={consumer|classic|streams}`
: The total number of groups per group type. Possible types are `Classic`, `Consumer`, or `Streams`.

### NumGroups (Classic)

MBean: `kafka.server:type=GroupMetadataManager,name=NumGroups`
: Total number of Classic Groups.

### NumGroups by state (Classic)

MBean: `kafka.server:type=GroupMetadataManager,name=NumGroups[PreparingRebalance,CompletingRebalance,Empty,Stable,Dead]`
: The number of Classic Groups in each state. Possible states can be `PreparingRebalance`, `CompletingRebalance`, `Empty`, `Stable`, or `Dead`.

### NumOffsets

MBean: `kafka.server:type=GroupMetadataManager,name=NumOffsets`
: Total number of committed offsets for classic and consumer groups.

### offset-commit-count

MBean: `kafka.server:type=group-coordinator-metrics,name=offset-commit-count`
: The total number of committed offsets.

### offset-commit-rate

MBean: `kafka.server:type=group-coordinator-metrics,name=offset-commit-rate`
: The rate of committed offsets.

### offset-deletion-count

MBean: `kafka.server:type=group-coordinator-metrics,name=offset-deletion-count`
: The total number of administrative deleted offsets.

### offset-deletion-rate

MBean: `kafka.server:type=group-coordinator-metrics,name=offset-deletion-rate`
: The rate of administrative deleted offsets.

### offset-expiration-count

MBean: `kafka.server:type=group-coordinator-metrics,name=offset-expiration-count`
: The total number of expired offsets.

### offset-expiration-rate

MBean: `kafka.server:type=group-coordinator-metrics,name=offset-expiration-rate`
: The rate of expired offsets.

### Partition count by state

MBean: `kafka.server:type=group-coordinator-metrics,name=num-partitions,state={loading|active|failed}`
: The number of `__consumer_offsets` partitions hosted by the broker, broken down by state. Possible states can be `loading`, `active`, or `failed`.

### partition-load-time-avg

MBean: `kafka.server:type=group-coordinator-metrics,name=partition-load-time-avg`
: The average loading time needed to read the state from the `__consumer_offsets` partitions.

### partition-load-time-max

MBean: `kafka.server:type=group-coordinator-metrics,name=partition-load-time-max`
: The maximum loading time needed to read the state from the `__consumer_offsets` partitions.

### thread-idle-ratio-avg

MBean: `kafka.server:type=group-coordinator-metrics,name=thread-idle-ratio-avg`
: The average idle ratio of the coordinator threads.

## Related content

- [Monitor Kafka with JMX in Confluent Platform](monitoring.md#kafka-monitoring)
- [Configure JMX for Monitoring](configure-jmx.md#configure-jmx)
- [Broker and Controller Metrics](broker-metrics.md#broker-metrics)
- [Log and Network Metrics](log-network-metrics.md#log-network-metrics)
- [Consumer Metrics](consumer-metrics.md#consumer-metrics)
- [Producer Metrics](producer-metrics.md#producer-metrics)
- [Security Metrics](security-metrics.md#security-metrics)
