fix #5285: api: sync job: add job summary to task log

Adds a summary to the end of the task log showing the size and number
of chunks pulled as well as the average transfer rate.

Such an entry looks something like:
> Summary: sync job pulled 214.445 MiB in 166 chunks (average rate: 111.012 MiB/s)

Link: https://bugzilla.proxmox.com/show_bug.cgi?id=5285
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Max Carrara <m.carrara@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
Christian Ebner 2024-03-06 15:11:52 +01:00 committed by Thomas Lamprecht
parent 68ac365fea
commit d3852556e0

View File

@ -13,6 +13,7 @@ use pbs_api_types::{
TRANSFER_LAST_SCHEMA,
};
use pbs_config::CachedUserInfo;
use proxmox_human_byte::HumanByte;
use proxmox_rest_server::WorkerTask;
use crate::server::jobstate::Job;
@ -144,7 +145,16 @@ pub fn do_sync_job(
sync_job.remote_store,
);
pull_store(&worker, pull_params).await?;
let pull_stats = pull_store(&worker, pull_params).await?;
task_log!(
worker,
"Summary: sync job pulled {} in {} chunks (average rate: {}/s)",
HumanByte::from(pull_stats.bytes),
pull_stats.chunk_count,
HumanByte::new_binary(
pull_stats.bytes as f64 / pull_stats.elapsed.as_secs_f64()
),
);
task_log!(worker, "sync job '{}' end", &job_id);