Skip to content

Commit bc196aa

Browse files
nnshah1ziqifan617
authored andcommitted
chore: update for error messages (#3549)
1 parent deff5c8 commit bc196aa

File tree

3 files changed

+54
-19
lines changed

3 files changed

+54
-19
lines changed

lib/runtime/src/component/endpoint.rs

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -229,9 +229,9 @@ impl EndpointConfigBuilder {
229229

230230
// client.register_service()
231231
let info = Instance {
232-
component: component_name,
233-
endpoint: endpoint_name,
234-
namespace: namespace_name,
232+
component: component_name.clone(),
233+
endpoint: endpoint_name.clone(),
234+
namespace: namespace_name.clone(),
235235
instance_id: lease_id,
236236
transport: TransportType::NatsTcp(subject),
237237
};
@@ -243,9 +243,16 @@ impl EndpointConfigBuilder {
243243
.kv_create(&etcd_path, info, Some(lease_id))
244244
.await
245245
{
246-
tracing::error!("Failed to register discoverable service: {:?}", e);
246+
tracing::error!(
247+
component_name,
248+
endpoint_name,
249+
error = %e,
250+
"Unable to register service for discovery"
251+
);
247252
cancel_token.cancel();
248-
return Err(error!("Failed to register discoverable service"));
253+
return Err(error!(
254+
"Unable to register service for discovery. Check discovery service status"
255+
));
249256
}
250257
task.await??;
251258

lib/runtime/src/transports/etcd.rs

Lines changed: 28 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,16 +95,29 @@ impl Client {
9595

9696
let ((client, lease_id), rt) = build_in_runtime(
9797
async move {
98-
let client =
99-
etcd_client::Client::connect(config.etcd_url, config.etcd_connect_options)
100-
.await?;
98+
let client = etcd_client::Client::connect(
99+
config.etcd_url.clone(),
100+
config.etcd_connect_options,
101+
)
102+
.await
103+
.with_context(|| {
104+
format!(
105+
"Unable to connect to etcd server at {}. Check etcd server status",
106+
config.etcd_url.join(", ")
107+
)
108+
})?;
101109

102110
let lease_id = if config.attach_lease {
103111
let lease_client = client.lease_client();
104112

105113
let lease = create_lease(lease_client, 10, token)
106114
.await
107-
.context("creating primary lease")?;
115+
.with_context(|| {
116+
format!(
117+
"Unable to create lease. Check etcd server status at {}",
118+
config.etcd_url.join(", ")
119+
)
120+
})?;
108121

109122
lease.id
110123
} else {
@@ -177,9 +190,9 @@ impl Client {
177190
Ok(())
178191
} else {
179192
for resp in result.op_responses() {
180-
tracing::warn!("kv_create etcd op response: {resp:?}");
193+
tracing::warn!(response = ?resp, "kv_create etcd op response");
181194
}
182-
Err(error!("failed to create key"))
195+
Err(error!("Unable to create key. Check etcd server status"))
183196
}
184197
}
185198

@@ -220,11 +233,17 @@ impl Client {
220233
Some(response) => match response {
221234
TxnOpResponse::Txn(response) => match response.succeeded() {
222235
true => Ok(()),
223-
false => Err(error!("failed to create or validate key")),
236+
false => Err(error!(
237+
"Unable to create or validate key. Check etcd server status"
238+
)),
224239
},
225-
_ => Err(error!("unexpected response type")),
240+
_ => Err(error!(
241+
"Unable to validate key operation. Check etcd server status"
242+
)),
226243
},
227-
None => Err(error!("failed to create or validate key")),
244+
None => Err(error!(
245+
"Unable to create or validate key. Check etcd server status"
246+
)),
228247
}
229248
}
230249
}

lib/runtime/src/transports/etcd/lease.rs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,10 @@ pub async fn create_lease(
2020
match keep_alive(lease_client, id, ttl, child).await {
2121
Ok(_) => tracing::trace!("keep alive task exited successfully"),
2222
Err(e) => {
23-
tracing::info!("keep alive task failed: {:?}", e);
23+
tracing::error!(
24+
error = %e,
25+
"Unable to maintain lease. Check etcd server status"
26+
);
2427
token.cancel();
2528
}
2629
}
@@ -61,9 +64,11 @@ pub async fn keep_alive(
6164

6265
loop {
6366
// if the deadline is exceeded, then we have failed to issue a heartbeat in time
64-
// we maybe be permanently disconnected from the etcd server, so we are now officially done
67+
// we may be permanently disconnected from the etcd server, so we are now officially done
6568
if deadline < std::time::Instant::now() {
66-
return Err(error!("failed to issue heartbeat in time"));
69+
return Err(error!(
70+
"Unable to refresh lease - deadline exceeded. Check etcd server status"
71+
));
6772
}
6873

6974
tokio::select! {
@@ -78,7 +83,7 @@ pub async fn keep_alive(
7883
deadline = create_deadline(ttl)?;
7984

8085
if resp.ttl() == 0 {
81-
return Err(error!("lease expired or revoked"));
86+
return Err(error!("Unable to maintain lease - expired or revoked. Check etcd server status"));
8287
}
8388

8489
}
@@ -98,7 +103,11 @@ pub async fn keep_alive(
98103
// immediately try to tick the heartbeat
99104
// this will repeat until either the heartbeat is reestablished or the deadline is exceeded
100105
if let Err(e) = heartbeat_sender.keep_alive().await {
101-
tracing::warn!(lease_id, "keep alive failed: {:?}", e);
106+
tracing::warn!(
107+
lease_id,
108+
error = %e,
109+
"Unable to send lease heartbeat. Check etcd server status"
110+
);
102111
ttl = 0;
103112
}
104113
}

0 commit comments

Comments
 (0)