Skip to content

Commit ccba5c7

Browse files
chore: [SVLS-5992] push config parsing upwards
1 parent b35a023 commit ccba5c7

File tree

1 file changed

+46
-15
lines changed

1 file changed

+46
-15
lines changed

bottlecap/src/bin/bottlecap/main.rs

Lines changed: 46 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,41 @@ fn build_function_arn(account_id: &str, region: &str, function_name: &str) -> St
164164
async 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

Comments
 (0)