Monedula

Questa pagina è stata tradotta automaticamente dall'inglese. Leggi l'originale

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

Apri il tuo cluster Kafka nel simulatore

Per visualizzare un cluster Kafka reale, monedula-sim-link ne acquisisce un unico snapshot e stampa un link che apre il Kafka Simulator con la stessa forma del cluster: broker, topic, posizionamento delle partizioni, guasti, un campione del volume di dati, consumer group e configurazioni dei topic. Condividi il link, oppure lascia che lo costruisca un agente IA 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
terminale
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…

Il link stampato qui è accorciato.

Come funziona

  1. 01

    Acquisire connect

    Legge una volta broker, topic, partizioni, consumer group e configurazioni dei topic.

  2. 02

    Mappare mappare i nomi

    I broker prendono i nomi da broker-1 a broker-N. I nomi che il simulatore non può riportare vengono rinominati, e --dry-run mostra le tabelle.

  3. 03

    Validare validare

    Il link deve decodificarsi nelle stesse azioni e stare in 2048 caratteri (--force allenta solo la lunghezza), altrimenti non viene stampato alcun link.

  4. 04

    Stampare stampare l'URL

    Un solo link sullo standard output. Lo stesso snapshot dà sempre lo stesso URL.

  5. 05

    Aprire aprire il link

    Il playground apre una sessione free-play con la forma del tuo cluster.

10
broker al massimo per link
6
topic al massimo oltre al topic predefinito orders
24
partizioni al massimo per topic
4
consumer group al massimo
  1. Il tuo cluster Kafka broker, topic, gruppi, configurazioni
  2. connect la riga di comando
    cluster_to_url lo strumento MCP
  3. Un'unica pipeline snapshot, mappatura, validazione
  4. Link al playground una sessione free-play di Kafka Simulator
La CLI e lo strumento MCP condividono un'unica pipeline, quindi entrambi stampano lo stesso link dallo stesso snapshot.

Non scrive mai sul tuo cluster

connect non produce record, non crea né modifica topic o configurazioni, non entra in nessun consumer group e non committa alcun offset. La richiesta Metadata viene inviata con AllowAutoTopicCreation=false, quindi cercare un topic non può mai crearlo. Basta un principal che possa descrivere il cluster, i suoi topic, i suoi consumer group e le configurazioni dei topic. Solo il flag facoltativo --producers ha bisogno di altro: la sua richiesta DescribeProducers richiede il permesso Read sui topic selezionati.

L'intera superficie client sta in un solo file sorgente, snapshot/kafka.go, così puoi verificare la garanzia in un unico posto, e una suite end-to-end su un cluster KRaft a tre nodi, con immagini Apache Kafka e Confluent Platform, controlla che nulla sia cambiato.

La garanzia di sola lettura (in inglese)

Otto richieste, più una facoltativa
ApiVersionsl'handshake del client
Metadatabroker, topic, leader, repliche, repliche in-sync
ListOffsetsl'offset più vecchio e il più recente di ogni partizione
ListGroupsi consumer group
FindCoordinatorla ricerca del coordinatore di ogni gruppo
DescribeGroupsil loro stato e i loro membri
OffsetFetchgli offset che hanno committato
DescribeConfigsle configurazioni dei topic selezionati
DescribeProducerssolo con --producers: i producer idempotenti e transazionali che hanno scritto di recente

Cosa mostra il link

Il link apre una sessione free-play del Kafka Simulator con la forma del tuo cluster. È una ricostruzione da un unico snapshot, quindi dichiara ciò che approssima: gli offset reali esatti, il controller e la disposizione dei rack non vengono riportati, e i record sono sintetici.

Cosa mostra il link (in inglese)

Forma
numero di broker, topic selezionati, il loro numero reale di partizioni e il fattore di replica
Posizionamento
riassegnazioni, solo per le partizioni che differiscono dal default del simulatore
Guasti
i broker offline vengono fermati, quelli fuori da una lista di repliche in-sync vengono rallentati
Volume di dati
fino a 8 record sintetici con chiave per partizione per impostazione predefinita, ognuno nella sua partizione
Gruppi
consumer group con offset committati, i loro membri, e il lag come un gruppo che smaltisce l'arretrato
Producer
con --producers: fino a 4 producer idempotenti o transazionali che hanno scritto negli ultimi 15 minuti
Configurazioni
cleanup.policy, min.insync.replicas, retention.ms, retention.bytes

