From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id E39501FF2A0 for ; Mon, 15 Jul 2024 12:16:26 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 6796537E0F; Mon, 15 Jul 2024 12:16:54 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Mon, 15 Jul 2024 12:15:49 +0200 Message-Id: <20240715101602.274244-12-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240715101602.274244-1-c.ebner@proxmox.com> References: <20240715101602.274244-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.021 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pbs-devel] [RFC proxmox-backup 11/24] client: backup writer: add chunk count and duration stats X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" In addition to size and checksum, return also the chunk count and duration to the upload stats in order to show this information in the task log of sync jobs in push direction. Signed-off-by: Christian Ebner --- pbs-client/src/backup_writer.rs | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/pbs-client/src/backup_writer.rs b/pbs-client/src/backup_writer.rs index 6daad9fde..e36c43569 100644 --- a/pbs-client/src/backup_writer.rs +++ b/pbs-client/src/backup_writer.rs @@ -3,6 +3,7 @@ use std::future::Future; use std::os::unix::fs::OpenOptionsExt; use std::sync::atomic::{AtomicU64, AtomicUsize, Ordering}; use std::sync::{Arc, Mutex}; +use std::time::{Duration, Instant}; use anyhow::{bail, format_err, Error}; use futures::future::{self, AbortHandle, Either, FutureExt, TryFutureExt}; @@ -44,6 +45,8 @@ impl Drop for BackupWriter { pub struct BackupStats { pub size: u64, pub csum: [u8; 32], + pub duration: Duration, + pub chunk_count: u64, } /// Options for uploading blobs/streams to the server @@ -63,7 +66,7 @@ struct UploadStats { size_reused: usize, size_injected: usize, size_compressed: usize, - duration: std::time::Duration, + duration: Duration, csum: [u8; 32], } @@ -200,6 +203,7 @@ impl BackupWriter { mut reader: R, file_name: &str, ) -> Result { + let start_time = Instant::now(); let mut raw_data = Vec::new(); // fixme: avoid loading into memory reader.read_to_end(&mut raw_data)?; @@ -217,7 +221,12 @@ impl BackupWriter { raw_data, ) .await?; - Ok(BackupStats { size, csum }) + Ok(BackupStats { + size, + csum, + duration: start_time.elapsed(), + chunk_count: 0, + }) } pub async fn upload_blob_from_data( @@ -226,6 +235,7 @@ impl BackupWriter { file_name: &str, options: UploadOptions, ) -> Result { + let start_time = Instant::now(); let blob = match (options.encrypt, &self.crypt_config) { (false, _) => DataBlob::encode(&data, None, options.compress)?, (true, None) => bail!("requested encryption without a crypt config"), @@ -249,7 +259,12 @@ impl BackupWriter { raw_data, ) .await?; - Ok(BackupStats { size, csum }) + Ok(BackupStats { + size, + csum, + duration: start_time.elapsed(), + chunk_count: 0, + }) } pub async fn upload_blob_from_file>( @@ -428,6 +443,8 @@ impl BackupWriter { Ok(BackupStats { size: upload_stats.size as u64, csum: upload_stats.csum, + duration: upload_stats.duration, + chunk_count: upload_stats.chunk_count as u64, }) } -- 2.39.2 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel