@@ -79,15 +79,24 @@ async function main() {
7979
8080 if ( concurrentRun ) {
8181 console . log ( `Running ${ modeLabel } Producer/Consumer test (concurrently)...` ) ;
82+ const TERMINATE_TIMEOUT_MS = process . env . TERMINATE_TIMEOUT_MS ? + process . env . TERMINATE_TIMEOUT_MS : 600000 ;
83+ // Wait 2s more to see if all lag is caught up
84+ const TERMINATE_TIMEOUT_MS_CONSUMERS = TERMINATE_TIMEOUT_MS + 2000 ;
8285
8386 await runCommand ( `MODE=${ mode } node performance-consolidated.js --create-topics` ) ;
8487 const allPromises = [ ] ;
8588 allPromises . push ( runCommand ( `MODE=${ mode } MESSAGE_COUNT=${ messageCount } node performance-consolidated.js --producer` ) ) ;
8689 if ( consumerModeAll || consumerModeEachMessage ) {
87- allPromises . push ( runCommand ( `MODE=${ mode } MESSAGE_COUNT=${ messageCount } GROUPID_MESSAGE=${ groupIdEachMessage } node performance-consolidated.js --consumer-each-message ${ produceToSecondTopicParam } ` ) ) ;
90+ allPromises . push ( runCommand ( `MODE=${ mode } MESSAGE_COUNT=${ messageCount } TERMINATE_TIMEOUT_MS= ${ TERMINATE_TIMEOUT_MS_CONSUMERS } GROUPID_MESSAGE=${ groupIdEachMessage } node performance-consolidated.js --consumer-each-message ${ produceToSecondTopicParam } ` ) ) ;
8891 }
8992 if ( consumerModeAll || consumerModeEachBatch ) {
90- allPromises . push ( runCommand ( `MODE=${ mode } MESSAGE_COUNT=${ messageCount } GROUPID_BATCH=${ groupIdEachBatch } node performance-consolidated.js --consumer-each-batch ${ produceToSecondTopicParam } ` ) ) ;
93+ allPromises . push ( runCommand ( `MODE=${ mode } MESSAGE_COUNT=${ messageCount } TERMINATE_TIMEOUT_MS=${ TERMINATE_TIMEOUT_MS_CONSUMERS } GROUPID_BATCH=${ groupIdEachBatch } node performance-consolidated.js --consumer-each-batch ${ produceToSecondTopicParam } ` ) ) ;
94+ }
95+ if ( consumerModeAll || consumerModeEachMessage ) {
96+ allPromises . push ( runCommand ( `MODE=${ mode } TERMINATE_TIMEOUT_MS=${ TERMINATE_TIMEOUT_MS_CONSUMERS } GROUPID_MONITOR=${ groupIdEachMessage } node performance-consolidated.js --monitor-lag` ) ) ;
97+ }
98+ if ( consumerModeAll || consumerModeEachBatch ) {
99+ allPromises . push ( runCommand ( `MODE=${ mode } TERMINATE_TIMEOUT_MS=${ TERMINATE_TIMEOUT_MS_CONSUMERS } GROUPID_MONITOR=${ groupIdEachBatch } node performance-consolidated.js --monitor-lag` ) ) ;
91100 }
92101 const results = await Promise . allSettled ( allPromises ) ;
93102 return results . map ( r => r . status === 'fulfilled' ? r . value : '' ) . join ( '\n' ) ;
@@ -123,6 +132,8 @@ async function main() {
123132 let consumerConfluentTime ;
124133 let consumerConfluentMessageAverageRSS ;
125134 let consumerConfluentMessageMaxRSS ;
135+ let consumerConfluentMessageAverageBrokerLag ;
136+ let consumerConfluentMessageMaxBrokerLag ;
126137 let consumerConfluentBatch ;
127138 let consumerConfluentBatchRate ;
128139 let consumerConfluentBatchAvgLatency ;
@@ -133,6 +144,8 @@ async function main() {
133144 let consumerConfluentBatchAverageSize ;
134145 let consumerConfluentBatchAverageRSS ;
135146 let consumerConfluentBatchMaxRSS ;
147+ let consumerConfluentBatchAverageBrokerLag ;
148+ let consumerConfluentBatchMaxBrokerLag ;
136149
137150 const producerConfluent = extractValue ( outputConfluentProducerConsumer , '=== Producer Rate:' ) ;
138151 const producerConfluentAverageRSS = extractValue ( outputConfluentProducerConsumer , '=== Average producer RSS KB:' ) ;
@@ -145,6 +158,8 @@ async function main() {
145158 consumerConfluentTime = extractValue ( outputConfluentProducerConsumer , '=== Consumption time (eachMessage):' ) ;
146159 consumerConfluentMessageAverageRSS = extractValue ( outputConfluentProducerConsumer , '=== Average consumer-each-message RSS KB:' ) ;
147160 consumerConfluentMessageMaxRSS = extractValue ( outputConfluentProducerConsumer , '=== Max consumer-each-message RSS KB:' ) ;
161+ consumerConfluentMessageAverageBrokerLag = extractValue ( outputConfluentProducerConsumer , `=== Average broker lag (${ groupIdEachMessageConfluent } ):` ) ;
162+ consumerConfluentMessageMaxBrokerLag = extractValue ( outputConfluentProducerConsumer , `=== Max broker lag (${ groupIdEachMessageConfluent } ):` ) ;
148163 }
149164 if ( consumerModeAll || consumerModeEachBatch ) {
150165 consumerConfluentBatch = extractValue ( outputConfluentProducerConsumer , '=== Consumer Rate MB/s (eachBatch):' ) ;
@@ -157,6 +172,8 @@ async function main() {
157172 consumerConfluentBatchAverageSize = extractValue ( outputConfluentProducerConsumer , '=== Average eachBatch size:' ) ;
158173 consumerConfluentBatchAverageRSS = extractValue ( outputConfluentProducerConsumer , '=== Average consumer-each-batch RSS KB:' ) ;
159174 consumerConfluentBatchMaxRSS = extractValue ( outputConfluentProducerConsumer , '=== Max consumer-each-batch RSS KB:' ) ;
175+ consumerConfluentBatchAverageBrokerLag = extractValue ( outputConfluentProducerConsumer , `=== Average broker lag (${ groupIdEachBatchConfluent } ):` ) ;
176+ consumerConfluentBatchMaxBrokerLag = extractValue ( outputConfluentProducerConsumer , `=== Max broker lag (${ groupIdEachBatchConfluent } ):` ) ;
160177 }
161178 const consumerConfluentAverageRSS = extractValue ( outputConfluentProducerConsumer , '=== Max Average RSS across tests:' ) ;
162179 const consumerConfluentMaxRSS = extractValue ( outputConfluentProducerConsumer , '=== Max RSS across tests:' ) ;
@@ -193,6 +210,8 @@ async function main() {
193210 consumerKjsMessageMaxLatency = extractValue ( outputKjsProducerConsumer , '=== Consumer max E2E latency (eachMessage):' ) ;
194211 consumerKjsMessageAverageRSS = extractValue ( outputKjsProducerConsumer , '=== Average consumer-each-message RSS KB:' ) ;
195212 consumerKjsMessageMaxRSS = extractValue ( outputKjsProducerConsumer , '=== Max consumer-each-message RSS KB:' ) ;
213+ consumerKjsMessageAverageBrokerLag = extractValue ( outputKjsProducerConsumer , `=== Average broker lag (${ groupIdEachMessageKafkaJS } ):` ) ;
214+ consumerKjsMessageMaxBrokerLag = extractValue ( outputKjsProducerConsumer , `=== Max broker lag (${ groupIdEachMessageKafkaJS } ):` ) ;
196215 }
197216 if ( consumerModeAll || consumerModeEachBatch ) {
198217 consumerKjsTime = extractValue ( outputKjsProducerConsumer , '=== Consumption time (eachMessage):' ) ;
@@ -206,6 +225,8 @@ async function main() {
206225 consumerKjsBatchAverageSize = extractValue ( outputKjsProducerConsumer , '=== Average eachBatch size:' ) ;
207226 consumerKjsBatchAverageRSS = extractValue ( outputKjsProducerConsumer , '=== Average consumer-each-batch RSS KB:' ) ;
208227 consumerKjsBatchMaxRSS = extractValue ( outputKjsProducerConsumer , '=== Max consumer-each-batch RSS KB:' ) ;
228+ consumerKjsBatchAverageBrokerLag = extractValue ( outputKjsProducerConsumer , `=== Average broker lag (${ groupIdEachBatchKafkaJS } ):` ) ;
229+ consumerKjsBatchMaxBrokerLag = extractValue ( outputKjsProducerConsumer , `=== Max broker lag (${ groupIdEachBatchKafkaJS } ):` ) ;
209230 }
210231 const consumerKjsAverageRSS = extractValue ( outputKjsProducerConsumer , '=== Max Average RSS across tests:' ) ;
211232 const consumerKjsMaxRSS = extractValue ( outputKjsProducerConsumer , '=== Max RSS across tests:' ) ;
@@ -225,6 +246,8 @@ async function main() {
225246 console . log ( `Consumption time (eachMessage): confluent ${ consumerConfluentTime } , kafkajs ${ consumerKjsTime } ` ) ;
226247 console . log ( `Average RSS (eachMessage): confluent ${ consumerConfluentMessageAverageRSS } , kafkajs ${ consumerKjsMessageAverageRSS } ` ) ;
227248 console . log ( `Max RSS (eachMessage): confluent ${ consumerConfluentMessageMaxRSS } , kafkajs ${ consumerKjsMessageMaxRSS } ` ) ;
249+ console . log ( `Average broker lag (eachMessage): confluent ${ consumerConfluentMessageAverageBrokerLag } , kafkajs ${ consumerKjsMessageAverageBrokerLag } ` ) ;
250+ console . log ( `Max broker lag (eachMessage): confluent ${ consumerConfluentMessageMaxBrokerLag } , kafkajs ${ consumerKjsMessageMaxBrokerLag } ` ) ;
228251 }
229252 if ( consumerModeAll || consumerModeEachBatch ) {
230253 console . log ( `Consumer rates MB/s (eachBatch): confluent ${ consumerConfluentBatch } , kafkajs ${ consumerKjsBatch } ` ) ;
@@ -237,6 +260,8 @@ async function main() {
237260 console . log ( `Average eachBatch size: confluent ${ consumerConfluentBatchAverageSize } , kafkajs ${ consumerKjsBatchAverageSize } ` ) ;
238261 console . log ( `Average RSS (eachBatch): confluent ${ consumerConfluentBatchAverageRSS } , kafkajs ${ consumerKjsBatchAverageRSS } ` ) ;
239262 console . log ( `Max RSS (eachBatch): confluent ${ consumerConfluentBatchMaxRSS } , kafkajs ${ consumerKjsBatchMaxRSS } ` ) ;
263+ console . log ( `Average broker lag (eachBatch): confluent ${ consumerConfluentBatchAverageBrokerLag } , kafkajs ${ consumerKjsBatchAverageBrokerLag } ` ) ;
264+ console . log ( `Max broker lag (eachBatch): confluent ${ consumerConfluentBatchMaxBrokerLag } , kafkajs ${ consumerKjsBatchMaxBrokerLag } ` ) ;
240265 }
241266 if ( ! concurrentRun ) {
242267 console . log ( `Average RSS: confluent ${ consumerConfluentAverageRSS } , kafkajs ${ consumerKjsAverageRSS } ` ) ;
0 commit comments