monedula-gitops
GitOps para Apache Kafka: topics, acceso, cuotas, esquemas, usuarios SCRAM y RBAC de Confluent, desde una CLI o un operador de Kubernetes.
Esta página se tradujo automáticamente del inglés. Leer el original
monedula-sim-link v0.11.0, Apache-2.0
Para visualizar un clúster de Kafka real, monedula-sim-link toma una instantánea e imprime un enlace que abre el Kafka Simulator con su misma forma: brokers, topics, ubicación de particiones, fallos, una muestra del volumen de datos, grupos de consumidores y configuraciones de topic. Comparte el enlace, o deja que un agente de IA lo construya por 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…
El enlace impreso aparece acortado aquí.
connectLee una vez los brokers, topics, particiones, grupos de consumidores y configuraciones de topic.
mapear nombresLos brokers pasan a ser broker-1 a broker-N. Los nombres que el simulador no puede representar se renombran, y --dry-run muestra las tablas.
validarEl enlace debe decodificarse en las mismas acciones y caber en 2048 caracteres (--force solo relaja la longitud), o no se imprime ningún enlace.
imprimir la URLUn enlace en la salida estándar. La misma instantánea siempre da la misma URL.
abrir el enlaceEl playground abre una sesión de free-play con la forma de tu clúster.
connect no produce registros, no crea ni modifica topics ni configuraciones, no se une a ningún grupo de consumidores y no confirma ningún offset. La petición Metadata se envía con AllowAutoTopicCreation=false, así que consultar un topic nunca puede crearlo. Basta con un principal con permiso Describe sobre el clúster, sus topics y sus grupos de consumidores, y DescribeConfigs sobre las configuraciones de sus topics. Solo el flag opcional --producers necesita más: su petición DescribeProducers exige permiso Read sobre los topics seleccionados.
Toda la superficie del cliente está en un solo archivo fuente, snapshot/kafka.go, así que puedes auditar la garantía en un único lugar, y una suite de extremo a extremo contra un clúster KRaft de tres nodos, con imágenes de Apache Kafka y Confluent Platform, comprueba que nada ha cambiado.
La garantía de solo lectura (en inglés)
ApiVersions | el handshake del cliente |
|---|---|
Metadata | brokers, topics, líderes, réplicas, réplicas sincronizadas |
ListOffsets | el offset más antiguo y el más reciente de cada partición |
ListGroups | los grupos de consumidores |
FindCoordinator | la búsqueda del coordinador de cada grupo |
DescribeGroups | su estado y sus miembros |
OffsetFetch | los offsets que han confirmado |
DescribeConfigs | las configuraciones de los topics seleccionados |
DescribeProducers | solo con --producers: los productores idempotentes y transaccionales que escribieron hace poco |
El enlace abre una sesión de free-play de Kafka Simulator con la forma de tu clúster. Es una reconstrucción a partir de una sola instantánea, así que dice lo que aproxima: no se trasladan los offsets reales exactos, el controlador ni la distribución de racks, y los registros son sintéticos.
Qué muestra el enlace (en inglés)
cleanup.policy, min.insync.replicas, retention.ms, retention.bytesEl playground descarta en silencio las entradas mal formadas, así que un enlace sutilmente erróneo abriría una sesión que parece correcta y muestra otra cosa.
Autovalidación antes de imprimir (en inglés)
| 1 | El log de acciones debe quedar idéntico tras codificarlo, decodificarlo y volver a codificarlo. No se puede desactivar nunca. |
|---|---|
| 2 | El enlace debe tener como máximo 2048 caracteres. --force rebaja esta comprobación a una advertencia. |
Clústeres reales
Conéctate en texto plano, con TLS o con TLS mutuo, usando SASL PLAIN, SCRAM-SHA-256 o SCRAM-SHA-512. Elige los topics por nombre exacto, por expresión regular o de ambas formas.
Usa preferiblemente la variable de entorno MONEDULA_SIM_LINK_PASSWORD en lugar de --password, para que el secreto no quede en el historial de tu shell.
Cómo conectarse a un clúster protegido (en inglés)
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 imprime, antes del enlace, el parámetro de tamaño, las tablas que asignan los nombres reales de brokers, topics y grupos a los nombres que muestra el simulador, y la lista de acciones decodificada.
Sin un clúster a mano, demo --dry-run pasa un fixture integrado por el mismo pipeline. La salida que se muestra procede de ese fixture.
Previsualizar un enlace antes de compartirlo (en inglés)
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
... Para agentes de IA
monedula-sim-link mcp sirve el Model Context Protocol por stdio, para que Claude Code, Claude Desktop u otro cliente MCP puedan construir enlaces. Sus cuatro herramientas son build_playground_url, open_scenario, validate_actions y cluster_to_url, que toma una instantánea de un clúster en vivo, igual que connect.
Usar el servidor MCP (en inglés)
{
"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 Los paquetes de release para Linux, macOS y Windows en amd64 y arm64, con un archivo de checksums, están en la página de releases. Compilar desde el código fuente requiere Go 1.25 o posterior. Siguiente paso: ver tu clúster en el simulador (en inglés).
connect habla con tu clúster y con nada más, y luego imprime un enlace. Tus credenciales solo se usan para abrir la conexión y no forman parte del enlace, el enlace nombra los brokers broker-1 a broker-N, y la herramienta nunca lee las claves ni los valores de tus registros. Lo que sí entra en el enlace es la topología: el número de brokers, los nombres de los topics mostrados, sus números de particiones, factores de replicación y configuraciones seleccionadas, los nombres de los grupos de consumidores, nombres de miembros derivados de los client IDs, cualquier fallo y, con --producers, los IDs de hasta cuatro productores que escribieron hace poco. Cuando compartas el enlace, ten en cuenta que contiene esos nombres, y usa --topics para mostrar solo los topics que no te importe compartir. Consulta qué muestra el enlace (en inglés).connect conserva los topics y grupos de consumidores con más actividad y avisa de cuáles conservó: primero los topics que indicas con --topics, después los que tienen particiones subreplicadas o sin conexión, lag de consumo o lectores, y los grupos con más lag. Con más de 10 brokers o más de 24 particiones por topic falla y no imprime ningún enlace, salvo que pases --clamp para recortarlos de forma determinista. Consulta gestionar clústeres grandes (en inglés).Podemos ayudarte a usar monedula-sim-link en una infraestructura grande, desde el diseño hasta la operación diaria.
Más herramientas gratuitas para Apache Kafka del mismo equipo. Acerca de Flock
GitOps para Apache Kafka: topics, acceso, cuotas, esquemas, usuarios SCRAM y RBAC de Confluent, desde una CLI o un operador de Kubernetes.
CLI que convierte ACL de Apache Kafka en role bindings RBAC de Confluent vía un plan con checksum y verifica el acceso efectivo antes de cualquier borrado.
Plugin MetricsReporter de Kafka que envía métricas de broker, JVM y clientes KIP-714 por OTLP; una caída del collector nunca bloquea Kafka.
Simulador de Apache Kafka interactivo y determinista en el navegador: rompe un clúster, recorre la línea de tiempo y lee por qué reaccionó.