mirror of
https://github.com/juspay/hyperswitch.git
synced 2025-10-28 20:23:43 +08:00
build(deps): bump opentelemetry crates to 0.27 (#6774)
This commit is contained in:
@ -16,8 +16,6 @@ use external_services::grpc_client::dynamic_routing::SuccessBasedDynamicRouting;
|
||||
use hyperswitch_domain_models::{mandates, payment_address};
|
||||
#[cfg(all(feature = "v1", feature = "dynamic_routing"))]
|
||||
use router_env::logger;
|
||||
#[cfg(feature = "v1")]
|
||||
use router_env::metrics::add_attributes;
|
||||
use rustc_hash::FxHashSet;
|
||||
#[cfg(all(feature = "v1", feature = "dynamic_routing"))]
|
||||
use storage_impl::redis::cache;
|
||||
@ -137,7 +135,7 @@ pub async fn retrieve_merchant_routing_dictionary(
|
||||
query_params: RoutingRetrieveQuery,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<routing_types::RoutingKind> {
|
||||
metrics::ROUTING_MERCHANT_DICTIONARY_RETRIEVE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_MERCHANT_DICTIONARY_RETRIEVE.add(1, &[]);
|
||||
|
||||
let routing_metadata: Vec<diesel_models::routing_algorithm::RoutingProfileMetadata> = state
|
||||
.store
|
||||
@ -157,7 +155,7 @@ pub async fn retrieve_merchant_routing_dictionary(
|
||||
.map(ForeignInto::foreign_into)
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
metrics::ROUTING_MERCHANT_DICTIONARY_RETRIEVE_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_MERCHANT_DICTIONARY_RETRIEVE_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(
|
||||
routing_types::RoutingKind::RoutingAlgorithm(result),
|
||||
))
|
||||
@ -172,7 +170,7 @@ pub async fn create_routing_algorithm_under_profile(
|
||||
request: routing_types::RoutingConfigRequest,
|
||||
transaction_type: enums::TransactionType,
|
||||
) -> RouterResponse<routing_types::RoutingDictionaryRecord> {
|
||||
metrics::ROUTING_CREATE_REQUEST_RECEIVED.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_CREATE_REQUEST_RECEIVED.add(1, &[]);
|
||||
let db = &*state.store;
|
||||
let key_manager_state = &(&state).into();
|
||||
|
||||
@ -229,7 +227,7 @@ pub async fn create_routing_algorithm_under_profile(
|
||||
|
||||
let new_record = record.foreign_into();
|
||||
|
||||
metrics::ROUTING_CREATE_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_CREATE_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(new_record))
|
||||
}
|
||||
|
||||
@ -242,7 +240,7 @@ pub async fn create_routing_algorithm_under_profile(
|
||||
request: routing_types::RoutingConfigRequest,
|
||||
transaction_type: enums::TransactionType,
|
||||
) -> RouterResponse<routing_types::RoutingDictionaryRecord> {
|
||||
metrics::ROUTING_CREATE_REQUEST_RECEIVED.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_CREATE_REQUEST_RECEIVED.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
|
||||
@ -319,7 +317,7 @@ pub async fn create_routing_algorithm_under_profile(
|
||||
|
||||
let new_record = record.foreign_into();
|
||||
|
||||
metrics::ROUTING_CREATE_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_CREATE_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(new_record))
|
||||
}
|
||||
|
||||
@ -332,7 +330,7 @@ pub async fn link_routing_config_under_profile(
|
||||
algorithm_id: common_utils::id_type::RoutingId,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<routing_types::RoutingDictionaryRecord> {
|
||||
metrics::ROUTING_LINK_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_LINK_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
|
||||
@ -387,7 +385,7 @@ pub async fn link_routing_config_under_profile(
|
||||
)
|
||||
.await?;
|
||||
|
||||
metrics::ROUTING_LINK_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_LINK_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(
|
||||
routing_algorithm.0.foreign_into(),
|
||||
))
|
||||
@ -402,7 +400,7 @@ pub async fn link_routing_config(
|
||||
algorithm_id: common_utils::id_type::RoutingId,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<routing_types::RoutingDictionaryRecord> {
|
||||
metrics::ROUTING_LINK_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_LINK_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
|
||||
@ -539,7 +537,7 @@ pub async fn link_routing_config(
|
||||
}
|
||||
};
|
||||
|
||||
metrics::ROUTING_LINK_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_LINK_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(
|
||||
routing_algorithm.foreign_into(),
|
||||
))
|
||||
@ -553,7 +551,7 @@ pub async fn retrieve_routing_algorithm_from_algorithm_id(
|
||||
authentication_profile_id: Option<common_utils::id_type::ProfileId>,
|
||||
algorithm_id: common_utils::id_type::RoutingId,
|
||||
) -> RouterResponse<routing_types::MerchantRoutingAlgorithm> {
|
||||
metrics::ROUTING_RETRIEVE_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
|
||||
@ -577,7 +575,7 @@ pub async fn retrieve_routing_algorithm_from_algorithm_id(
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable("unable to parse routing algorithm")?;
|
||||
|
||||
metrics::ROUTING_RETRIEVE_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(response))
|
||||
}
|
||||
|
||||
@ -589,7 +587,7 @@ pub async fn retrieve_routing_algorithm_from_algorithm_id(
|
||||
authentication_profile_id: Option<common_utils::id_type::ProfileId>,
|
||||
algorithm_id: common_utils::id_type::RoutingId,
|
||||
) -> RouterResponse<routing_types::MerchantRoutingAlgorithm> {
|
||||
metrics::ROUTING_RETRIEVE_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
|
||||
@ -618,7 +616,7 @@ pub async fn retrieve_routing_algorithm_from_algorithm_id(
|
||||
.change_context(errors::ApiErrorResponse::InternalServerError)
|
||||
.attach_printable("unable to parse routing algorithm")?;
|
||||
|
||||
metrics::ROUTING_RETRIEVE_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(response))
|
||||
}
|
||||
|
||||
@ -630,7 +628,7 @@ pub async fn unlink_routing_config_under_profile(
|
||||
profile_id: common_utils::id_type::ProfileId,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<routing_types::RoutingDictionaryRecord> {
|
||||
metrics::ROUTING_UNLINK_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_UNLINK_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
|
||||
@ -667,7 +665,7 @@ pub async fn unlink_routing_config_under_profile(
|
||||
transaction_type,
|
||||
)
|
||||
.await?;
|
||||
metrics::ROUTING_UNLINK_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_UNLINK_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(response))
|
||||
} else {
|
||||
Err(errors::ApiErrorResponse::PreconditionFailed {
|
||||
@ -685,7 +683,7 @@ pub async fn unlink_routing_config(
|
||||
authentication_profile_id: Option<common_utils::id_type::ProfileId>,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<routing_types::RoutingDictionaryRecord> {
|
||||
metrics::ROUTING_UNLINK_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_UNLINK_CONFIG.add(1, &[]);
|
||||
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
@ -754,7 +752,7 @@ pub async fn unlink_routing_config(
|
||||
)
|
||||
.await?;
|
||||
|
||||
metrics::ROUTING_UNLINK_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_UNLINK_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(response))
|
||||
}
|
||||
None => Err(errors::ApiErrorResponse::PreconditionFailed {
|
||||
@ -777,7 +775,7 @@ pub async fn update_default_fallback_routing(
|
||||
profile_id: common_utils::id_type::ProfileId,
|
||||
updated_list_of_connectors: Vec<routing_types::RoutableConnectorChoice>,
|
||||
) -> RouterResponse<Vec<routing_types::RoutableConnectorChoice>> {
|
||||
metrics::ROUTING_UPDATE_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_UPDATE_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
let profile = core_utils::validate_and_get_business_profile(
|
||||
@ -839,7 +837,7 @@ pub async fn update_default_fallback_routing(
|
||||
)
|
||||
.await?;
|
||||
|
||||
metrics::ROUTING_UPDATE_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_UPDATE_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(
|
||||
updated_list_of_connectors,
|
||||
))
|
||||
@ -852,7 +850,7 @@ pub async fn update_default_routing_config(
|
||||
updated_config: Vec<routing_types::RoutableConnectorChoice>,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<Vec<routing_types::RoutableConnectorChoice>> {
|
||||
metrics::ROUTING_UPDATE_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_UPDATE_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let default_config = helpers::get_merchant_default_config(
|
||||
db,
|
||||
@ -894,7 +892,7 @@ pub async fn update_default_routing_config(
|
||||
)
|
||||
.await?;
|
||||
|
||||
metrics::ROUTING_UPDATE_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_UPDATE_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(updated_config))
|
||||
}
|
||||
|
||||
@ -905,7 +903,7 @@ pub async fn retrieve_default_fallback_algorithm_for_profile(
|
||||
key_store: domain::MerchantKeyStore,
|
||||
profile_id: common_utils::id_type::ProfileId,
|
||||
) -> RouterResponse<Vec<routing_types::RoutableConnectorChoice>> {
|
||||
metrics::ROUTING_RETRIEVE_DEFAULT_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_DEFAULT_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
let profile = core_utils::validate_and_get_business_profile(
|
||||
@ -921,7 +919,7 @@ pub async fn retrieve_default_fallback_algorithm_for_profile(
|
||||
let connectors_choice = admin::ProfileWrapper::new(profile)
|
||||
.get_default_fallback_list_of_connector_under_profile()?;
|
||||
|
||||
metrics::ROUTING_RETRIEVE_DEFAULT_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_DEFAULT_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(connectors_choice))
|
||||
}
|
||||
|
||||
@ -932,7 +930,7 @@ pub async fn retrieve_default_routing_config(
|
||||
merchant_account: domain::MerchantAccount,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<Vec<routing_types::RoutableConnectorChoice>> {
|
||||
metrics::ROUTING_RETRIEVE_DEFAULT_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_DEFAULT_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let id = profile_id
|
||||
.map(|profile_id| profile_id.get_string_repr().to_owned())
|
||||
@ -941,11 +939,7 @@ pub async fn retrieve_default_routing_config(
|
||||
helpers::get_merchant_default_config(db, &id, transaction_type)
|
||||
.await
|
||||
.map(|conn_choice| {
|
||||
metrics::ROUTING_RETRIEVE_DEFAULT_CONFIG_SUCCESS_RESPONSE.add(
|
||||
&metrics::CONTEXT,
|
||||
1,
|
||||
&[],
|
||||
);
|
||||
metrics::ROUTING_RETRIEVE_DEFAULT_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
service_api::ApplicationResponse::Json(conn_choice)
|
||||
})
|
||||
}
|
||||
@ -959,7 +953,7 @@ pub async fn retrieve_routing_config_under_profile(
|
||||
profile_id: common_utils::id_type::ProfileId,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<routing_types::LinkedRoutingConfigRetrieveResponse> {
|
||||
metrics::ROUTING_RETRIEVE_LINK_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_LINK_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
|
||||
@ -988,7 +982,7 @@ pub async fn retrieve_routing_config_under_profile(
|
||||
.map(|routing_algo| routing_algo.foreign_into())
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
metrics::ROUTING_RETRIEVE_LINK_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_LINK_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(
|
||||
routing_types::LinkedRoutingConfigRetrieveResponse::ProfileBased(active_algorithms),
|
||||
))
|
||||
@ -1003,7 +997,7 @@ pub async fn retrieve_linked_routing_config(
|
||||
query_params: routing_types::RoutingRetrieveLinkQuery,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<routing_types::LinkedRoutingConfigRetrieveResponse> {
|
||||
metrics::ROUTING_RETRIEVE_LINK_CONFIG.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_LINK_CONFIG.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
|
||||
@ -1062,7 +1056,7 @@ pub async fn retrieve_linked_routing_config(
|
||||
}
|
||||
}
|
||||
|
||||
metrics::ROUTING_RETRIEVE_LINK_CONFIG_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_LINK_CONFIG_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(
|
||||
routing_types::LinkedRoutingConfigRetrieveResponse::ProfileBased(active_algorithms),
|
||||
))
|
||||
@ -1074,7 +1068,7 @@ pub async fn retrieve_default_routing_config_for_profiles(
|
||||
key_store: domain::MerchantKeyStore,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<Vec<routing_types::ProfileDefaultRoutingConfig>> {
|
||||
metrics::ROUTING_RETRIEVE_CONFIG_FOR_PROFILE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_CONFIG_FOR_PROFILE.add(1, &[]);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
|
||||
@ -1111,7 +1105,7 @@ pub async fn retrieve_default_routing_config_for_profiles(
|
||||
)
|
||||
.collect::<Vec<_>>();
|
||||
|
||||
metrics::ROUTING_RETRIEVE_CONFIG_FOR_PROFILE_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_RETRIEVE_CONFIG_FOR_PROFILE_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(default_configs))
|
||||
}
|
||||
|
||||
@ -1123,7 +1117,7 @@ pub async fn update_default_routing_config_for_profile(
|
||||
profile_id: common_utils::id_type::ProfileId,
|
||||
transaction_type: &enums::TransactionType,
|
||||
) -> RouterResponse<routing_types::ProfileDefaultRoutingConfig> {
|
||||
metrics::ROUTING_UPDATE_CONFIG_FOR_PROFILE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_UPDATE_CONFIG_FOR_PROFILE.add(1, &[]);
|
||||
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
@ -1190,7 +1184,7 @@ pub async fn update_default_routing_config_for_profile(
|
||||
)
|
||||
.await?;
|
||||
|
||||
metrics::ROUTING_UPDATE_CONFIG_FOR_PROFILE_SUCCESS_RESPONSE.add(&metrics::CONTEXT, 1, &[]);
|
||||
metrics::ROUTING_UPDATE_CONFIG_FOR_PROFILE_SUCCESS_RESPONSE.add(1, &[]);
|
||||
Ok(service_api::ApplicationResponse::Json(
|
||||
routing_types::ProfileDefaultRoutingConfig {
|
||||
profile_id: business_profile.get_id().to_owned(),
|
||||
@ -1211,9 +1205,8 @@ pub async fn toggle_specific_dynamic_routing(
|
||||
dynamic_routing_type: routing::DynamicRoutingType,
|
||||
) -> RouterResponse<routing_types::RoutingDictionaryRecord> {
|
||||
metrics::ROUTING_CREATE_REQUEST_RECEIVED.add(
|
||||
&metrics::CONTEXT,
|
||||
1,
|
||||
&add_attributes([("profile_id", profile_id.get_string_repr().to_owned())]),
|
||||
router_env::metric_attributes!(("profile_id", profile_id.clone())),
|
||||
);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
@ -1282,9 +1275,8 @@ pub async fn configure_dynamic_routing_volume_split(
|
||||
routing_info: routing::RoutingVolumeSplit,
|
||||
) -> RouterResponse<()> {
|
||||
metrics::ROUTING_CREATE_REQUEST_RECEIVED.add(
|
||||
&metrics::CONTEXT,
|
||||
1,
|
||||
&add_attributes([("profile_id", profile_id.get_string_repr().to_owned())]),
|
||||
router_env::metric_attributes!(("profile_id", profile_id.clone())),
|
||||
);
|
||||
let db = state.store.as_ref();
|
||||
let key_manager_state = &(&state).into();
|
||||
@ -1344,9 +1336,8 @@ pub async fn success_based_routing_update_configs(
|
||||
profile_id: common_utils::id_type::ProfileId,
|
||||
) -> RouterResponse<routing_types::RoutingDictionaryRecord> {
|
||||
metrics::ROUTING_UPDATE_CONFIG_FOR_PROFILE.add(
|
||||
&metrics::CONTEXT,
|
||||
1,
|
||||
&add_attributes([("profile_id", profile_id.get_string_repr().to_owned())]),
|
||||
router_env::metric_attributes!(("profile_id", profile_id.clone())),
|
||||
);
|
||||
let db = state.store.as_ref();
|
||||
|
||||
@ -1402,9 +1393,8 @@ pub async fn success_based_routing_update_configs(
|
||||
let new_record = record.foreign_into();
|
||||
|
||||
metrics::ROUTING_UPDATE_CONFIG_FOR_PROFILE_SUCCESS_RESPONSE.add(
|
||||
&metrics::CONTEXT,
|
||||
1,
|
||||
&add_attributes([("profile_id", profile_id.get_string_repr().to_owned())]),
|
||||
router_env::metric_attributes!(("profile_id", profile_id.clone())),
|
||||
);
|
||||
|
||||
let prefix_of_dynamic_routing_keys = helpers::generate_tenant_business_profile_id(
|
||||
|
||||
Reference in New Issue
Block a user