Lo strumento controlla il link prima di stamparlo

Il playground scarta in silenzio le voci malformate, quindi un link sottilmente sbagliato aprirebbe una sessione che sembra corretta e mostra altro.

Autovalidazione prima della stampa (in inglese)

I due controlli
1Il log delle azioni deve superare il round trip: codifica, decodifica, codifica, identico. Questo controllo non si può mai disattivare.
2Il link deve avere al massimo 2048 caratteri. --force declassa questo controllo a un avviso.

Cluster reali

TLS, SCRAM e mTLS

Connettiti in chiaro, con TLS o con mutual TLS, usando SASL PLAIN, SCRAM-SHA-256 o SCRAM-SHA-512. Scegli i topic per nome esatto, per espressione regolare o in entrambi i modi.

Preferisci la variabile d'ambiente MONEDULA_SIM_LINK_PASSWORD a --password, così il segreto resta fuori dalla cronologia della shell.

Come connettersi a un cluster protetto (in inglese)

terminale
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

Guarda in anteprima cosa contiene un link

--dry-run stampa, prima del link, il parametro di dimensione, le tabelle che associano i nomi reali di broker, topic e gruppi ai nomi mostrati dal simulatore, e la lista delle azioni decodificata.

Senza un cluster a portata di mano, demo --dry-run fa passare una fixture integrata per la stessa pipeline. L'output mostrato viene da quella fixture.

Vedere un link in anteprima prima di condividerlo (in inglese)

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

Per agenti IA

Un server MCP nello stesso binario

monedula-sim-link mcp serve il Model Context Protocol su stdio, così Claude Code, Claude Desktop o un altro client MCP possono costruire link. I suoi quattro strumenti sono build_playground_url, open_scenario, validate_actions e cluster_to_url, che acquisisce uno snapshot di un cluster in esecuzione come fa connect.

Usare il server MCP (in inglese)

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

Installazione

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

Gli archivi di release per Linux, macOS e Windows su amd64 e arm64, con un file di checksum, sono nella pagina delle release. Per compilare dai sorgenti serve Go 1.25 o successivo. Passo successivo: vedere il tuo cluster nel simulatore (in inglese).

Domande

Cosa esce dalla mia macchina?
connect parla con il tuo cluster e con nient'altro, poi stampa un link. Le tue credenziali servono solo ad aprire la connessione e non fanno parte del link, il link dà ai broker i nomi da broker-1 a broker-N, e lo strumento non legge mai le chiavi né i valori dei tuoi record. Ciò che finisce nel link è la topologia: il numero di broker, i nomi dei topic mostrati, il loro numero di partizioni, i fattori di replica e le configurazioni selezionate, i nomi dei consumer group, i nomi dei membri derivati dai client ID, gli eventuali guasti e, con --producers, gli ID di un massimo di quattro producer che hanno scritto di recente. Quando condividi il link, considera che contiene quei nomi, e usa --topics per mostrare solo i topic che sei disposto a condividere. Vedi cosa mostra il link (in inglese).
Il mio cluster è più grande di quanto il simulatore rappresenti. Cosa succede?
connect mantiene i topic e i consumer group più attivi e avvisa quali ha tenuto: prima i topic elencati con --topics, poi quelli con partizioni sotto-replicate o offline, lag dei consumer o lettori, e i gruppi con più lag. Oltre 10 broker o 24 partizioni per topic fallisce e non stampa alcun link, a meno che tu non passi --clamp per ridurli in modo deterministico. Vedi gestire cluster grandi (in inglese).
Posso usarlo al lavoro?
Sì. La Apache-2.0 consente uso commerciale, modifica e ridistribuzione purché tu mantenga la licenza e gli avvisi. Apache Kafka è un marchio della Apache Software Foundation; monedula-sim-link è un progetto indipendente che funziona con i cluster Kafka e non è affiliato alla ASF, né approvato o sponsorizzato da essa.

Supporto

Aiuto da chi sviluppa lo strumento

Possiamo aiutarti a gestire monedula-sim-link su un'infrastruttura estesa, dalla progettazione all'operatività quotidiana.

Parte di
Monedula Flock

Altri strumenti gratuiti per Apache Kafka, dallo stesso team. Informazioni su Flock