chiark / gitweb /
make success_report_interval configuraable
[hippotat.git] / src / reporter.rs
index 915d7e7057bf0c18cccec26c00bb9b1bcb94844a..24cd6b82822f44756b3b95aafc725e18a4445251 100644 (file)
@@ -4,6 +4,7 @@
 
 use crate::prelude::*;
 
+// For clients only, really.
 pub struct Reporter<'r> {
   ic: &'r InstanceConfig,
   successes: u64,
@@ -33,14 +34,17 @@ impl<'r> Reporter<'r> {
     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(()) });
   }
 
@@ -49,11 +53,9 @@ impl<'r> Reporter<'r> {
     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 {
@@ -66,7 +68,7 @@ impl<'r> Reporter<'r> {
           write!(m, ": {:?}", e)?;
           Ok::<_,fmt::Error>(m)
         })().unwrap();
-        warn!("{}", m);
+        warn!(target:"hippotat", "{}", m);
         self.last_report = Some(Report { when: now, ok: Err(()) });
         None
       },