[pdm-devel] [PATCH proxmox-datacenter-manager 09/25] metric collection: skip if last_collection < MIN_COLLECTION_INTERVAL
Lukas Wagner
l.wagner at proxmox.com
Tue Feb 11 13:05:25 CET 2025
It makes sense to limit the collection frequency per remote, especially
since we will have the ability to trigger collection manually.
Signed-off-by: Lukas Wagner <l.wagner at proxmox.com>
---
server/src/metric_collection/collection_task.rs | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/server/src/metric_collection/collection_task.rs b/server/src/metric_collection/collection_task.rs
index 211b6ee..b4e3207 100644
--- a/server/src/metric_collection/collection_task.rs
+++ b/server/src/metric_collection/collection_task.rs
@@ -15,7 +15,7 @@ use proxmox_sys::fs::CreateOptions;
use pdm_api_types::{
remotes::{Remote, RemoteType},
- CollectionSettings,
+ CollectionSettings, MIN_COLLECTION_INTERVAL,
};
use pdm_config::metric_collection::COLLECTION_SETTINGS_TYPE;
@@ -241,6 +241,7 @@ impl MetricCollectionTask {
self.settings.max_concurrent_connections_or_default(),
));
let mut handles = Vec::new();
+ let now = proxmox_time::epoch_i64();
for remote_name in remotes_to_fetch {
let status = self
@@ -249,6 +250,13 @@ impl MetricCollectionTask {
.cloned()
.unwrap_or_default();
+ if now - status.last_collection.unwrap_or(0) < MIN_COLLECTION_INTERVAL as i64 {
+ log::debug!(
+ "skipping metric collection for remote '{remote_name}' - data is recent enough"
+ );
+ continue;
+ }
+
// unwrap is okay here, acquire_* will only fail if `close` has been
// called on the semaphore.
let permit = semaphore.clone().acquire_owned().await.unwrap();
--
2.39.5
More information about the pdm-devel
mailing list