diff --git a/eden/mononoke/edenapi_service/src/middleware.rs b/eden/mononoke/edenapi_service/src/middleware.rs index 6fcc2f43a626e..e7e24f59d51b7 100644 --- a/eden/mononoke/edenapi_service/src/middleware.rs +++ b/eden/mononoke/edenapi_service/src/middleware.rs @@ -5,7 +5,11 @@ * GNU General Public License version 2. */ +#[cfg(fbcode_build)] +mod facebook; pub mod ods; +#[cfg(not(fbcode_build))] +mod oss; pub mod rate_limiter; pub mod request_dumper; diff --git a/eden/mononoke/edenapi_service/src/middleware/ods.rs b/eden/mononoke/edenapi_service/src/middleware/ods.rs index 23c626838cc02..b7f458f024f75 100644 --- a/eden/mononoke/edenapi_service/src/middleware/ods.rs +++ b/eden/mononoke/edenapi_service/src/middleware/ods.rs @@ -19,6 +19,10 @@ use stats::prelude::*; use crate::handlers::HandlerInfo; use crate::handlers::SaplingRemoteApiMethod; +#[cfg(fbcode_build)] +use crate::middleware::facebook::log_ods3; +#[cfg(not(fbcode_build))] +use crate::middleware::oss::log_ods3; define_stats! { prefix = "mononoke.edenapi.request"; @@ -85,6 +89,7 @@ fn log_stats(state: &mut State, status: StatusCode) -> Option<()> { let hander_info = state.try_borrow::()?; let method = hander_info.method?; + let request_load = RequestLoad::try_borrow_from(state).map(|r| r.0 as f64); let callbacks = state.try_borrow_mut::()?; @@ -164,14 +169,14 @@ fn log_stats(state: &mut State, status: StatusCode) -> Option<()> { } if let Some(response_bytes_sent) = info.meta.as_ref().map(|m| m.body().bytes_sent) { - STATS::response_bytes_sent.add_value(response_bytes_sent as i64, (method,)) + STATS::response_bytes_sent.add_value(response_bytes_sent as i64, (method.clone(),)) } + log_ods3(info, &status, method, request_load); }); if let Some(request_load) = RequestLoad::try_borrow_from(state) { STATS::request_load.add_value(request_load.0); } - Some(()) } diff --git a/eden/mononoke/edenapi_service/src/middleware/oss/mod.rs b/eden/mononoke/edenapi_service/src/middleware/oss/mod.rs new file mode 100644 index 0000000000000..398c94d353302 --- /dev/null +++ b/eden/mononoke/edenapi_service/src/middleware/oss/mod.rs @@ -0,0 +1,17 @@ +/* + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This software may be used and distributed according to the terms of the + * GNU General Public License version 2. + */ + +use gotham_ext::middleware::post_request::PostResponseInfo; +use hyper::StatusCode; + +pub fn log_ods3( + _info: &PostResponseInfo, + _status: &StatusCode, + _method: String, + _request_load: Option, +) { +}