fix: log detailed error reports during deep health check failures (#5984)

This commit is contained in:
Sanchith Hegde
2024-09-23 17:10:32 +05:30
committed by GitHub
parent f5e61659d1
commit 19e52b4200
4 changed files with 63 additions and 47 deletions

View File

@ -503,7 +503,7 @@ database_name = "default"
[analytics.sqlx] [analytics.sqlx]
username = "db_user" username = "db_user"
password = "db_pass" password = "db_pass"
host = "localhost" host = "pg"
port = 5432 port = 5432
dbname = "hyperswitch_db" dbname = "hyperswitch_db"
pool_size = 5 pool_size = 5

View File

@ -72,11 +72,14 @@ pub async fn deep_health_check_func(
logger::debug!("Database health check begin"); logger::debug!("Database health check begin");
let db_status = store.health_check_db().await.map(|_| true).map_err(|err| { let db_status = store
error_stack::report!(HealthCheckError::DbError { .health_check_db()
message: err.to_string() .await
}) .map(|_| true)
})?; .map_err(|error| {
let message = error.to_string();
error.change_context(HealthCheckError::DbError { message })
})?;
logger::debug!("Database health check end"); logger::debug!("Database health check end");
@ -86,10 +89,9 @@ pub async fn deep_health_check_func(
.health_check_redis(&conf.into_inner()) .health_check_redis(&conf.into_inner())
.await .await
.map(|_| true) .map(|_| true)
.map_err(|err| { .map_err(|error| {
error_stack::report!(HealthCheckError::RedisError { let message = error.to_string();
message: err.to_string() error.change_context(HealthCheckError::RedisError { message })
})
})?; })?;
logger::debug!("Redis health check end"); logger::debug!("Redis health check end");

View File

@ -204,12 +204,17 @@ pub async fn deep_health_check_func(
logger::debug!("Database health check begin"); logger::debug!("Database health check begin");
let db_status = state.health_check_db().await.map(|_| true).map_err(|err| { let db_status = state
error_stack::report!(errors::ApiErrorResponse::HealthCheckError { .health_check_db()
component: "Database", .await
message: err.to_string() .map(|_| true)
}) .map_err(|error| {
})?; let message = error.to_string();
error.change_context(errors::ApiErrorResponse::HealthCheckError {
component: "Database",
message,
})
})?;
logger::debug!("Database health check end"); logger::debug!("Database health check end");
@ -219,23 +224,26 @@ pub async fn deep_health_check_func(
.health_check_redis() .health_check_redis()
.await .await
.map(|_| true) .map(|_| true)
.map_err(|err| { .map_err(|error| {
error_stack::report!(errors::ApiErrorResponse::HealthCheckError { let message = error.to_string();
error.change_context(errors::ApiErrorResponse::HealthCheckError {
component: "Redis", component: "Redis",
message: err.to_string() message,
}) })
})?; })?;
let outgoing_req_check = state let outgoing_req_check =
.health_check_outgoing() state
.await .health_check_outgoing()
.map(|_| true) .await
.map_err(|err| { .map(|_| true)
error_stack::report!(errors::ApiErrorResponse::HealthCheckError { .map_err(|error| {
component: "Outgoing Request", let message = error.to_string();
message: err.to_string() error.change_context(errors::ApiErrorResponse::HealthCheckError {
}) component: "Outgoing Request",
})?; message,
})
})?;
logger::debug!("Redis health check end"); logger::debug!("Redis health check end");

View File

@ -48,10 +48,11 @@ async fn deep_health_check_func(
logger::debug!("Database health check begin"); logger::debug!("Database health check begin");
let db_status = state.health_check_db().await.map_err(|err| { let db_status = state.health_check_db().await.map_err(|error| {
error_stack::report!(errors::ApiErrorResponse::HealthCheckError { let message = error.to_string();
error.change_context(errors::ApiErrorResponse::HealthCheckError {
component: "Database", component: "Database",
message: err.to_string() message,
}) })
})?; })?;
@ -59,10 +60,11 @@ async fn deep_health_check_func(
logger::debug!("Redis health check begin"); logger::debug!("Redis health check begin");
let redis_status = state.health_check_redis().await.map_err(|err| { let redis_status = state.health_check_redis().await.map_err(|error| {
error_stack::report!(errors::ApiErrorResponse::HealthCheckError { let message = error.to_string();
error.change_context(errors::ApiErrorResponse::HealthCheckError {
component: "Redis", component: "Redis",
message: err.to_string() message,
}) })
})?; })?;
@ -70,10 +72,11 @@ async fn deep_health_check_func(
logger::debug!("Locker health check begin"); logger::debug!("Locker health check begin");
let locker_status = state.health_check_locker().await.map_err(|err| { let locker_status = state.health_check_locker().await.map_err(|error| {
error_stack::report!(errors::ApiErrorResponse::HealthCheckError { let message = error.to_string();
error.change_context(errors::ApiErrorResponse::HealthCheckError {
component: "Locker", component: "Locker",
message: err.to_string() message,
}) })
})?; })?;
@ -82,10 +85,11 @@ async fn deep_health_check_func(
logger::debug!("Analytics health check begin"); logger::debug!("Analytics health check begin");
#[cfg(feature = "olap")] #[cfg(feature = "olap")]
let analytics_status = state.health_check_analytics().await.map_err(|err| { let analytics_status = state.health_check_analytics().await.map_err(|error| {
error_stack::report!(errors::ApiErrorResponse::HealthCheckError { let message = error.to_string();
error.change_context(errors::ApiErrorResponse::HealthCheckError {
component: "Analytics", component: "Analytics",
message: err.to_string() message,
}) })
})?; })?;
@ -94,10 +98,11 @@ async fn deep_health_check_func(
logger::debug!("Opensearch health check begin"); logger::debug!("Opensearch health check begin");
#[cfg(feature = "olap")] #[cfg(feature = "olap")]
let opensearch_status = state.health_check_opensearch().await.map_err(|err| { let opensearch_status = state.health_check_opensearch().await.map_err(|error| {
error_stack::report!(errors::ApiErrorResponse::HealthCheckError { let message = error.to_string();
error.change_context(errors::ApiErrorResponse::HealthCheckError {
component: "Opensearch", component: "Opensearch",
message: err.to_string() message,
}) })
})?; })?;
@ -105,10 +110,11 @@ async fn deep_health_check_func(
logger::debug!("Outgoing Request health check begin"); logger::debug!("Outgoing Request health check begin");
let outgoing_check = state.health_check_outgoing().await.map_err(|err| { let outgoing_check = state.health_check_outgoing().await.map_err(|error| {
error_stack::report!(errors::ApiErrorResponse::HealthCheckError { let message = error.to_string();
error.change_context(errors::ApiErrorResponse::HealthCheckError {
component: "Outgoing Request", component: "Outgoing Request",
message: err.to_string() message,
}) })
})?; })?;