Monedula

Esta página se tradujo automáticamente del inglés. Leer el original

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

Abre tu clúster de Kafka en el simulador

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

El enlace impreso aparece acortado aquí.

Cómo funciona

  1. 01

    Capturar connect

    Lee una vez los brokers, topics, particiones, grupos de consumidores y configuraciones de topic.

  2. 02

    Mapear mapear nombres

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

  3. 03

    Validar validar

    El enlace debe decodificarse en las mismas acciones y caber en 2048 caracteres (--force solo relaja la longitud), o no se imprime ningún enlace.

  4. 04

    Imprimir imprimir la URL

    Un enlace en la salida estándar. La misma instantánea siempre da la misma URL.

  5. 05

    Abrir abrir el enlace

    El playground abre una sesión de free-play con la forma de tu clúster.

10
brokers como máximo por enlace
6
topics como máximo, además del topic orders por defecto
24
particiones como máximo por topic
4
grupos de consumidores como máximo
  1. Tu clúster de Kafka brokers, topics, grupos, configuraciones
  2. connect la línea de comandos
    cluster_to_url la herramienta MCP
  3. Un solo pipeline instantánea, mapeo, validación
  4. Enlace al playground una sesión de free-play de Kafka Simulator
La CLI y la herramienta MCP comparten un pipeline, así que ambas imprimen el mismo enlace a partir de la misma instantánea.

Nunca escribe en 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)

Ocho peticiones y una opcional
ApiVersionsel handshake del cliente
Metadatabrokers, topics, líderes, réplicas, réplicas sincronizadas
ListOffsetsel offset más antiguo y el más reciente de cada partición
ListGroupslos grupos de consumidores
FindCoordinatorla búsqueda del coordinador de cada grupo
DescribeGroupssu estado y sus miembros
OffsetFetchlos offsets que han confirmado
DescribeConfigslas configuraciones de los topics seleccionados
DescribeProducerssolo con --producers: los productores idempotentes y transaccionales que escribieron hace poco

Qué muestra el enlace

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)

Forma
número de brokers, topics seleccionados, sus números reales de particiones y factores de replicación
Ubicación
reasignaciones, solo para las particiones que difieren de la ubicación por defecto del simulador
Fallos
los brokers fuera de línea se detienen y los que están fuera de una lista de réplicas sincronizadas se ralentizan
Volumen de datos
hasta 8 registros sintéticos con clave por partición por defecto, cada uno en su partición
Grupos
grupos de consumidores con offsets confirmados, sus miembros, y el lag como un grupo que va consumiendo lo acumulado
Productores
con --producers: hasta 4 productores idempotentes o transaccionales que escribieron en los últimos 15 minutos
Configuraciones
cleanup.policy, min.insync.replicas, retention.ms, retention.bytes

Comprueba el enlace antes de imprimirlo

El 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)

Las dos comprobaciones
1El log de acciones debe quedar idéntico tras codificarlo, decodificarlo y volver a codificarlo. No se puede desactivar nunca.
2El enlace debe tener como máximo 2048 caracteres. --force rebaja esta comprobación a una advertencia.

Clústeres reales

TLS, SCRAM y mTLS

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)

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

Previsualiza lo que contiene un enlace

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

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

Para agentes de IA

Un servidor MCP en el mismo binario

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)

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

Instalación

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

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

Preguntas

¿Qué sale de mi máquina?
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).
Mi clúster es más grande de lo que representa el simulador. ¿Qué pasa?
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).
¿Puedo usarlo en el trabajo?
Sí. La licencia Apache-2.0 permite el uso comercial, la modificación y la redistribución siempre que conserves la licencia y los avisos. Apache Kafka es una marca comercial de la Apache Software Foundation; monedula-sim-link es un proyecto independiente que funciona con clústeres de Kafka y no está afiliado a la ASF, ni respaldado ni patrocinado por ella.

Soporte

Ayuda de quienes lo desarrollan

Podemos ayudarte a usar monedula-sim-link en una infraestructura grande, desde el diseño hasta la operación diaria.

Parte de
Monedula Flock

Más herramientas gratuitas para Apache Kafka del mismo equipo. Acerca de Flock