diff --git a/eden/mononoke/scs_server/TARGETS b/eden/mononoke/scs_server/TARGETS index 00282e526f0c2..3a350956aacf4 100644 --- a/eden/mononoke/scs_server/TARGETS +++ b/eden/mononoke/scs_server/TARGETS @@ -65,6 +65,7 @@ rust_binary( "//eden/mononoke/megarepo_api:megarepo_error", "//eden/mononoke/metaconfig:metaconfig_types", "//eden/mononoke/mononoke_api:mononoke_api", + "//eden/mononoke/mononoke_configs:mononoke_configs", "//eden/mononoke/mononoke_types:mononoke_types", "//eden/mononoke/permission_checker:permission_checker", "//eden/mononoke/phases:phases", diff --git a/eden/mononoke/scs_server/src/main.rs b/eden/mononoke/scs_server/src/main.rs index c3d907021d57b..08bd991d39fda 100644 --- a/eden/mononoke/scs_server/src/main.rs +++ b/eden/mononoke/scs_server/src/main.rs @@ -240,6 +240,7 @@ fn main(fb: FacebookInit) -> Result<(), Error> { scuba_builder, args.scribe_logging_args.get_scribe(fb)?, security_checker, + app.configs(), &app.repo_configs().common, ); let service = { diff --git a/eden/mononoke/scs_server/src/source_control_impl.rs b/eden/mononoke/scs_server/src/source_control_impl.rs index 02e322bff5cdb..77f4dd9a6e5b9 100644 --- a/eden/mononoke/scs_server/src/source_control_impl.rs +++ b/eden/mononoke/scs_server/src/source_control_impl.rs @@ -41,6 +41,7 @@ use mononoke_api::RepoContext; use mononoke_api::SessionContainer; use mononoke_api::TreeContext; use mononoke_api::TreeId; +use mononoke_configs::MononokeConfigs; use mononoke_types::hash::Sha1; use mononoke_types::hash::Sha256; use once_cell::sync::Lazy; @@ -102,6 +103,7 @@ pub(crate) struct SourceControlServiceImpl { pub(crate) scuba_builder: MononokeScubaSampleBuilder, pub(crate) identity: Identity, pub(crate) scribe: Scribe, + pub(crate) configs: Arc, identity_proxy_checker: Arc, } @@ -116,6 +118,7 @@ impl SourceControlServiceImpl { mut scuba_builder: MononokeScubaSampleBuilder, scribe: Scribe, identity_proxy_checker: ConnectionSecurityChecker, + configs: Arc, common_config: &CommonConfig, ) -> Self { scuba_builder.add_common_server_data(); @@ -131,6 +134,7 @@ impl SourceControlServiceImpl { common_config.internal_identity.id_data.as_str(), ), scribe, + configs, identity_proxy_checker: Arc::new(identity_proxy_checker), } } @@ -182,6 +186,11 @@ impl SourceControlServiceImpl { } } + if let Some(config_info) = self.configs.as_ref().config_info().as_ref() { + scuba.add("config_store_version", config_info.content_hash.clone()); + scuba.add("config_store_last_updated_at", config_info.last_updated_at); + } + let sampling_rate = core::num::NonZeroU64::new(if POPULAR_METHODS.contains(name) { const FALLBACK_SAMPLING_RATE: u64 = 1000; justknobs::get_as::("scm/mononoke:scs_popular_methods_sampling_rate", None)