---
title: Charmhub | Deploy Kafka Test App using Charmhub - The Open Operator Collection
description: Deploy the latest version of Kafka Test App on any cloud. Simple charm
  to simulate Kafka clients app
url: https://charmhub.io/kafka-test-app
---

# Kafka Test App

[Canonical](https://charmhub.io/publisher/data-platform "View all packages from Canonical")

* [Canonical](https://charmhub.io/publisher/data-platform "View all packages from Canonical")

Platform:

24.04

22.04

stable 11

```
juju deploy kafka-test-app
```

[Learn to deploy on juju >](https://juju.is/docs/juju/manage-applications)

---

#### Relevant links

* [Homepage](https://ubuntu.com/data/kafka)
* [Contact](mailto:Canonical Data Platform <data-platform@lists.launchpad.net>)

---

#### Contacts

##### Maintainers

+ [Canonical Data Platform](mailto:data-platform@lists.launchpad.net)

* [Submit a bug](https://github.com/canonical/kafka-test-app/issues)

---

Share your thoughts on this charm with the community on discourse.

[Join the discussion](https://discourse.charmhub.io/)

# Kafka Test App

The test application charm used in various test scenarios for Charmed Kafka K8s/VM installations.

While this tutorial intends to guide and teach you as you deploy Kafka Test App, it will be most beneficial if you already have a familiarity with:

* Basic terminal commands.
* Kafka concepts such as topics, producers and consumers.

Kafka Test App is the workload-less charm. It can be deployed and used in both K8s and VM installations.

Just deploy and relate it:

```
# Deploy
juju deploy kafka-test-app producer --config role=producer --channel edge
juju deploy kafka-test-app consumer --config role=consumer --channel edge
juju deploy kafka
juju deploy zookeeper

# Integrate
juju integrate kafka producer
juju integrate kafka consumer
juju integrate kafka zookeeper

# The endless test will start automatically, follow:
juju ssh consumer/leader tail -f /tmp/*_consumer.log

==> /tmp/1714675860_consumer.log <==
2024-05-02 18:58:09,873 INFO [__main__] (MainThread) (<module>) ConsumerRecord(topic='test-topic', partition=4, offset=145, timestamp=1714676289867, timestamp_type=0, key=None, value=b'{"timestamp": 1714676289.866915, "_id": "b09368e996e0463a81859f09172ce402", "origin": "juju-b12b18-3 (10.184.219.11)", "content": "Message #821"}', headers=[], checksum=None, serialized_key_size=-1, serialized_value_size=145, serialized_header_size=-1)
2024-05-02 18:58:10,375 INFO [__main__] (MainThread) (<module>) ConsumerRecord(topic='test-topic', partition=4, offset=146, timestamp=1714676290371, timestamp_type=0, key=None, value=b'{"timestamp": 1714676290.371619, "_id": "fde91ab429bd40f1b07f765498ebdff5", "origin": "juju-b12b18-3 (10.184.219.11)", "content": "Message #822"}', headers=[], checksum=None, serialized_key_size=-1, serialized_value_size=145, serialized_header_size=-1)
2024-05-02 18:58:10,882 INFO [__main__] (MainThread) (<module>) ConsumerRecord(topic='test-topic', partition=2, offset=177, timestamp=1714676290875, timestamp_type=0, key=None, value=b'{"timestamp": 1714676290.8754, "_id": "1208f40acb5441588e036a654aff43af", "origin": "juju-b12b18-3 (10.184.219.11)", "content": "Message #823"}', headers=[], checksum=None, serialized_key_size=-1, serialized_value_size=143, serialized_header_size=-1)
2024-05-02 18:58:11,382 INFO [__main__] (MainThread) (<module>) ConsumerRecord(topic='test-topic', partition=2, offset=178, timestamp=1714676291380, timestamp_type=0, key=None, value=b'{"timestamp": 1714676291.380164, "_id": "7e3528a19d15473ca0e3d6d9ab9d09aa", "origin": "juju-b12b18-3 (10.184.219.11)", "content": "Message #824"}', headers=[], checksum=None, serialized_key_size=-1, serialized_value_size=145, serialized_header_size=-1)
2024-05-02 18:58:11,888 INFO [__main__] (MainThread) (<module>) ConsumerRecord(topic='test-topic', partition=2, offset=179, timestamp=1714676291882, timestamp_type=0, key=None, value=b'{"timestamp": 1714676291.882081, "_id": "1ff770274d224cb38c7a758e243a38cc", "origin": "juju-b12b18-3 (10.184.219.11)", "content": "Message #825"}', headers=[], checksum=None, serialized_key_size=-1, serialized_value_size=145, serialized_header_size=-1)
```

Example of `juju status` output:

```
Model   Controller  Cloud/Region         Version  SLA          Timestamp
test53  lxd         localhost/localhost  3.4.2    unsupported  20:51:50+02:00

App        Version  Status  Scale  Charm           Channel      Rev  Exposed  Message
consumer            active      1  kafka-test-app  latest/edge   10  no       Topic test-topic enabled with process consumer
kafka               active      1  kafka           3/stable     156  no
producer            active      1  kafka-test-app  latest/edge   10  no       Topic test-topic enabled with process producer
zookeeper           active      1  zookeeper       3/stable     126  no

Unit          Workload  Agent  Machine  Public address  Ports  Message
consumer/0*   active    idle   2        10.184.219.5           Topic test-topic enabled with process consumer
kafka/0*      active    idle   0        10.184.219.254
producer/0*   active    idle   3        10.184.219.11          Topic test-topic enabled with process producer
zookeeper/0*  active    idle   1        10.184.219.31

Machine  State    Address         Inst id        Base          AZ  Message
0        started  10.184.219.254  juju-b12b18-0  ubuntu@22.04      Running
1        started  10.184.219.31   juju-b12b18-1  ubuntu@22.04      Running
2        started  10.184.219.5    juju-b12b18-2  ubuntu@22.04      Running
3        started  10.184.219.11   juju-b12b18-3  ubuntu@22.04      Running

Integration provider  Requirer                Interface     Type     Message
consumer:app-peers    consumer:app-peers      app-peers     peer
kafka:cluster         kafka:cluster           cluster       peer
kafka:kafka-client    consumer:kafka-cluster  kafka_client  regular
kafka:kafka-client    producer:kafka-cluster  kafka_client  regular
kafka:restart         kafka:restart           rolling_op    peer
kafka:upgrade         kafka:upgrade           upgrade       peer
producer:app-peers    producer:app-peers      app-peers     peer
zookeeper:cluster     zookeeper:cluster       cluster       peer
zookeeper:restart     zookeeper:restart       rolling_op    peer
zookeeper:upgrade     zookeeper:upgrade       upgrade       peer
zookeeper:zookeeper   kafka:zookeeper         zookeeper     regular
```

---

[Help improve this document in the forum](https://discourse.charmhub.io/t/kafka-test-app-overview/14104) ([guidelines](https://discourse.charmhub.io/t/how-to-write-docs-our-documentation-guidelines-for-contributors/1245)). Last updated 2 years ago.
