cloudwatch_metrics_agent 0.1.8

An agent for sending custom CPU and memory metrics to Cloudwatch
Documentation
use crate::metrics::Measurement;

use async_trait::async_trait;
use log::info;

/// Generic trait
#[async_trait]
pub trait MetricPublisher {
    async fn send(&mut self, measurement: Measurement) -> Result<(), Box<dyn std::error::Error>>;
}

/// Sink implementation that just logs metrics
pub struct ConsolePublisher {}

#[async_trait]
impl MetricPublisher for ConsolePublisher {
    async fn send(&mut self, measurement: Measurement) -> Result<(), Box<dyn std::error::Error>> {
        info!("Sending measurement to console {:?}", measurement);
        Ok(())
    }
}