Monedula

Cette page a été traduite automatiquement depuis l’anglais. Lire l’original

monedula-sim-link v0.11.0, Apache-2.0

Ouvrir votre cluster Kafka dans le simulateur

Pour visualiser un vrai cluster Kafka, monedula-sim-link en prend un instantané et affiche un lien qui ouvre le Kafka Simulator à son image : brokers, topics, placement des partitions, pannes, un échantillon du volume de données, groupes de consommateurs et configurations de topic. Partagez le lien, ou laissez un agent IA le construire via MCP.

go install
go install github.com/monedula-dev/monedula-sim-link/cmd/monedula-sim-link@latest
GitHub Release
VERSION=0.11.0
curl -L -o monedula-sim-link.tar.gz \
  https://github.com/monedula-dev/monedula-sim-link/releases/download/v${VERSION}/monedula-sim-link_${VERSION}_linux_amd64.tar.gz
tar -xzf monedula-sim-link.tar.gz monedula-sim-link
terminal
monedula-sim-link connect --brokers localhost:9092 --topics orders,payments# one snapshot of orders and payments, printed as one linkhttps://monedula.dev/kafka-simulator/playground?scenario=free&actions=…&size=3x6x3x…

Le lien affiché est raccourci ici.

Comment ça fonctionne

  1. 01

    Capturer connect

    Lire une fois les brokers, les topics, les partitions, les groupes de consommateurs et les configurations de topic.

  2. 02

    Mapper mapper les noms

    Les brokers deviennent broker-1 à broker-N. Les noms que le simulateur ne peut pas reprendre sont renommés, et --dry-run affiche les tables.

  3. 03

    Valider valider

    Une fois décodé, le lien doit redonner les mêmes actions et tenir en 2048 caractères (--force n'assouplit que la longueur), sinon aucun lien n'est affiché.

  4. 04

    Afficher afficher l'URL

    Un seul lien sur la sortie standard. Le même instantané donne toujours la même URL.

  5. 05

    Ouvrir ouvrir le lien

    Le playground ouvre une session free-play à l'image de votre cluster.

10
brokers au plus par lien
6
topics au plus, outre le topic orders par défaut
24
partitions au plus par topic
4
groupes de consommateurs au plus
  1. Votre cluster Kafka brokers, topics, groupes, configurations
  2. connect la ligne de commande
    cluster_to_url l'outil MCP
  3. Un seul pipeline instantané, mapping, validation
  4. Lien vers le playground une session free-play du Kafka Simulator
La CLI et l'outil MCP partagent un même pipeline : tous deux affichent le même lien à partir du même instantané.

Il n'écrit jamais dans votre cluster

connect ne produit aucun enregistrement, ne crée ni ne modifie aucun topic ni aucune configuration, ne rejoint aucun groupe de consommateurs et ne valide aucun offset. La requête Metadata est envoyée avec AllowAutoTopicCreation=false : rechercher un topic ne peut donc jamais le créer. Un principal disposant de la permission Describe sur le cluster, ses topics et ses groupes de consommateurs, ainsi que de DescribeConfigs sur les configurations de ses topics, suffit. Seul le flag facultatif --producers demande davantage : sa requête DescribeProducers exige la permission Read sur les topics sélectionnés.

Toute la surface client tient dans un seul fichier source, snapshot/kafka.go, ce qui permet d'auditer la garantie en un seul endroit, et une suite de bout en bout sur un cluster KRaft à trois nœuds, avec des images Apache Kafka et Confluent Platform, vérifie que rien n'a changé.

La garantie de lecture seule (en anglais)

Huit requêtes, plus une facultative
ApiVersionsle handshake du client
Metadatabrokers, topics, leaders, réplicas, réplicas synchronisés
ListOffsetspremier et dernier offset de chaque partition
ListGroupsles groupes de consommateurs
FindCoordinatorla recherche du coordinateur de chaque groupe
DescribeGroupsleur état et leurs membres
OffsetFetchles offsets qu'ils ont validés
DescribeConfigsles configurations des topics sélectionnés
DescribeProducersseulement avec --producers : les producteurs idempotents et transactionnels qui ont écrit récemment

Ce que montre le lien

Le lien ouvre une session free-play du Kafka Simulator à l'image de votre cluster. C'est une reconstruction à partir d'un seul instantané, qui dit donc ce qu'elle approxime : les offsets réels exacts, le contrôleur et la disposition des racks ne sont pas repris, et les enregistrements sont synthétiques.

Ce que montre le lien (en anglais)

Forme
nombre de brokers, topics sélectionnés, leurs vrais nombres de partitions et facteurs de réplication
Placement
réaffectations, uniquement pour les partitions qui diffèrent du placement par défaut du simulateur
Pannes
les brokers hors ligne sont arrêtés, ceux absents d'une liste de réplicas synchronisés sont ralentis
Volume de données
jusqu'à 8 enregistrements synthétiques avec clé par partition par défaut, chacun sur sa partition
Groupes
groupes de consommateurs avec offsets validés, leurs membres, et le lag sous la forme d'un groupe qui résorbe le retard
Producteurs
avec --producers : jusqu'à 4 producteurs idempotents ou transactionnels ayant écrit au cours des 15 dernières minutes
Configurations
cleanup.policy, min.insync.replicas, retention.ms, retention.bytes

Il vérifie le lien avant de l'afficher

Le playground écarte en silence les entrées malformées : un lien subtilement faux ouvrirait donc une session qui semble correcte mais montre autre chose.

L'auto-validation avant l'affichage (en anglais)

Les deux vérifications
1Le log d'actions doit faire l'aller-retour : encoder, décoder, encoder, à l'identique. Jamais contournable.
2Le lien doit faire au plus 2048 caractères. --force rétrograde cette vérification en simple avertissement.

Clusters réels

TLS, SCRAM et mTLS

Connectez-vous en clair, en TLS ou en TLS mutuel, avec SASL PLAIN, SCRAM-SHA-256 ou SCRAM-SHA-512. Choisissez les topics par nom exact, par expression régulière, ou les deux.

Préférez la variable d'environnement MONEDULA_SIM_LINK_PASSWORD à --password, pour que le secret reste hors de l'historique de votre shell.

Se connecter à un cluster sécurisé (en anglais)

terminal
export MONEDULA_SIM_LINK_PASSWORD='...'
monedula-sim-link connect \
  --brokers broker1.example.com:9093,broker2.example.com:9093 \
  --tls --ca-cert ./cluster-ca.pem \
  --sasl-mechanism scram-sha-512 --username viewer

Prévisualiser le contenu d'un lien

--dry-run affiche, avant le lien, le paramètre de taille, les tables qui font correspondre les vrais noms de brokers, de topics et de groupes aux noms affichés par le simulateur, et la liste d'actions décodée.

Sans cluster sous la main, demo --dry-run fait passer une fixture intégrée par le même pipeline. La sortie présentée provient de cette fixture.

Prévisualiser un lien avant de le partager (en anglais)

terminal
monedula-sim-link demo --dry-run
size: 4x3x3xpayments~1~2~1~d~~~~
brokers:
  1 -> broker-1
  2 -> broker-2
  3 -> broker-3
  4 -> broker-4
topics:
  orders -> orders
  payments -> payments
actions (19 entries):
  RP:p1@500
  RG:c1@750
  RA:orders:2:broker-3.broker-1.broker-2@1000
  K:broker-4@1250
  SR:broker-2:1@1500
  ...

Pour les agents IA

Un serveur MCP dans le même binaire

monedula-sim-link mcp sert le Model Context Protocol sur stdio, pour que Claude Code, Claude Desktop ou un autre client MCP puisse construire des liens. Ses quatre outils sont build_playground_url, open_scenario, validate_actions et cluster_to_url, qui prend un instantané d'un cluster en production, comme le fait connect.

Utiliser le serveur MCP (en anglais)

.mcp.json
{
  "mcpServers": {
    "monedula-sim-link": {
      "command": "monedula-sim-link",
      "args": ["mcp"]
    }
  }
}

Installation

go install
go install github.com/monedula-dev/monedula-sim-link/cmd/monedula-sim-link@latest
GitHub Release
VERSION=0.11.0
curl -L -o monedula-sim-link.tar.gz \
  https://github.com/monedula-dev/monedula-sim-link/releases/download/v${VERSION}/monedula-sim-link_${VERSION}_linux_amd64.tar.gz
tar -xzf monedula-sim-link.tar.gz monedula-sim-link

Les archives de release pour Linux, macOS et Windows sur amd64 et arm64, avec un fichier de checksums, sont sur la page des releases. La compilation depuis les sources nécessite Go 1.25 ou plus récent. Ensuite : voir votre cluster dans le simulateur (en anglais).

Questions

Qu'est-ce qui quitte ma machine ?
connect communique avec votre cluster et rien d'autre, puis affiche un lien. Vos identifiants servent uniquement à ouvrir la connexion et ne font pas partie du lien, le lien nomme les brokers broker-1 à broker-N, et l'outil ne lit jamais les clés ni les valeurs de vos enregistrements. Ce qui entre dans le lien, c'est la topologie : le nombre de brokers, les noms des topics affichés, leurs nombres de partitions, facteurs de réplication et configurations sélectionnées, les noms des groupes de consommateurs, des noms de membres dérivés des client IDs, avec --producers les IDs d'au plus quatre producteurs récents, et les éventuelles pannes. Considérez que le lien contient ces noms quand vous le partagez, et utilisez --topics pour n'afficher que les topics que vous acceptez de partager. Voir ce que montre le lien (en anglais).
Mon cluster dépasse ce que le simulateur représente. Que se passe-t-il ?
connect garde les topics et les groupes de consommateurs les plus actifs et indique lesquels il a gardés : d'abord les topics listés avec --topics, puis ceux qui ont des partitions sous-répliquées ou hors ligne, du lag de consommation ou des lecteurs, et les groupes qui ont le plus de lag. Au-delà de 10 brokers ou de 24 partitions par topic, il échoue et n'affiche aucun lien, sauf si vous passez --clamp pour les réduire de façon déterministe. Voir gérer les grands clusters (en anglais).
Puis-je l'utiliser au travail ?
Oui. La licence Apache-2.0 autorise l'usage commercial, la modification et la redistribution tant que vous conservez la licence et les mentions. Apache Kafka est une marque de l'Apache Software Foundation ; monedula-sim-link est un projet indépendant qui fonctionne avec des clusters Kafka et n'est ni affilié à l'ASF, ni approuvé ni sponsorisé par elle.

Assistance

L’aide de ceux qui le développent

Nous pouvons vous aider à mettre en œuvre monedula-sim-link sur un parc étendu, de la conception à l’exploitation au quotidien.

Fait partie de
Monedula Flock

D’autres outils gratuits pour Apache Kafka, par la même équipe. À propos de Flock