1- use std:: net:: { Ipv4Addr , SocketAddr } ;
1+ use std:: net:: Ipv4Addr ;
22
33use clap:: Parser ;
4+ use std:: path:: PathBuf ;
45
6+ use crate :: load_generator:: Targets ;
57use crate :: metrics:: Metrics ;
68
79mod conn;
810mod conn_initializer;
911mod discord;
1012mod limiter;
13+ mod load_generator;
1114mod metrics;
1215mod namesgenerator;
1316mod reporter;
1417mod request;
15- mod web;
1618
1719#[ derive( Debug , Parser ) ]
1820struct Cli {
@@ -31,14 +33,17 @@ struct Cli {
3133 #[ clap( long, env) ]
3234 report_in : url:: Url ,
3335
34- #[ clap( long, env) ]
36+ #[ clap( long, env, default_value = "600s" ) ]
3537 report_interval : humantime:: Duration ,
3638
39+ #[ clap( long, env, default_value = "Hello World!" ) ]
40+ message : String ,
41+
3742 #[ clap( long, env) ]
38- auth_token : String ,
43+ targets : PathBuf ,
3944
40- #[ clap( long, env, default_value = "0.0.0.0:3000 " ) ]
41- listen : SocketAddr ,
45+ #[ clap( long, env, default_value = "100ms " ) ]
46+ send_interval : humantime :: Duration ,
4247}
4348
4449#[ tokio:: main]
@@ -56,12 +61,14 @@ async fn main() {
5661 . with_max_level ( tracing:: Level :: INFO )
5762 . init ( ) ;
5863
64+ let targets = Targets :: try_new ( & cli. targets ) . unwrap ( ) ;
65+
5966 tokio:: spawn ( {
6067 let metrics = metrics. clone ( ) ;
6168 async move { reporter:: run ( & cli. report_interval , & cli. report_in , metrics) . await }
6269 } ) ;
6370
64- let ( sender, limiter ) = conn_initializer:: initialize (
71+ let ( sender, _limiter ) = conn_initializer:: initialize (
6572 & cli. retry_ips ,
6673 & cli. sender_ips ,
6774 cli. multiplier ,
@@ -71,7 +78,5 @@ async fn main() {
7178 . await
7279 . expect ( "failed to initialize connection" ) ;
7380
74- web:: run ( cli. listen , sender, limiter, & cli. auth_token )
75- . await
76- . unwrap ( ) ;
81+ load_generator:: run ( targets, sender, & cli. send_interval , & cli. message ) . await ;
7782}
0 commit comments