Skip to content

Commit 3293c9f

Browse files
authored
Merge pull request #39 from Virtual-Repetitions/health-check
make health query optional
2 parents 2cb642a + 85081f0 commit 3293c9f

1 file changed

Lines changed: 27 additions & 12 deletions

File tree

crates/server-actix/src/lib.rs

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -132,30 +132,45 @@ async fn handle_healthz(
132132
env: &dyn Environment,
133133
graphql_http_path: &str,
134134
) -> HttpResponse {
135-
let query = env
135+
let default_query = "{ __typename }".to_string();
136+
let mut query = env
136137
.get(EXO_HEALTHZ_QUERY)
137-
.unwrap_or_else(|| "{ __typename }".to_string());
138+
.unwrap_or_else(|| default_query.clone());
139+
let mut response_pointer = env.get(EXO_HEALTHZ_RESPONSE_JSON_POINTER);
138140
let variables = match env.get(EXO_HEALTHZ_VARIABLES) {
139141
Some(raw) => match expand_env_placeholders(&raw, env) {
140142
Ok(expanded) => match serde_json::from_str::<Value>(&expanded) {
141143
Ok(value) => Some(value),
142144
Err(err) => {
143-
return HttpResponse::ServiceUnavailable().json(json!({
144-
"status": "error",
145-
"message": format!("Invalid {} JSON: {}", EXO_HEALTHZ_VARIABLES, err),
146-
}));
145+
tracing::warn!(
146+
"Invalid {} JSON; falling back to default health check: {}",
147+
EXO_HEALTHZ_VARIABLES,
148+
err
149+
);
150+
query = default_query;
151+
response_pointer = None;
152+
None
147153
}
148154
},
149155
Err(err) => {
150-
return HttpResponse::ServiceUnavailable().json(json!({
151-
"status": "error",
152-
"message": err,
153-
}));
156+
tracing::warn!("{}; falling back to default health check", err);
157+
query = default_query;
158+
response_pointer = None;
159+
None
154160
}
155161
},
156-
None => None,
162+
None => {
163+
if env.get(EXO_HEALTHZ_QUERY).is_some() {
164+
tracing::warn!(
165+
"{} not set; falling back to default health check",
166+
EXO_HEALTHZ_VARIABLES
167+
);
168+
query = default_query;
169+
response_pointer = None;
170+
}
171+
None
172+
}
157173
};
158-
let response_pointer = env.get(EXO_HEALTHZ_RESPONSE_JSON_POINTER);
159174

160175
match execute_graphql_health_check(
161176
system_router,

0 commit comments

Comments
 (0)