Monedula
monedula-sim-link docs menu

Choose which topics to show

Select the topics monedula-sim-link visualizes, by exact name, by regular expression or both, and include internal topics such as __consumer_offsets.

How-to guides 2 of 6

2 min read

Updated 9 October 2026

Markdown

On this page

By default connect shows every non-internal topic of the cluster.

Before you start

Steps

1. Pick topics by exact name

--topics takes a comma-separated list of exact topic names, and on its own selects just those:

monedula-sim-link connect --brokers localhost:9092 --topics orders,payments

Every name must exist. If one is missing, the command fails and names it, for example topics not found in the cluster: nope, and it creates nothing.

2. Or pick topics by pattern

--topics-regex takes a Go regular expression and adds every non-internal topic whose name matches:

monedula-sim-link connect --brokers localhost:9092 --topics-regex '^prod-'

The pattern is not anchored, so prod- also matches staging-prod-copy. Add ^ and $ when you mean the whole name.

3. Combine both

When you give both flags, the selection is the exact names plus every non-internal topic that matches the pattern:

monedula-sim-link connect --brokers localhost:9092 \
  --topics orders --topics-regex '^payments-'

4. Include an internal topic by name

Internal topics are the ones the broker flags as internal, such as __consumer_offsets, and topics with a leading underscore, such as _schemas. They are never selected by default or by --topics-regex. Listing one by exact name in --topics is the only way to include it:

monedula-sim-link connect --brokers localhost:9092 --topics __consumer_offsets --clamp

__consumer_offsets has 50 partitions by default, more than the simulator renders, so the example adds --clamp.

What the selection affects

A selected topic named exactly orders becomes the simulator’s primary topic; without one, the primary topic is a one-partition placeholder, with a warning. At most 6 other topics fit. From a longer selection the tool keeps the topics you listed with --topics, then the most eventful of the rest, and warns which it kept; Handle large clusters has the ranking. A consumer group appears only if it has committed offsets on a shown topic, and at most 4 groups are shown. Names the simulator cannot carry, such as billing.events, are renamed. The mapping reference has each rule.

Check it worked

Run the command with --dry-run. The topics: table lists every selected topic as real name -> simulator name, so you can check the selection before you share the link.

If the selection finds nothing, connect fails with topic selection matched nothing and a reminder that internal topics are excluded unless you list them with --topics. A cluster that has no non-internal topics fails with its own message. It never prints a link to an empty cluster.