XINFO GROUPS
Introduction
In Dragonfly, as well as in Redis and Valkey, the XINFO GROUPS
command provides information about consumer groups associated with a specific stream.
This command is essential for monitoring and managing stream processing tasks, providing insights into consumer group configurations and activity.
Syntax
XINFO GROUPS key
Parameter Explanations
key
: The key of the stream for which consumer groups information is requested.
Return Values
- The command returns a list of dictionaries, each dictionary representing a consumer group and its details.
- The details include fields such as
name
,consumers
,pending
,last-delivered-id
, etc.name
: the consumer group's name.consumers
: the number of consumers within the group.pending
: the length of the group's pending entries list (PEL), which are messages that were delivered but not yet acknowledged.last-delivered-id
: the ID of the last entry delivered to the group's consumer(s).entries-read
: number of entries read by the group's consumers.lag
: the number of entries that are yet to be delivered to the group's consumers.
Code Examples
Basic Example
Get information about consumer groups for a stream:
dragonfly$> XGROUP CREATE mystream mygroup $ MKSTREAM
OK
dragonfly$> XINFO GROUPS mystream
1) 1) "name"
2) "mygroup"
3) "consumers"
4) (integer) 0
5) "pending"
6) (integer) 0
7) "last-delivered-id"
8) "0-0"
9) "entries-read"
10) (nil)
11) "lag"
12) (integer) 0
Monitor Multiple Consumer Groups
Creating and monitoring multiple consumer groups:
dragonfly$> XGROUP CREATE mystream group1 $ MKSTREAM
OK
dragonfly$> XGROUP CREATE mystream group2 $
OK
dragonfly$> XINFO GROUPS mystream
1) 1) "name"
2) "group1"
3) "consumers"
4) (integer) 0
5) "pending"
6) (integer) 0
7) "last-delivered-id"
8) "0-0"
9) "entries-read"
10) (nil)
11) "lag"
12) (integer) 0
2) 1) "name"
2) "group2"
3) "consumers"
4) (integer) 0
5) "pending"
6) (integer) 0
7) "last-delivered-id"
8) "0-0"
9) "entries-read"
10) (nil)
11) "lag"
12) (integer) 0
Best Practices
- Regularly use
XINFO GROUPS
to check on the health and status of consumer groups in your stream processing system. - Ensure consumer groups are correctly created with unique and descriptive names to avoid confusion and ease monitoring and management.
Common Mistakes
- Assuming that
XINFO GROUPS
modifies consumer groups; it only retrieves information.
FAQs
What happens if the stream key does not exist?
If the stream key does not exist, XINFO GROUPS
returns an error.
Can XINFO GROUPS
be used on keys that are not streams?
No, XINFO GROUPS
is specific to streams, and attempting to use it on a non-stream key will result in an error.