Metrics v0.1

This commit is contained in:
Michael Vines
2018-07-05 21:40:09 -07:00
parent 3ed9567f96
commit 22c0e3cd54
5 changed files with 369 additions and 4 deletions

View File

@@ -4,6 +4,8 @@
//! checking requests against a request cap for a given time time_slice
//! and (to come) an IP rate limit.
use influx_db_client as influxdb;
use metrics;
use signature::{KeyPair, PublicKey};
use std::io;
use std::io::{Error, ErrorKind};
@@ -121,6 +123,19 @@ impl Drone {
}
if self.check_request_limit(request_amount) {
self.request_current += request_amount;
metrics::submit(
influxdb::Point::new("drone")
.add_tag("op", influxdb::Value::String("airdrop".to_string()))
.add_field(
"request_amount",
influxdb::Value::Integer(request_amount as i64),
)
.add_field(
"request_current",
influxdb::Value::Integer(self.request_current as i64),
)
.to_owned(),
);
client.transfer_signed(tx)
} else {
Err(Error::new(ErrorKind::Other, "token limit reached"))
@@ -128,6 +143,12 @@ impl Drone {
}
}
impl Drop for Drone {
fn drop(&mut self) {
metrics::flush();
}
}
#[cfg(test)]
mod tests {
use bank::Bank;