Skip to content

Commit

Permalink
Add Send + Sync to MetricServiceExporter trait and remove Copy fr…
Browse files Browse the repository at this point in the history
…om generic in `MetricGauge::record` function and the `round` in getter
  • Loading branch information
sfauvel committed Oct 16, 2024
1 parent f3791e2 commit 0746b9d
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 15 deletions.
16 changes: 6 additions & 10 deletions internal/mithril-metric/src/metric.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,19 +86,15 @@ impl MetricGauge {
}

/// Record a value in the gauge.
pub fn record<T: Into<f64> + Copy>(&self, value: T) {
debug!(
self.logger,
"Set '{}' gauge value to {}",
self.name,
value.into()
);
self.gauge.set(value.into());
pub fn record<T: Into<f64>>(&self, value: T) {
let value = value.into();
debug!(self.logger, "Set '{}' gauge value to {}", self.name, value);
self.gauge.set(value);
}

/// Get the gauge value.
pub fn get(&self) -> f64 {
self.gauge.get().round()
self.gauge.get()
}

fn create_metric_gauge(name: &MetricName, help: &str) -> StdResult<Gauge> {
Expand Down Expand Up @@ -142,6 +138,6 @@ mod tests {
assert_eq!(metric.get(), 0.0);

metric.record(12.3);
assert_eq!(metric.get(), 12.0);
assert_eq!(metric.get(), 12.3);
}
}
8 changes: 4 additions & 4 deletions internal/mithril-metric/src/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use mithril_common::logging::LoggerExtensions;
use mithril_common::StdResult;

/// Metrics service exporter gives the possibility of exporting metrics.
pub trait MetricsServiceExporter {
pub trait MetricsServiceExporter: Send + Sync {
/// Export metrics.
fn export_metrics(&self) -> StdResult<String>;
}
Expand All @@ -38,19 +38,19 @@ impl IntoResponse for MetricsServerError {
}

/// The MetricsServer is responsible for exposing the metrics of the signer.
pub struct MetricsServer<T: MetricsServiceExporter + Send + Sync> {
pub struct MetricsServer<T: MetricsServiceExporter> {
server_port: u16,
server_ip: String,
metrics_service: Arc<T>,
logger: Logger,
}

struct RouterState<T: MetricsServiceExporter + Send + Sync> {
struct RouterState<T: MetricsServiceExporter> {
metrics_service: Arc<T>,
logger: Logger,
}

impl<T: MetricsServiceExporter + Send + Sync + 'static> MetricsServer<T> {
impl<T: MetricsServiceExporter + 'static> MetricsServer<T> {
/// Create a new MetricsServer instance.
pub fn new(server_ip: &str, server_port: u16, metrics_service: Arc<T>, logger: Logger) -> Self {
Self {
Expand Down
1 change: 0 additions & 1 deletion mithril-signer/src/metrics/service.rs
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,6 @@ build_metrics_service!(
"mithril_signer_signature_registration_success_last_epoch",
"Latest epoch at which signature successfully registered on a Mithril signer node"
),
// Runtime cycle metrics
runtime_cycle_success_since_startup_counter:MetricCounter(
"mithril_signer_runtime_cycle_success_since_startup",
"Number of successful runtime cycles since startup on a Mithril signer node"
Expand Down

0 comments on commit 0746b9d

Please sign in to comment.