Add application name metadata to metrics logs
This commit is contained in:
parent
21e4cf042e
commit
4f45d2b96d
|
@ -27,6 +27,9 @@ impl UnixTimestampMilliseconds {
|
||||||
pub struct LogHeader {
|
pub struct LogHeader {
|
||||||
/// String describing the version of this metrics log file.
|
/// String describing the version of this metrics log file.
|
||||||
pub bare_metrics_version: String,
|
pub bare_metrics_version: String,
|
||||||
|
/// Name of the application that emitted this metrics log file.
|
||||||
|
/// Useful for auto-detection of rules for e.g. the GUI.
|
||||||
|
pub application_name: String,
|
||||||
/// Unix timestamp (milliseconds) describing the start of the metrics.
|
/// Unix timestamp (milliseconds) describing the start of the metrics.
|
||||||
pub start_time: UnixTimestampMilliseconds,
|
pub start_time: UnixTimestampMilliseconds,
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,8 @@ use std::time::Duration;
|
||||||
|
|
||||||
pub fn main() -> anyhow::Result<()> {
|
pub fn main() -> anyhow::Result<()> {
|
||||||
let (shard, stopper) =
|
let (shard, stopper) =
|
||||||
BareMetricsRecorderCore::new(File::create("/tmp/counter-example.baremetrics")?).start()?;
|
BareMetricsRecorderCore::new(File::create("/tmp/counter-example.baremetrics")?)
|
||||||
|
.start("counterdemo".to_string())?;
|
||||||
shard.install_as_metrics_recorder()?;
|
shard.install_as_metrics_recorder()?;
|
||||||
register_counter!("my_counter", Unit::BitsPerSecond, "Some counter thing :).");
|
register_counter!("my_counter", Unit::BitsPerSecond, "Some counter thing :).");
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ use std::time::Duration;
|
||||||
pub fn main() -> anyhow::Result<()> {
|
pub fn main() -> anyhow::Result<()> {
|
||||||
let (shard, stopper) =
|
let (shard, stopper) =
|
||||||
BareMetricsRecorderCore::new(File::create("/tmp/histogram-example.baremetrics")?)
|
BareMetricsRecorderCore::new(File::create("/tmp/histogram-example.baremetrics")?)
|
||||||
.start()?;
|
.start("histogramdemo".to_string())?;
|
||||||
shard.install_as_metrics_recorder()?;
|
shard.install_as_metrics_recorder()?;
|
||||||
register_histogram!("my_hist", Unit::BitsPerSecond, "Some thing :).");
|
register_histogram!("my_hist", Unit::BitsPerSecond, "Some thing :).");
|
||||||
|
|
||||||
|
|
|
@ -54,13 +54,16 @@ impl<W: Write + Send + 'static> BareMetricsRecorderCore<W> {
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn start(self) -> anyhow::Result<(BareMetricsRecorderShard, BareMetricsRecorderStopper)> {
|
pub fn start(
|
||||||
|
self,
|
||||||
|
application_name: String,
|
||||||
|
) -> anyhow::Result<(BareMetricsRecorderShard, BareMetricsRecorderStopper)> {
|
||||||
let (tx, rx) = crossbeam_channel::bounded(self.queue_size);
|
let (tx, rx) = crossbeam_channel::bounded(self.queue_size);
|
||||||
|
|
||||||
let handle = std::thread::Builder::new()
|
let handle = std::thread::Builder::new()
|
||||||
.name("bare-metrics-recorder".to_string())
|
.name("bare-metrics-recorder".to_string())
|
||||||
.spawn(move || {
|
.spawn(move || {
|
||||||
if let Err(e) = self.run_forever(rx) {
|
if let Err(e) = self.run_forever(rx, application_name) {
|
||||||
error!("Recorder erred: {:?}", e);
|
error!("Recorder erred: {:?}", e);
|
||||||
}
|
}
|
||||||
})?;
|
})?;
|
||||||
|
@ -97,13 +100,18 @@ impl<W: Write + Send + 'static> BareMetricsRecorderCore<W> {
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
fn run_forever(mut self, rx: Receiver<RecorderMessage>) -> anyhow::Result<()> {
|
fn run_forever(
|
||||||
|
mut self,
|
||||||
|
rx: Receiver<RecorderMessage>,
|
||||||
|
application_name: String,
|
||||||
|
) -> anyhow::Result<()> {
|
||||||
// Write out the header.
|
// Write out the header.
|
||||||
let start = SystemTime::now();
|
let start = SystemTime::now();
|
||||||
serde_bare::to_writer(
|
serde_bare::to_writer(
|
||||||
&mut self.writer,
|
&mut self.writer,
|
||||||
&LogHeader {
|
&LogHeader {
|
||||||
bare_metrics_version: get_supported_version().to_string(),
|
bare_metrics_version: get_supported_version().to_string(),
|
||||||
|
application_name,
|
||||||
start_time: UnixTimestampMilliseconds(
|
start_time: UnixTimestampMilliseconds(
|
||||||
start
|
start
|
||||||
.duration_since(std::time::UNIX_EPOCH)
|
.duration_since(std::time::UNIX_EPOCH)
|
||||||
|
|
Loading…
Reference in New Issue