monedula-gitops
GitOps pour Apache Kafka : topics, accès, quotas, schémas, utilisateurs SCRAM et RBAC Confluent, depuis une CLI ou un opérateur Kubernetes.
Cette page a été traduite automatiquement depuis l’anglais. Lire l’original
monedula-sim-link v0.11.0, Apache-2.0
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 github.com/monedula-dev/monedula-sim-link/cmd/monedula-sim-link@latest 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 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.
connectLire une fois les brokers, les topics, les partitions, les groupes de consommateurs et les configurations de topic.
mapper les nomsLes brokers deviennent broker-1 à broker-N. Les noms que le simulateur ne peut pas reprendre sont renommés, et --dry-run affiche les tables.
validerUne 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é.
afficher l'URLUn seul lien sur la sortie standard. Le même instantané donne toujours la même URL.
ouvrir le lienLe playground ouvre une session free-play à l'image de 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)
ApiVersions | le handshake du client |
|---|---|
Metadata | brokers, topics, leaders, réplicas, réplicas synchronisés |
ListOffsets | premier et dernier offset de chaque partition |
ListGroups | les groupes de consommateurs |
FindCoordinator | la recherche du coordinateur de chaque groupe |
DescribeGroups | leur état et leurs membres |
OffsetFetch | les offsets qu'ils ont validés |
DescribeConfigs | les configurations des topics sélectionnés |
DescribeProducers | seulement avec --producers : les producteurs idempotents et transactionnels qui ont écrit récemment |
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)
cleanup.policy, min.insync.replicas, retention.ms, retention.bytesLe 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)
| 1 | Le log d'actions doit faire l'aller-retour : encoder, décoder, encoder, à l'identique. Jamais contournable. |
|---|---|
| 2 | Le lien doit faire au plus 2048 caractères. --force rétrograde cette vérification en simple avertissement. |
Clusters réels
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)
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 --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)
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
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)
{
"mcpServers": {
"monedula-sim-link": {
"command": "monedula-sim-link",
"args": ["mcp"]
}
}
} go install github.com/monedula-dev/monedula-sim-link/cmd/monedula-sim-link@latest 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).
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).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).Nous pouvons vous aider à mettre en œuvre monedula-sim-link sur un parc étendu, de la conception à l’exploitation au quotidien.
D’autres outils gratuits pour Apache Kafka, par la même équipe. À propos de Flock
GitOps pour Apache Kafka : topics, accès, quotas, schémas, utilisateurs SCRAM et RBAC Confluent, depuis une CLI ou un opérateur Kubernetes.
Une CLI qui convertit les ACL Apache Kafka en bindings RBAC Confluent via un plan avec checksum et vérifie l'accès effectif avant toute suppression d'ACL.
Un plugin Kafka MetricsReporter qui envoie les métriques broker, JVM et client KIP-714 via OTLP ; une panne du collector ne bloque jamais Kafka.
Un simulateur Apache Kafka interactif et déterministe dans le navigateur : cassez un cluster, parcourez la chronologie et lisez pourquoi il a réagi.