From d01c33128c77c24ffb5f8fd6c40f020fcf2d63c2 Mon Sep 17 00:00:00 2001 From: Kiefer Chang Date: Sun, 27 Dec 2020 09:04:06 +0800 Subject: [PATCH] mgr/dashboard: fix Reads/Writes ratio of Clients IOPS donut chart Use the percentage of READ ops instead of its value. Fixes: https://tracker.ceph.com/issues/48717 Signed-off-by: Kiefer Chang (cherry picked from commit 9ef1a729b5100b0ee32c0df367ef4b33ba762d4a) --- .../src/app/ceph/dashboard/health/health.component.spec.ts | 5 +++-- .../src/app/ceph/dashboard/health/health.component.ts | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health/health.component.spec.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health/health.component.spec.ts index d2fea1406cdcd..29e3f9a046a91 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health/health.component.spec.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health/health.component.spec.ts @@ -220,15 +220,16 @@ describe('HealthComponent', () => { }); it('event binding "prepareReadWriteRatio" is called', () => { - const prepareReadWriteRatio = spyOn(component, 'prepareReadWriteRatio'); + const prepareReadWriteRatio = spyOn(component, 'prepareReadWriteRatio').and.callThrough(); const payload = _.cloneDeep(healthPayload); payload.client_perf['read_op_per_sec'] = 1; - payload.client_perf['write_op_per_sec'] = 1; + payload.client_perf['write_op_per_sec'] = 3; getHealthSpy.and.returnValue(of(payload)); fixture.detectChanges(); expect(prepareReadWriteRatio).toHaveBeenCalled(); + expect(prepareReadWriteRatio.calls.mostRecent().args[0].dataset[0].data).toEqual([25, 75]); }); it('event binding "prepareRawUsage" is called', () => { diff --git a/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health/health.component.ts b/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health/health.component.ts index f58dbb1390a37..44c0f019769e5 100644 --- a/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health/health.component.ts +++ b/src/pybind/mgr/dashboard/frontend/src/app/ceph/dashboard/health/health.component.ts @@ -94,7 +94,7 @@ export class HealthComponent implements OnInit, OnDestroy { this.healthData.client_perf.read_op_per_sec )} ${this.i18n(`/s`)}` ); - ratioData.push(this.healthData.client_perf.read_op_per_sec); + ratioData.push(this.calcPercentage(this.healthData.client_perf.read_op_per_sec, total)); ratioLabels.push( `${this.i18n(`Writes`)}: ${this.dimless.transform( this.healthData.client_perf.write_op_per_sec -- 2.39.5