Developer Hub — Kafka Plugin
Kafka Plugin en Red Hat Developer Hub
El plugin @backstage-community/plugin-kafka permite ver información de Kafka directamente en las entity pages de Developer Hub.
¿Qué muestra?
-
Topic offsets: posición actual de producción por partición
-
Consumer group offsets: posición de consumo por consumer group
-
Consumer lag: diferencia entre posición de producción y consumo
-
Dashboard URL: link directo a Grafana/Streams Console
Configuración
El plugin está habilitado como dynamic plugin en Developer Hub:
# Backend — conectividad al cluster Kafka
- package: ./dynamic-plugins/dist/backstage-community-plugin-kafka-backend-dynamic
disabled: false
pluginConfig:
kafka:
clientId: backstage
clusters:
- name: cdc-cluster
brokers:
- cdc-cluster-kafka-bootstrap.kafka-cdc.svc:9092
# Frontend — UI en entity pages
- package: ./dynamic-plugins/dist/backstage-community-plugin-kafka
disabled: false
pluginConfig:
dynamicPlugins:
frontend:
backstage-community.plugin-kafka:
mountPoints:
- mountPoint: entity.page.overview/cards
importName: EntityKafkaContent
config:
if:
anyOf:
- hasAnnotation: kafka.apache.org/consumer-groups
Annotación en catalog entities
Para que el plugin de Kafka aparezca en una entity page, agrega la siguiente anotación al catalog-info.yaml del componente:
metadata:
annotations:
kafka.apache.org/consumer-groups: camel-cdc-consumer
Esto hace que Developer Hub muestre los offsets y lag del consumer group camel-cdc-consumer directamente en la vista del componente.
How it Works
Plugin backend: conexión al cluster Kafka
El plugin de Kafka en Developer Hub no usa APIs REST de terceros — se conecta directamente al cluster Kafka:
-
El backend del plugin (
plugin-kafka-backend-dynamic) establece una conexiónAdminCliental cluster usando los brokers configurados (cdc-cluster-kafka-bootstrap.kafka-cdc.svc:9092). -
Usa la API
AdminClient.describeConsumerGroups()para obtener el estado de los consumer groups. -
Consulta
AdminClient.listConsumerGroupOffsets()para los offsets actuales yAdminClient.listOffsets(OffsetSpec.latest())para los high watermarks. -
Calcula el lag por partición y lo expone al frontend via la API interna de Backstage.
Plugin frontend: entity-driven UI
El frontend se monta condicionalmente en las entity pages:
-
Cuando un usuario navega a un componente en Developer Hub, el router verifica si la entity tiene la anotación
kafka.apache.org/consumer-groups. -
Si la anotación existe, el card
EntityKafkaContentse renderiza en elmountPointconfigurado (entity.page.overview/cards). -
El card hace un fetch al backend del plugin, que devuelve los datos del consumer group en JSON.
-
El frontend muestra una tabla con: topic, partición, offset actual, high watermark, lag, y el estado del consumidor (active/idle).
Streams for Apache Kafka Console
Además del plugin de Developer Hub, la Streams Console (StreamsHub) proporciona una UI dedicada para gestión de Kafka:
Features de la Streams Console
| Feature | Descripción |
|---|---|
Cluster Overview |
Vista general del cluster: brokers, particiones, replication factor |
Topics |
Listar topics, ver mensajes en tiempo real, buscar por offset |
Consumer Groups |
Ver estado de consumer groups, lag por partición, reset de offsets |
Kafka Nodes |
Estado de cada broker, métricas de disco y red |
Kafka Connect (Tech Preview) |
Gestión de connectors directamente desde la consola |
Verificación
Para verificar que el plugin de Kafka funciona:
-
Accede a Developer Hub:
https://backstage-developer-hub-developer-hub.apps.cluster-l9nhj.dynamic.redhatworkshops.io -
Navega a un componente que tenga la anotación
kafka.apache.org/consumer-groups -
En la pestaña Overview, deberías ver el card de Kafka con offsets y lag
-
Clickea en el consumer group para ver el detalle por partición
Documentación Oficial
-
Red Hat Developer Hub — Portal de desarrollo self-service basado en Backstage
-
Configuring Plugins in Developer Hub — Habilitación y configuración de plugins dinámicos
-
Backstage Documentation — Proyecto upstream de Developer Hub
-
Backstage Kafka Plugin — Plugin community para visualizar Kafka en Backstage
-
StreamsHub Console — Consola web para Streams for Apache Kafka