@@ -357,8 +357,6 @@ pub async fn run(opt: Opt, env_vars: Arc<EnvVars>) {
357
357
metrics_registry. cheap_clone ( ) ,
358
358
) ) ;
359
359
360
- let graphql_metrics_registry = metrics_registry. clone ( ) ;
361
-
362
360
// TODO: make option loadable from configuration TOML and environment:
363
361
let expensive_queries =
364
362
read_expensive_queries ( & logger, opt. expensive_queries_filename . clone ( ) ) . unwrap ( ) ;
@@ -403,20 +401,14 @@ pub async fn run(opt: Opt, env_vars: Arc<EnvVars>) {
403
401
cleanup_ethereum_shallow_blocks ( & blockchain_map, & network_store) ;
404
402
}
405
403
406
- let shards : Vec < _ > = config . stores . keys ( ) . cloned ( ) . collect ( ) ;
407
- let load_manager = Arc :: new ( LoadManager :: new (
404
+ let graphql_server = build_graphql_server (
405
+ & config ,
408
406
& logger,
409
- shards,
410
407
expensive_queries,
411
408
metrics_registry. clone ( ) ,
412
- ) ) ;
413
- let graphql_runner = Arc :: new ( GraphQlRunner :: new (
414
- & logger,
415
- network_store. clone ( ) ,
416
- load_manager,
417
- graphql_metrics_registry,
418
- ) ) ;
419
- let graphql_server = GraphQLQueryServer :: new ( & logger_factory, graphql_runner. clone ( ) ) ;
409
+ & network_store,
410
+ & logger_factory,
411
+ ) ;
420
412
421
413
let index_node_server = IndexNodeServer :: new (
422
414
& logger_factory,
@@ -523,6 +515,32 @@ pub async fn run(opt: Opt, env_vars: Arc<EnvVars>) {
523
515
graph:: futures03:: future:: pending :: < ( ) > ( ) . await ;
524
516
}
525
517
518
+ fn build_graphql_server (
519
+ config : & Config ,
520
+ logger : & Logger ,
521
+ expensive_queries : Vec < Arc < q:: Document > > ,
522
+ metrics_registry : Arc < MetricsRegistry > ,
523
+ network_store : & Arc < Store > ,
524
+ logger_factory : & LoggerFactory ,
525
+ ) -> GraphQLQueryServer < GraphQlRunner < Store > > {
526
+ let shards: Vec < _ > = config. stores . keys ( ) . cloned ( ) . collect ( ) ;
527
+ let load_manager = Arc :: new ( LoadManager :: new (
528
+ & logger,
529
+ shards,
530
+ expensive_queries,
531
+ metrics_registry. clone ( ) ,
532
+ ) ) ;
533
+ let graphql_runner = Arc :: new ( GraphQlRunner :: new (
534
+ & logger,
535
+ network_store. clone ( ) ,
536
+ load_manager,
537
+ metrics_registry,
538
+ ) ) ;
539
+ let graphql_server = GraphQLQueryServer :: new ( & logger_factory, graphql_runner. clone ( ) ) ;
540
+
541
+ graphql_server
542
+ }
543
+
526
544
fn spawn_contention_checker ( logger : Logger ) {
527
545
// Periodically check for contention in the tokio threadpool. First spawn a
528
546
// task that simply responds to "ping" requests. Then spawn a separate
0 commit comments