use crate::prelude::*;
+// For clients only, really.
pub struct Reporter<'r> {
ic: &'r InstanceConfig,
successes: u64,
let now = Instant::now();
if let Some(rep) = &self.last_report {
if now - rep.when < match rep.ok {
- Ok(()) => Duration::from_secs(3600),
- Err(()) => Duration::from_secs(30),
+ Ok(()) => match self.ic.success_report_interval {
+ z if z == Duration::default() => return,
+ nonzero => nonzero,
+ },
+ Err(()) => self.ic.effective_http_timeout,
} {
return
}
}
- info!("{} ({}ok): running", self.ic, self.successes);
+ info!(target:"hippotat", "{} ({}ok): running", self.ic, self.successes);
self.last_report = Some(Report { when: now, ok: Ok(()) });
}
let now = Instant::now();
match r {
Ok(t) => {
- // xxx something something success
Some(t)
},
Err(e) => {
- // xxx something something error
let m = (||{
let mut m = self.ic.to_string();
if let Some(req_num) = req_num {
write!(m, ": {:?}", e)?;
Ok::<_,fmt::Error>(m)
})().unwrap();
- warn!("{}", m);
+ warn!(target:"hippotat", "{}", m);
self.last_report = Some(Report { when: now, ok: Err(()) });
None
},