tools/cephfs_mirror: Add crawl-state and sync-mode metric
The 'crawl' and 'sync-mode' metric is added.
sync-mode: full/delta,
"crawl": {
"state": "completed",
"duration": "37s"
}
sync-mode:
---------
The 'sync-mode: full/delta' is added to peer status.
The 'delta' means, blockdiff along with snapdiff is
being used to sync the files where as 'full' means
full directory is crawled and each file is synced
entirely.
crawl:
-----
The state can be in-progress/completed. This
identifies whether the crawler thread is done
queuing the files for data sync threads.
The time taken for the duration is also shown.
If the crawl is in-progress, the duration
would show the time taken till then from the
start of the crawl. If the crawl state is
completed, then duration indicates total
time taken for the crawl.
The crawl duration is shown in "d h m s" format.
The existing 'sync_duration' in last_synced_snap
is also formatted
The values are as below. When crawl state is
completed, the 'total_files' metric doesn't
grow anymore.
crawl_duration:
--------------
The crawl_duration of last snapshot is saved in last_synced_snap
section as well.
Sample outputs:
---------------
{
"/d0": {
"state": "syncing",
"current_syncing_snap": {
"id": 2,
"name": "d0_snap0",
"sync-mode": "full",
"crawl": {
"state": "in-progress",
"duration": "21s"
},
"bytes": {
"sync_bytes": "149.25 MiB",
"total_bytes": "176.47 MiB",
"sync_percent": "84.57%"
},
"files": {
"sync_files": 4931,
"total_files": 5845,
"sync_percent": "84.36%"
}
},
"snaps_synced": 0,
"snaps_deleted": 0,
"snaps_renamed": 0
}
}
------------------------------------------
{
"/d0": {
"state": "syncing",
"current_syncing_snap": {
"id": 2,
"name": "d0_snap0",
"sync-mode": "full",
"crawl": {
"state": "completed",
"duration": "37s"
},
"bytes": {
"sync_bytes": "891.39 MiB",
"total_bytes": "901.52 MiB",
"sync_percent": "98.88%"
},
"files": {
"sync_files": 29656,
"total_files": 30000,
"sync_percent": "98.85%"
}
},
"snaps_synced": 0,
"snaps_deleted": 0,
"snaps_renamed": 0
}
}
---------
{
"/d0": {
"state": "syncing",
"current_syncing_snap": {
"id": 3,
"name": "d0_snap1",
"sync-mode": "delta",
"crawl": {
"state": "completed",
"duration": "15s"
},
"bytes": {
"sync_bytes": "120.20 MiB",
"total_bytes": "149.94 MiB",
"sync_percent": "80.16%"
},
"files": {
"sync_files": 4032,
"total_files": 5000,
"sync_percent": "80.64%"
}
},
"last_synced_snap": {
"id": 2,
"name": "d0_snap0",
"crawl_duration": "17s",
"sync_duration": 45,
"sync_time_stamp": "5642.805770s",
"sync_bytes": "300.85 MiB",
"sync_files": 10000
},
"snaps_synced": 1,
"snaps_deleted": 0,
"snaps_renamed": 0
}
}
-------------
{
"/d0": {
"state": "idle",
"last_synced_snap": {
"id": 2,
"name": "d0_snap0",
"crawl_duration": "17s",
"sync_duration": "2m 38s",
"sync_time_stamp": "9259.225009s",
"sync_bytes": "901.52 MiB",
"sync_files": 30000
},
"snaps_synced": 1,
"snaps_deleted": 0,
"snaps_renamed": 0
}
}
Fixes: https://tracker.ceph.com/issues/73453
Signed-off-by: Kotresh HR <khiremat@redhat.com>
(cherry picked from commit
d593ad8aefe34dbaffcde22efc294500ca6f7f43)