Monedula

Diese Seite wurde maschinell aus dem Englischen übersetzt. Original lesen

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

Ihren Kafka-Cluster im Simulator öffnen

Um einen echten Kafka-Cluster zu visualisieren, erstellt monedula-sim-link einen einzigen Snapshot davon und gibt einen Link aus, der den Kafka Simulator in der Form dieses Clusters öffnet: Broker, Topics, Partitionsplatzierung, Ausfälle, eine Stichprobe des Datenvolumens, Consumer Groups und Topic-Konfigurationen. Teilen Sie den Link, oder lassen Sie ihn von einem KI-Agenten über MCP erstellen.

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…

Der ausgegebene Link ist hier gekürzt.

So funktioniert es

  1. 01

    Erfassen connect

    Broker, Topics, Partitionen, Consumer Groups und Topic-Konfigurationen einmal lesen.

  2. 02

    Zuordnen Namen zuordnen

    Broker werden zu broker-1 bis broker-N. Namen, die der Simulator nicht übernehmen kann, werden umbenannt, und --dry-run zeigt die Tabellen.

  3. 03

    Validieren validieren

    Der Link muss sich zu denselben Aktionen dekodieren lassen und in 2048 Zeichen passen (--force lockert nur die Länge), sonst wird kein Link ausgegeben.

  4. 04

    Ausgeben URL ausgeben

    Ein Link auf der Standardausgabe. Derselbe Snapshot ergibt immer dieselbe URL.

  5. 05

    Öffnen Link öffnen

    Der Playground öffnet eine Free-Play-Session in der Form Ihres Clusters.

10
Broker maximal pro Link
6
Topics maximal neben dem Standard-Topic orders
24
Partitionen maximal pro Topic
4
Consumer Groups maximal
  1. Ihr Kafka-Cluster Broker, Topics, Gruppen, Konfigurationen
  2. connect die Kommandozeile
    cluster_to_url das MCP-Tool
  3. Eine Pipeline Snapshot, Zuordnung, Validierung
  4. Playground-Link eine Free-Play-Session im Kafka Simulator
Die CLI und das MCP-Tool teilen sich eine Pipeline, daher geben beide aus demselben Snapshot denselben Link aus.

Es schreibt nie in Ihren Cluster

connect produziert keine Records, erstellt oder ändert keine Topics oder Konfigurationen, tritt keiner Consumer Group bei und committet keinen Offset. Der Metadata-Request wird mit AllowAutoTopicCreation=false gesendet, sodass das Nachschlagen eines Topics es nie anlegen kann. Es genügt ein Principal mit der Berechtigung Describe für den Cluster, seine Topics und Consumer Groups sowie DescribeConfigs für die Topic-Konfigurationen. Nur das optionale Flag --producers braucht mehr: sein DescribeProducers-Request verlangt die Berechtigung Read für die ausgewählten Topics.

Die gesamte Client-Oberfläche liegt in einer einzigen Quelldatei, snapshot/kafka.go, sodass Sie die Garantie an einer Stelle prüfen können, und eine End-to-End-Suite gegen einen KRaft-Cluster mit drei Knoten, mit Images von Apache Kafka und Confluent Platform, prüft, dass sich nichts geändert hat.

Die Nur-Lese-Garantie (auf Englisch)

Acht Requests, dazu einer auf Wunsch
ApiVersionsder Client-Handshake
MetadataBroker, Topics, Leader, Replikate, In-Sync-Replikate
ListOffsetsfrühester und letzter Offset jeder Partition
ListGroupsdie Consumer Groups
FindCoordinatordie Suche nach dem Koordinator jeder Gruppe
DescribeGroupsihr Zustand und ihre Mitglieder
OffsetFetchdie Offsets, die sie committet haben
DescribeConfigsdie Konfigurationen der ausgewählten Topics
DescribeProducersnur mit --producers: idempotente und transaktionale Producer, die kürzlich geschrieben haben

Was der Link zeigt

Der Link öffnet im Kafka Simulator eine Free-Play-Session, die wie Ihr Cluster geformt ist. Sie ist eine Rekonstruktion aus einem Snapshot und sagt deshalb, was sie annähert: Exakte echte Offsets, der Controller und das Rack-Layout werden nicht übernommen, und die Records sind synthetisch.

Was der Link zeigt (auf Englisch)

Form
Anzahl der Broker, ausgewählte Topics, ihre echten Partitionszahlen und Replikationsfaktoren
Platzierung
Neuzuweisungen, nur für Partitionen, die vom Standard des Simulators abweichen
Ausfälle
Offline-Broker werden beendet, Broker außerhalb einer Liste der In-Sync-Replikate verlangsamt
Datenvolumen
standardmäßig bis zu 8 synthetische Records mit Key pro Partition, jeder auf seiner Partition
Gruppen
Consumer Groups mit committeten Offsets, ihre Mitglieder und der Lag als Gruppe, die den Rückstand abarbeitet
Producer
mit --producers: bis zu 4 idempotente oder transaktionale Producer, die in den letzten 15 Minuten geschrieben haben
Konfigurationen
cleanup.policy, min.insync.replicas, retention.ms, retention.bytes

