@@ -164,6 +164,41 @@ fn build_function_arn(account_id: &str, region: &str, function_name: &str) -> St
164164async fn main ( ) -> Result < ( ) > {
165165 let ( aws_config, config) = load_configs ( ) ;
166166
167+ let site = Site :: new ( config. site . clone ( ) ) . map_err ( |e| {
168+ Error :: new (
169+ std:: io:: ErrorKind :: InvalidData ,
170+ format ! ( "Failed to parse DD_SITE: {e:?}" ) ,
171+ )
172+ } ) ?;
173+ let dd_url = match config. url . clone ( ) {
174+ Some ( dd_url) => Some ( DdUrl :: new ( dd_url) . map_err ( |e| {
175+ Error :: new (
176+ std:: io:: ErrorKind :: InvalidData ,
177+ format ! ( "Failed to parse DD_URL: {e:?}" ) ,
178+ )
179+ } ) ?) ,
180+ None => None ,
181+ } ;
182+ let dd_dd_url = match config. dd_url . clone ( ) {
183+ Some ( dd_dd_url) => Some ( DdDdUrl :: new ( dd_dd_url) . map_err ( |e| {
184+ Error :: new (
185+ std:: io:: ErrorKind :: InvalidData ,
186+ format ! ( "Failed to parse DD_DD_URL: {e:?}" ) ,
187+ )
188+ } ) ?) ,
189+ None => None ,
190+ } ;
191+ let metrics_intake_url_prefix = MetricsIntakeUrlPrefix :: new (
192+ Some ( site) ,
193+ MetricsIntakeUrlPrefixOverride :: maybe_new ( dd_url, dd_dd_url) ,
194+ )
195+ . map_err ( |e| {
196+ Error :: new (
197+ std:: io:: ErrorKind :: InvalidData ,
198+ format ! ( "Failed to create intake url prefix: {e:?}" ) ,
199+ )
200+ } ) ?;
201+
167202 enable_logging_subsystem ( & config) ;
168203 let client = reqwest:: Client :: builder ( ) . no_proxy ( ) . build ( ) . map_err ( |e| {
169204 Error :: new (
@@ -177,7 +212,16 @@ async fn main() -> Result<()> {
177212 . map_err ( |e| Error :: new ( std:: io:: ErrorKind :: InvalidData , e. to_string ( ) ) ) ?;
178213
179214 if let Some ( resolved_api_key) = resolve_secrets ( Arc :: clone ( & config) , & aws_config) . await {
180- match extension_loop_active ( & aws_config, & config, & client, & r, resolved_api_key) . await {
215+ match extension_loop_active (
216+ & aws_config,
217+ & config,
218+ & client,
219+ & r,
220+ resolved_api_key,
221+ metrics_intake_url_prefix,
222+ )
223+ . await
224+ {
181225 Ok ( ( ) ) => {
182226 debug ! ( "Extension loop completed successfully" ) ;
183227 Ok ( ( ) )
@@ -261,6 +305,7 @@ async fn extension_loop_active(
261305 client : & Client ,
262306 r : & RegisterResponse ,
263307 resolved_api_key : String ,
308+ metrics_intake_url_prefix : MetricsIntakeUrlPrefix ,
264309) -> Result < ( ) > {
265310 let mut event_bus = EventBus :: run ( ) ;
266311
@@ -285,20 +330,6 @@ async fn extension_loop_active(
285330 )
286331 . expect ( "failed to create aggregator" ) ,
287332 ) ) ;
288- let metrics_intake_url_prefix = MetricsIntakeUrlPrefix :: new (
289- Some ( Site :: new ( config. site . clone ( ) ) . expect ( "failed to create site" ) ) ,
290- MetricsIntakeUrlPrefixOverride :: maybe_new (
291- config
292- . url
293- . clone ( )
294- . map ( |url| DdUrl :: new ( url) . expect ( "failed to create dd url" ) ) ,
295- config
296- . dd_url
297- . clone ( )
298- . map ( |dd_url| DdDdUrl :: new ( dd_url) . expect ( "failed to create dd dd url" ) ) ,
299- ) ,
300- )
301- . expect ( "failed to create intake url prefix" ) ;
302333 let mut metrics_flusher = MetricsFlusher :: new ( MetricsFlusherConfig {
303334 api_key : resolved_api_key. clone ( ) ,
304335 aggregator : Arc :: clone ( & metrics_aggr) ,
0 commit comments