monedula-gitops
GitOps per Apache Kafka: topic, accessi, quote, schemi, utenti SCRAM e RBAC di Confluent, da una CLI o da un operator Kubernetes.
Questa pagina è stata tradotta automaticamente dall'inglese. Leggi l'originale
monedula-sim-link v0.11.0, Apache-2.0
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 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…
Il link stampato qui è accorciato.
connectLegge una volta broker, topic, partizioni, consumer group e configurazioni dei topic.
mappare i nomiI 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.
validareIl link deve decodificarsi nelle stesse azioni e stare in 2048 caratteri (--force allenta solo la lunghezza), altrimenti non viene stampato alcun link.
stampare l'URLUn solo link sullo standard output. Lo stesso snapshot dà sempre lo stesso URL.
aprire il linkIl playground apre una sessione free-play con la forma del 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)
ApiVersions | l'handshake del client |
|---|---|
Metadata | broker, topic, leader, repliche, repliche in-sync |
ListOffsets | l'offset più vecchio e il più recente di ogni partizione |
ListGroups | i consumer group |
FindCoordinator | la ricerca del coordinatore di ogni gruppo |
DescribeGroups | il loro stato e i loro membri |
OffsetFetch | gli offset che hanno committato |
DescribeConfigs | le configurazioni dei topic selezionati |
DescribeProducers | solo con --producers: i producer idempotenti e transazionali che hanno scritto di recente |
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)
cleanup.policy, min.insync.replicas, retention.ms, retention.bytesIl 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)
| 1 | Il log delle azioni deve superare il round trip: codifica, decodifica, codifica, identico. Questo controllo non si può mai disattivare. |
|---|---|
| 2 | Il link deve avere al massimo 2048 caratteri. --force declassa questo controllo a un avviso. |
Cluster reali
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)
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 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)
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
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)
{
"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 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).
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).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).Possiamo aiutarti a gestire monedula-sim-link su un'infrastruttura estesa, dalla progettazione all'operatività quotidiana.
Altri strumenti gratuiti per Apache Kafka, dallo stesso team. Informazioni su Flock
GitOps per Apache Kafka: topic, accessi, quote, schemi, utenti SCRAM e RBAC di Confluent, da una CLI o da un operator Kubernetes.
CLI che converte ACL di Apache Kafka in binding RBAC di Confluent tramite un piano con checksum e verifica l'accesso effettivo prima di ogni eliminazione.
Plugin MetricsReporter per Kafka che invia metriche di broker, JVM e client KIP-714 via OTLP; un collector non disponibile non blocca mai Kafka.
Simulatore di Apache Kafka interattivo e deterministico nel browser: rompi un cluster, scorri la timeline e leggi perché ha reagito.
Pagina del prodotto (in inglese) Documentazione (in inglese)