@@ -169,11 +169,11 @@ fn main() -> anyhow::Result<()> {
169
169
170
170
let connection_for_health = connection. clone ( ) ; // Clone before moving into HttpServer
171
171
172
- // ==== 3.1 Spans message queue ====
173
- let spans_message_queue: Arc < MessageQueue > = if let Some ( connection) = connection. as_ref ( ) {
172
+ let queue: Arc < MessageQueue > = if let Some ( connection) = connection. as_ref ( ) {
174
173
runtime_handle. block_on ( async {
175
174
let channel = connection. create_channel ( ) . await . unwrap ( ) ;
176
-
175
+ // Register queues
176
+ // ==== 3.1 Spans message queue ====
177
177
channel
178
178
. exchange_declare (
179
179
OBSERVATIONS_EXCHANGE ,
@@ -193,28 +193,7 @@ fn main() -> anyhow::Result<()> {
193
193
. await
194
194
. unwrap ( ) ;
195
195
196
- let max_channel_pool_size = env:: var ( "RABBITMQ_MAX_CHANNEL_POOL_SIZE" )
197
- . ok ( )
198
- . and_then ( |v| v. parse ( ) . ok ( ) )
199
- . unwrap_or ( 64 ) ;
200
-
201
- log:: info!( "RabbitMQ span channels: {}" , max_channel_pool_size) ;
202
-
203
- let rabbit_mq = mq:: rabbit:: RabbitMQ :: new ( connection. clone ( ) , max_channel_pool_size) ;
204
- Arc :: new ( rabbit_mq. into ( ) )
205
- } )
206
- } else {
207
- log:: info!( "Using tokio mpsc span queue" ) ;
208
- Arc :: new ( mq:: tokio_mpsc:: TokioMpscQueue :: new ( ) . into ( ) )
209
- } ;
210
-
211
- // ==== 3.2 Browser events message queue ====
212
- let browser_events_message_queue: Arc < MessageQueue > = if let Some ( connection) =
213
- connection. as_ref ( )
214
- {
215
- runtime_handle. block_on ( async {
216
- let channel = connection. create_channel ( ) . await . unwrap ( ) ;
217
-
196
+ // ==== 3.2 Browser events message queue ====
218
197
channel
219
198
. exchange_declare (
220
199
BROWSER_SESSIONS_EXCHANGE ,
@@ -234,30 +213,7 @@ fn main() -> anyhow::Result<()> {
234
213
. await
235
214
. unwrap ( ) ;
236
215
237
- let max_channel_pool_size = env:: var ( "RABBITMQ_MAX_CHANNEL_POOL_SIZE" )
238
- . ok ( )
239
- . and_then ( |v| v. parse ( ) . ok ( ) )
240
- . unwrap_or ( 64 ) ;
241
-
242
- log:: info!(
243
- "RabbitMQ browser events channels: {}" ,
244
- max_channel_pool_size
245
- ) ;
246
-
247
- let rabbit_mq = mq:: rabbit:: RabbitMQ :: new ( connection. clone ( ) , max_channel_pool_size) ;
248
- Arc :: new ( rabbit_mq. into ( ) )
249
- } )
250
- } else {
251
- log:: info!( "Using tokio mpsc browser events queue" ) ;
252
- Arc :: new ( mq:: tokio_mpsc:: TokioMpscQueue :: new ( ) . into ( ) )
253
- } ;
254
-
255
- // ==== 3.3 Evaluators message queue ====
256
- let evaluators_message_queue: Arc < MessageQueue > = if let Some ( connection) = connection. as_ref ( )
257
- {
258
- runtime_handle. block_on ( async {
259
- let channel = connection. create_channel ( ) . await . unwrap ( ) ;
260
-
216
+ // ==== 3.3 Evaluators message queue ====
261
217
channel
262
218
. exchange_declare (
263
219
EVALUATORS_EXCHANGE ,
@@ -282,14 +238,22 @@ fn main() -> anyhow::Result<()> {
282
238
. and_then ( |v| v. parse ( ) . ok ( ) )
283
239
. unwrap_or ( 64 ) ;
284
240
285
- log:: info!( "RabbitMQ evaluators channels: {}" , max_channel_pool_size) ;
241
+ log:: info!( "RabbitMQ channels: {}" , max_channel_pool_size) ;
286
242
287
243
let rabbit_mq = mq:: rabbit:: RabbitMQ :: new ( connection. clone ( ) , max_channel_pool_size) ;
288
244
Arc :: new ( rabbit_mq. into ( ) )
289
245
} )
290
246
} else {
291
- log:: info!( "Using tokio mpsc evaluators queue" ) ;
292
- Arc :: new ( mq:: tokio_mpsc:: TokioMpscQueue :: new ( ) . into ( ) )
247
+ let queue = mq:: tokio_mpsc:: TokioMpscQueue :: new ( ) ;
248
+ // register queues
249
+ // ==== 3.1 Spans message queue ====
250
+ queue. register_queue ( OBSERVATIONS_EXCHANGE , OBSERVATIONS_QUEUE ) ;
251
+ // ==== 3.2 Browser events message queue ====
252
+ queue. register_queue ( BROWSER_SESSIONS_EXCHANGE , BROWSER_SESSIONS_QUEUE ) ;
253
+ // ==== 3.3 Evaluators message queue ====
254
+ queue. register_queue ( EVALUATORS_EXCHANGE , EVALUATORS_QUEUE ) ;
255
+ log:: info!( "Using tokio mpsc queue" ) ;
256
+ Arc :: new ( queue. into ( ) )
293
257
} ;
294
258
295
259
// ==== 3.4 Agent worker message queue ====
@@ -298,7 +262,7 @@ fn main() -> anyhow::Result<()> {
298
262
let runtime_handle_for_http = runtime_handle. clone ( ) ;
299
263
let db_for_http = db. clone ( ) ;
300
264
let cache_for_http = cache. clone ( ) ;
301
- let spans_mq_for_http = spans_message_queue . clone ( ) ;
265
+ let mq_for_http = queue . clone ( ) ;
302
266
303
267
// == HTTP server and listener workers ==
304
268
let http_server_handle = thread:: Builder :: new ( )
@@ -456,8 +420,7 @@ fn main() -> anyhow::Result<()> {
456
420
tokio:: spawn ( process_queue_spans (
457
421
db_for_http. clone ( ) ,
458
422
cache_for_http. clone ( ) ,
459
- spans_mq_for_http. clone ( ) ,
460
- evaluators_message_queue. clone ( ) ,
423
+ mq_for_http. clone ( ) ,
461
424
clickhouse. clone ( ) ,
462
425
storage. clone ( ) ,
463
426
) ) ;
@@ -467,15 +430,15 @@ fn main() -> anyhow::Result<()> {
467
430
tokio:: spawn ( process_browser_events (
468
431
db_for_http. clone ( ) ,
469
432
clickhouse. clone ( ) ,
470
- browser_events_message_queue . clone ( ) ,
433
+ mq_for_http . clone ( ) ,
471
434
) ) ;
472
435
}
473
436
474
437
for _ in 0 ..num_evaluators_workers_per_thread {
475
438
tokio:: spawn ( process_evaluators (
476
439
db_for_http. clone ( ) ,
477
440
clickhouse. clone ( ) ,
478
- evaluators_message_queue . clone ( ) ,
441
+ mq_for_http . clone ( ) ,
479
442
evaluator_client. clone ( ) ,
480
443
python_online_evaluator_url. clone ( ) ,
481
444
) ) ;
@@ -488,13 +451,11 @@ fn main() -> anyhow::Result<()> {
488
451
. app_data ( PayloadConfig :: new ( http_payload_limit) )
489
452
. app_data ( web:: Data :: from ( cache_for_http. clone ( ) ) )
490
453
. app_data ( web:: Data :: from ( db_for_http. clone ( ) ) )
491
- . app_data ( web:: Data :: new ( spans_mq_for_http . clone ( ) ) )
454
+ . app_data ( web:: Data :: new ( mq_for_http . clone ( ) ) )
492
455
. app_data ( web:: Data :: new ( clickhouse. clone ( ) ) )
493
456
. app_data ( web:: Data :: new ( name_generator. clone ( ) ) )
494
457
. app_data ( web:: Data :: new ( storage. clone ( ) ) )
495
458
. app_data ( web:: Data :: new ( machine_manager. clone ( ) ) )
496
- . app_data ( web:: Data :: new ( browser_events_message_queue. clone ( ) ) )
497
- . app_data ( web:: Data :: new ( evaluators_message_queue. clone ( ) ) )
498
459
. app_data ( web:: Data :: new ( agent_manager_workers. clone ( ) ) )
499
460
. app_data ( web:: Data :: new ( connection_for_health. clone ( ) ) )
500
461
. app_data ( web:: Data :: new ( browser_agent. clone ( ) ) )
@@ -570,7 +531,7 @@ fn main() -> anyhow::Result<()> {
570
531
let process_traces_service = ProcessTracesService :: new (
571
532
db. clone ( ) ,
572
533
cache. clone ( ) ,
573
- spans_message_queue . clone ( ) ,
534
+ queue . clone ( ) ,
574
535
) ;
575
536
576
537
Server :: builder ( )
0 commit comments