Skip to content

Commit 1df2d3b

Browse files
authored
Added profile clusterlinking in dev-toolkit - moved away from cp-demo - (#288)
* added profile clusterlinking in devtoolkit - moved away from cp-demo - #261 * added env on grafana dashboards
1 parent 0c4da0f commit 1df2d3b

File tree

9 files changed

+105
-218
lines changed

9 files changed

+105
-218
lines changed

README.md

+1
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,7 @@ Currently supported profiles:
186186
- _consumer_: it will add a demo application implemented with Spring with full client metrics
187187
- _consumer-minimal_: it will add a demo application implemented with Spring with a limited number of client metrics
188188
- _jr_: it will add [JR](https://jrnd.io/) to generate random traffic for kafka.
189+
- _clusterlinking_: add Cluster Linking between _kafka1-kafka2-kafka3-kafka4_ and a new cluster with 1 broker _broker-dest_
189190

190191
## DEV-toolkit FAQ
191192

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
services:
2+
broker-replicator-dst:
3+
image: confluentinc/cp-server:${CFLT_TAG}
4+
hostname: broker-replicator-dst
5+
container_name: broker-replicator-dst
6+
profiles:
7+
- clusterlinking
8+
environment:
9+
KAFKA_NODE_ID: 1
10+
KAFKA_LISTENER_SECURITY_PROTOCOL_MAP: "CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT"
11+
KAFKA_ADVERTISED_LISTENERS: "PLAINTEXT://broker-replicator-dst:29092"
12+
KAFKA_DEFAULT_REPLICATION_FACTOR: 1
13+
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
14+
KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS: 0
15+
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
16+
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
17+
KAFKA_CONFLUENT_BALANCER_TOPIC_REPLICATION_FACTOR: 1
18+
KAFKA_CONFLUENT_METADATA_TOPIC_REPLICATION_FACTOR: 1
19+
KAFKA_CONFLUENT_LICENSE_TOPIC_REPLICATION_FACTOR: 1
20+
KAFKA_CONFLUENT_SECURITY_EVENT_LOGGER_EXPORTER_KAFKA_TOPIC_REPLICAS: 1
21+
KAFKA_CONFLUENT_CLUSTER_LINK_METADATA_TOPIC_REPLICATION_FACTOR: 1
22+
KAFKA_CONFLUENT_REPORTER_RESULT_TOPIC_REPLICATION_FACTOR: 1
23+
KAFKA_CONFLUENT_BALANCER_ENABLE: false
24+
KAFKA_AUTO_CREATE_TOPICS: true
25+
KAFKA_PROCESS_ROLES: "broker,controller"
26+
KAFKA_CONTROLLER_QUORUM_VOTERS: "1@broker-replicator-dst:29093"
27+
KAFKA_LISTENERS: "PLAINTEXT://broker-replicator-dst:29092,CONTROLLER://broker-replicator-dst:29093"
28+
KAFKA_INTER_BROKER_LISTENER_NAME: "PLAINTEXT"
29+
KAFKA_CONTROLLER_LISTENER_NAMES: "CONTROLLER"
30+
KAFKA_LOG_DIRS: "/tmp/kraft-combined-logs"
31+
KAFKA_LOG4J_LOGGERS: "org.apache.kafka.image.loader.MetadataLoader=WARN"
32+
CLUSTER_ID: "N3Ept9vxTMijB5S74gkfPA"
33+
KAFKA_CONFLUENT_HTTP_SERVER_LISTENERS: http://0.0.0.0:8090
34+
KAFKA_REST_BOOTSTRAP_SERVERS: "broker-replicator-dst:29092"
35+
KAFKA_OPTS: "-javaagent:/tmp/jmx_prometheus_javaagent-1.1.0.jar=1234:/tmp/kafka_config.yml"
36+
volumes:
37+
- $PWD/jmx-exporter/jmx_prometheus_javaagent-1.1.0.jar:/tmp/jmx_prometheus_javaagent-1.1.0.jar
38+
- $PWD/jmx-exporter/kafka_broker.yml:/tmp/kafka_config.yml

dev-toolkit/start.sh

+40
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,23 @@ cat <<EOF >>assets/prometheus/prometheus-config/prometheus.yml
9999
replacement: '${1}'
100100
EOF
101101

102+
# ADD Brokers dest cluster monitoring to prometheus config
103+
cat <<EOF >>assets/prometheus/prometheus-config/prometheus.yml
104+
105+
- job_name: "kafka-broker-dest"
106+
static_configs:
107+
- targets:
108+
- "broker-replicator-dst:1234"
109+
labels:
110+
env: "dev"
111+
job: "kafka-broker"
112+
relabel_configs:
113+
- source_labels: [__address__]
114+
target_label: hostname
115+
regex: '([^:]+)(:[0-9]+)?'
116+
replacement: '${1}'
117+
EOF
118+
102119
# ADD Schema Registry monitoring to prometheus config (default was for 1 SR only)
103120
cat <<EOF >>assets/prometheus/prometheus-config/prometheus.yml
104121
@@ -128,6 +145,7 @@ $DOCKER_COMPOSE_CMD ${docker_args[@]} \
128145
-f docker-compose.consumer-minimal.yaml \
129146
-f docker-compose.schema-registry-primary-secondary.yaml \
130147
-f docker-compose.jr.yaml \
148+
-f docker-compose.clusterlinking.yaml \
131149
up -d
132150

133151
# if docker_args contains replicator, then start the replicator
@@ -168,6 +186,28 @@ if [[ " ${docker_args[@]} " =~ " ksqldb " ]]; then
168186

169187
fi
170188

189+
# if docker_args contains clusterlinking, then start the clusterlinking
190+
if [[ " ${docker_args[@]} " =~ " clusterlinking " ]]; then
191+
192+
echo -e "\nWaiting 45 seconds before starting clusterlinking..."
193+
sleep 45
194+
195+
docker exec kafka1 bash -c "KAFKA_OPTS= kafka-topics --bootstrap-server kafka1:29092 --create --topic product --replication-factor 1 --partitions 1"
196+
197+
echo -e "Create link main-to-disaster-cl"
198+
199+
docker exec broker-replicator-dst bash -c '\
200+
echo "\
201+
bootstrap.servers=kafka1:29092
202+
" > /home/appuser/cl.properties'
203+
204+
docker exec broker-replicator-dst bash -c "KAFKA_OPTS= kafka-cluster-links --bootstrap-server broker-replicator-dst:29092 --create --link main-to-disaster-cl --config-file /home/appuser/cl.properties"
205+
206+
docker exec broker-replicator-dst bash -c "KAFKA_OPTS= kafka-mirrors --create --source-topic product --mirror-topic product --link main-to-disaster-cl --bootstrap-server broker-replicator-dst:29092"
207+
208+
209+
fi
210+
171211
echo -e "\ndev-toolkit started!"
172212

173213
# Look at Prometheus metrics

dev-toolkit/stop.sh

+1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ $DOCKER_COMPOSE_CMD \
2525
-f docker-compose.consumer-minimal.yaml \
2626
-f docker-compose.schema-registry-primary-secondary.yaml \
2727
-f docker-compose.jr.yaml \
28+
-f docker-compose.clusterlinking.yaml \
2829
down -v
2930
rm -rf jmx-exporter
3031
rm -rf assets

jmxexporter-prometheus-grafana/README.md

+25-41
Original file line numberDiff line numberDiff line change
@@ -18,30 +18,30 @@ After run the demo, for Grafana, go to http://localhost:3000 and then login with
1818

1919
List of provided dashboards:
2020

21-
- [Confluent Platform overview](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#confluent-platform-overview)
22-
- [Zookeeper cluster](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#zookeeper-cluster)
23-
- [Kafka cluster](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-cluster)
24-
- [Kafka topics](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-topics)
25-
- [Kafka clients](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-clients)
26-
- [Kafka quotas](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-quotas)
27-
- [Kafka lag exporter](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-lag-exporter)
28-
- [Kafka transaction coordinator](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-transaction-coordinator)
29-
- [Schema Registry cluster](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#schema-registry-cluster)
30-
- [Kafka Connect cluster](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-connect-cluster)
31-
- [ksqlDB cluster](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#ksqldb-cluster)
32-
- [Kafka streams](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-streams)
33-
- [Kafka streams RocksDB](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-streams-rocksdb)
34-
- [Librdkafka based client](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#Librdkafka)
21+
- [Confluent Platform overview _(cp-demo,dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#confluent-platform-overview)
22+
- [Zookeeper cluster _(cp-demo)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#zookeeper-cluster)
23+
- [Kafka cluster _(cp-demo,dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-cluster)
24+
- [Kafka topics _(cp-demo,dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-topics)
25+
- [Kafka clients _(cp-demo,dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-clients)
26+
- [Kafka quotas _(cp-demo,dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-quotas)
27+
- [Kafka lag exporter _(cp-demo,dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-lag-exporter)
28+
- [Kafka transaction coordinator _(cp-demo,dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-transaction-coordinator)
29+
- [Schema Registry cluster _(cp-demo,dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#schema-registry-cluster)
30+
- [Kafka Connect cluster _(cp-demo)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-connect-cluster)
31+
- [ksqlDB cluster _(cp-demo,dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#ksqldb-cluster)
32+
- [Kafka streams _(cp-demo)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-streams)
33+
- [Kafka streams RocksDB _(cp-demo)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kafka-streams-rocksdb)
34+
- [Librdkafka based client _(cp-demo)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#Librdkafka)
3535
- [Oracle CDC source Connector](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#oracle-cdc-source-connector)
3636
- [Debezium source Connectors](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#debezium-cdc-source-connectors)
3737
- [Mongo source and sink Connectors](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#mongo-source-and-sink-connectors)
38-
- [Cluster Linking](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#cluster-linking)
39-
- [Rest Proxy](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#rest-proxy)
40-
- [KRaft overview](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kraft)
41-
- [Confluent RBAC](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#rbac)
42-
- [Replicator](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#replicator)
38+
- [Cluster Linking _(dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#cluster-linking)
39+
- [Rest Proxy _(cp-demo)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#rest-proxy)
40+
- [KRaft overview _(dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#kraft)
41+
- [Confluent RBAC _(cp-demo)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#rbac)
42+
- [Replicator _(dev-toolkit)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#replicator)
4343
- [Tiered Storage](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#tiered-storage)
44-
- [Confluent Audit](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#confluent-audit)
44+
- [Confluent Audit _(cp-demo)_](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#confluent-audit)
4545
- [Flink Cluster](https://github.com/confluentinc/jmx-monitoring-stacks/blob/main/jmxexporter-prometheus-grafana/README.md#flink-cluster)
4646

4747
---
@@ -174,29 +174,13 @@ To test:
174174

175175
### Cluster Linking
176176

177-
Demo is based on https://github.com/confluentinc/demo-scene/tree/master/cluster-linking-disaster-recovery
177+
To test use dev-toolkit with _clusterlinking_ profile:
178178

179-
To test follow the next steps:
180-
181-
1. Set env:
182-
```bash
183-
MONITORING_STACK=jmxexporter-prometheus-grafana
184-
```
185-
2. Clone demo cluster linking disaster recovery from confluentinc/demo-scene:
186-
```bash
187-
[[ -d "clink-demo" ]] || git clone [email protected]:confluentinc/demo-scene.git clink-demo
188-
(cd clink-demo && git fetch && git pull)
189-
```
190-
3. Start the monitoring solution with the STACK selected. This command also starts clink-demo, you do not need to start clink-demo separately.
191-
192-
```bash
193-
${MONITORING_STACK}/cluster-linking/start.sh
194-
```
195-
196-
4. Stop the monitoring solution. This command also stops clink-demo, you do not need to stop clink-demo separately.
179+
1. Start dev-toolkit with
197180

198181
```bash
199-
${MONITORING_STACK}/cluster-linking/stop.sh
182+
$ cd dev-toolkit
183+
$ start.sh --profile clusterlinking
200184
```
201185

202186
![clusterlinking](img/clusterlinking.png)
@@ -208,7 +192,7 @@ ${MONITORING_STACK}/cluster-linking/stop.sh
208192

209193
### KRaft
210194

211-
To test use dev-toolkit with _Default_ profile:
195+
To test use dev-toolkit with _default_ profile:
212196

213197
1. Start dev-toolkit with
214198

jmxexporter-prometheus-grafana/cluster-linking/docker-compose.override.yaml

-57
This file was deleted.

0 commit comments

Comments
 (0)