Es prüft den Link vor der Ausgabe

Der Playground verwirft fehlerhafte Einträge stillschweigend, sodass ein subtil falscher Link eine Session öffnen würde, die richtig aussieht und etwas anderes zeigt.

Selbstvalidierung vor der Ausgabe (auf Englisch)

Die zwei Prüfungen
1Das Action-Log muss den Round Trip bestehen: kodieren, dekodieren, kodieren, identisch. Nie übersteuerbar.
2Der Link darf höchstens 2048 Zeichen lang sein. --force stuft diese Prüfung zu einer Warnung herab.

Echte Cluster

TLS, SCRAM und mTLS

Verbinden Sie sich über Plaintext, TLS oder Mutual TLS, mit SASL PLAIN, SCRAM-SHA-256 oder SCRAM-SHA-512. Wählen Sie Topics nach exaktem Namen, per regulärem Ausdruck oder beidem.

Nutzen Sie lieber die Umgebungsvariable MONEDULA_SIM_LINK_PASSWORD als --password, damit das Secret nicht in Ihrer Shell-History landet.

Mit einem abgesicherten Cluster verbinden (auf Englisch)

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

Den Inhalt eines Links vorab ansehen

--dry-run gibt vor dem Link den Größenparameter aus, die Tabellen, die echte Broker-, Topic- und Gruppennamen auf die Namen abbilden, die der Simulator zeigt, und die dekodierte Aktionsliste.

Ohne Cluster zur Hand schickt demo --dry-run eine eingebaute Fixture durch dieselbe Pipeline. Die gezeigte Ausgabe stammt von dieser Fixture.

Einen Link vor dem Teilen prüfen (auf Englisch)

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
  ...

Für KI-Agenten

Ein MCP-Server im selben Binary

monedula-sim-link mcp stellt das Model Context Protocol über stdio bereit, sodass Claude Code, Claude Desktop oder ein anderer MCP-Client Links erstellen kann. Seine vier Tools sind build_playground_url, open_scenario, validate_actions und cluster_to_url, das einen laufenden Cluster genauso erfasst wie connect.

Den MCP-Server nutzen (auf Englisch)

.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

Release-Archive für Linux, macOS und Windows auf amd64 und arm64, mit einer Prüfsummendatei, liegen auf der Releases-Seite. Für einen Build aus dem Quellcode brauchen Sie Go 1.25 oder neuer. Weiter: Ihren Cluster im Simulator sehen (auf Englisch).

Fragen

Was verlässt meinen Rechner?
connect spricht mit Ihrem Cluster und mit nichts anderem und gibt dann einen Link aus. Ihre Credentials dienen nur zum Öffnen der Verbindung und sind nicht Teil des Links, der Link benennt Broker als broker-1 bis broker-N, und das Tool liest nie die Keys oder Values Ihrer Records. In den Link geht dagegen die Topologie ein: die Anzahl der Broker, die Namen der gezeigten Topics, ihre Partitionszahlen, Replikationsfaktoren und ausgewählten Konfigurationen, die Namen der Consumer Groups, aus Client-IDs abgeleitete Mitgliedsnamen, mit --producers die Producer-IDs von bis zu vier Producern, die kürzlich geschrieben haben, und etwaige Ausfälle. Gehen Sie beim Teilen davon aus, dass der Link diese Namen enthält, und zeigen Sie mit --topics nur die Topics, die Sie teilen möchten. Siehe Was der Link zeigt (auf Englisch).
Mein Cluster ist größer, als der Simulator darstellt. Was passiert dann?
connect behält die Topics und Consumer Groups, in denen am meisten passiert, und warnt, welche es behalten hat: zuerst die mit --topics genannten Topics, dann Topics mit unterreplizierten oder Offline-Partitionen, Consumer-Lag oder lesenden Gruppen, und die Gruppen mit dem größten Lag. Bei mehr als 10 Brokern oder mehr als 24 Partitionen pro Topic schlägt es fehl und gibt keinen Link aus, es sei denn, Sie übergeben --clamp, um sie deterministisch zu kürzen. Siehe Große Cluster behandeln (auf Englisch).
Darf ich es bei der Arbeit nutzen?
Ja. Die Apache-2.0-Lizenz erlaubt kommerzielle Nutzung, Änderung und Weiterverbreitung, solange Sie die Lizenz und die Hinweise beibehalten. Apache Kafka ist eine Marke der Apache Software Foundation; monedula-sim-link ist ein unabhängiges Projekt, das mit Kafka-Clustern arbeitet, und steht weder in Verbindung mit der ASF noch wird es von ihr unterstützt oder gesponsert.

Support

Hilfe von den Entwicklern des Tools

Wir können Ihnen helfen, monedula-sim-link in einer großen Umgebung einzusetzen, vom Design bis zum täglichen Betrieb.

Teil von
Monedula Flock

Weitere kostenlose Tools für Apache Kafka vom selben Team. Über Flock