log to influx once (#1438)

This commit is contained in:
anatoly yakovenko
2018-10-06 14:37:14 -07:00
committed by GitHub
parent d8d8f0bfc8
commit 9350619afa

View File

@ -72,7 +72,6 @@ impl Counter {
self.lograte.store(lograte, Ordering::Relaxed); self.lograte.store(lograte, Ordering::Relaxed);
} }
if times % lograte == 0 && times > 0 { if times % lograte == 0 && times > 0 {
let lastlog = self.lastlog.load(Ordering::Relaxed);
info!( info!(
"COUNTER:{{\"name\": \"{}\", \"counts\": {}, \"samples\": {}, \"now\": {}, \"events\": {}}}", "COUNTER:{{\"name\": \"{}\", \"counts\": {}, \"samples\": {}, \"now\": {}, \"events\": {}}}",
self.name, self.name,
@ -81,6 +80,12 @@ impl Counter {
timing::timestamp(), timing::timestamp(),
events, events,
); );
let lastlog = self.lastlog.load(Ordering::Relaxed);
let prev = self
.lastlog
.compare_and_swap(lastlog, counts, Ordering::Relaxed);
if prev == lastlog {
metrics::submit( metrics::submit(
influxdb::Point::new(&format!("counter-{}", self.name)) influxdb::Point::new(&format!("counter-{}", self.name))
.add_field( .add_field(
@ -88,8 +93,7 @@ impl Counter {
influxdb::Value::Integer(counts as i64 - lastlog as i64), influxdb::Value::Integer(counts as i64 - lastlog as i64),
).to_owned(), ).to_owned(),
); );
self.lastlog }
.compare_and_swap(lastlog, counts, Ordering::Relaxed);
} }
} }
} }