# Kafka Plugin ## Setup 1. Run: ```bash # From your Backstage root directory yarn --cwd packages/app add @backstage/plugin-kafka yarn --cwd packages/backend add @backstage/plugin-kafka-backend ``` 2. Add the plugin backend: In a new file named `kafka.ts` under `backend/src/plugins`: ```js import { createRouter } from '@backstage/plugin-kafka-backend'; import { PluginEnvironment } from '../types'; export default async function createPlugin({ logger, config, }: PluginEnvironment) { return await createRouter({ logger, config }); } ``` And then add to `packages/backend/src/index.ts`: ```js // In packages/backend/src/index.ts import kafka from './plugins/kafka'; // ... async function main() { // ... const kafkaEnv = useHotMemoize(module, () => createEnv('kafka')); // ... apiRouter.use('/kafka', await kafka(kafkaEnv)); ``` 3. Add the plugin as a tab to your service entities: ```jsx // In packages/app/src/components/catalog/EntityPage.tsx import { EntityKafkaContent } from '@backstage/plugin-kafka'; const serviceEntityPage = ( {/* other tabs... */} ``` 4. Add broker configs for the backend in your `app-config.yaml` (see [kafka-backend](https://github.com/backstage/backstage/blob/master/plugins/kafka-backend/README.md) for more options): ```yaml kafka: clientId: backstage clusters: - name: cluster-name brokers: - localhost:9092 ``` 5. Add the `kafka.apache.org/consumer-groups` annotation to your services: ```yaml apiVersion: backstage.io/v1alpha1 kind: Component metadata: # ... annotations: kafka.apache.org/consumer-groups: cluster-name/consumer-group-name spec: type: service ``` ## Features - List topics offsets and consumer group offsets for configured services.