From 5bfebce1a564128ad50c234307f76df4f473762d Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 6 Nov 2023 14:08:30 +0200 Subject: [PATCH 1/4] backend: Add constant for maximum top K reported statistics Signed-off-by: Alexandru Vasile --- .../telemetry_core/src/state/chain_stats.rs | 21 +++++++++++-------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/backend/telemetry_core/src/state/chain_stats.rs b/backend/telemetry_core/src/state/chain_stats.rs index 3f79e574d..f1816b8b7 100644 --- a/backend/telemetry_core/src/state/chain_stats.rs +++ b/backend/telemetry_core/src/state/chain_stats.rs @@ -23,6 +23,9 @@ const REFERENCE_MEMORY_SCORE: u64 = 14899; const REFERENCE_DISK_SEQUENTIAL_WRITE_SCORE: u64 = 485; const REFERENCE_DISK_RANDOM_WRITE_SCORE: u64 = 222; +/// Top k statistics reported for one entry. +const TOP_K_STATS: usize = 10; + macro_rules! buckets { (@try $value:expr, $bucket_min:expr, $bucket_max:expr,) => { if $value < $bucket_max { @@ -246,22 +249,22 @@ impl ChainStatsCollator { pub fn generate(&self) -> ChainStats { ChainStats { - version: self.version.generate_ranking_top(10), - target_os: self.target_os.generate_ranking_top(10), - target_arch: self.target_arch.generate_ranking_top(10), - cpu: self.cpu.generate_ranking_top(10), + version: self.version.generate_ranking_top(TOP_K_STATS), + target_os: self.target_os.generate_ranking_top(TOP_K_STATS), + target_arch: self.target_arch.generate_ranking_top(TOP_K_STATS), + cpu: self.cpu.generate_ranking_top(TOP_K_STATS), memory: self.memory.generate_ranking_ordered(), - core_count: self.core_count.generate_ranking_top(10), - linux_kernel: self.linux_kernel.generate_ranking_top(10), - linux_distro: self.linux_distro.generate_ranking_top(10), + core_count: self.core_count.generate_ranking_top(TOP_K_STATS), + linux_kernel: self.linux_kernel.generate_ranking_top(TOP_K_STATS), + linux_distro: self.linux_distro.generate_ranking_top(TOP_K_STATS), is_virtual_machine: self.is_virtual_machine.generate_ranking_ordered(), - cpu_hashrate_score: self.cpu_hashrate_score.generate_ranking_top(10), + cpu_hashrate_score: self.cpu_hashrate_score.generate_ranking_top(TOP_K_STATS), memory_memcpy_score: self.memory_memcpy_score.generate_ranking_ordered(), disk_sequential_write_score: self .disk_sequential_write_score .generate_ranking_ordered(), disk_random_write_score: self.disk_random_write_score.generate_ranking_ordered(), - cpu_vendor: self.cpu_vendor.generate_ranking_top(10), + cpu_vendor: self.cpu_vendor.generate_ranking_top(TOP_K_STATS), } } } From 6b3bfeec4d512d0303cc47143cbe814b0973eccf Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 6 Nov 2023 14:09:20 +0200 Subject: [PATCH 2/4] backend: Bounded propagation of all (up to 1024) entries of kernel Signed-off-by: Alexandru Vasile --- backend/telemetry_core/src/state/chain_stats.rs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/telemetry_core/src/state/chain_stats.rs b/backend/telemetry_core/src/state/chain_stats.rs index f1816b8b7..1c99290bb 100644 --- a/backend/telemetry_core/src/state/chain_stats.rs +++ b/backend/telemetry_core/src/state/chain_stats.rs @@ -23,6 +23,8 @@ const REFERENCE_MEMORY_SCORE: u64 = 14899; const REFERENCE_DISK_SEQUENTIAL_WRITE_SCORE: u64 = 485; const REFERENCE_DISK_RANDOM_WRITE_SCORE: u64 = 222; +/// The maximum number of statistics sent to the frontend for one entry. +const MAXIMUM_STATS_COUNT: usize = 1024; /// Top k statistics reported for one entry. const TOP_K_STATS: usize = 10; @@ -255,7 +257,7 @@ impl ChainStatsCollator { cpu: self.cpu.generate_ranking_top(TOP_K_STATS), memory: self.memory.generate_ranking_ordered(), core_count: self.core_count.generate_ranking_top(TOP_K_STATS), - linux_kernel: self.linux_kernel.generate_ranking_top(TOP_K_STATS), + linux_kernel: self.linux_kernel.generate_ranking_top(MAXIMUM_STATS_COUNT), linux_distro: self.linux_distro.generate_ranking_top(TOP_K_STATS), is_virtual_machine: self.is_virtual_machine.generate_ranking_ordered(), cpu_hashrate_score: self.cpu_hashrate_score.generate_ranking_top(TOP_K_STATS), From 97b7cd9a713f25061f0542f29dece8a35ea2b2e9 Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 6 Nov 2023 14:10:45 +0200 Subject: [PATCH 3/4] backend: Propagate top 1024 entries of CPU name and chain version Signed-off-by: Alexandru Vasile --- backend/telemetry_core/src/state/chain_stats.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/telemetry_core/src/state/chain_stats.rs b/backend/telemetry_core/src/state/chain_stats.rs index 1c99290bb..d781709b7 100644 --- a/backend/telemetry_core/src/state/chain_stats.rs +++ b/backend/telemetry_core/src/state/chain_stats.rs @@ -251,10 +251,10 @@ impl ChainStatsCollator { pub fn generate(&self) -> ChainStats { ChainStats { - version: self.version.generate_ranking_top(TOP_K_STATS), + version: self.version.generate_ranking_top(MAXIMUM_STATS_COUNT), target_os: self.target_os.generate_ranking_top(TOP_K_STATS), target_arch: self.target_arch.generate_ranking_top(TOP_K_STATS), - cpu: self.cpu.generate_ranking_top(TOP_K_STATS), + cpu: self.cpu.generate_ranking_top(MAXIMUM_STATS_COUNT), memory: self.memory.generate_ranking_ordered(), core_count: self.core_count.generate_ranking_top(TOP_K_STATS), linux_kernel: self.linux_kernel.generate_ranking_top(MAXIMUM_STATS_COUNT), From 3abdbd2ce9e8da3a6ed8840f3a3d321b8b4d152b Mon Sep 17 00:00:00 2001 From: Alexandru Vasile Date: Mon, 6 Nov 2023 14:23:38 +0200 Subject: [PATCH 4/4] backend: Use identity fn for kernel versions Signed-off-by: Alexandru Vasile --- backend/telemetry_core/src/state/chain_stats.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/telemetry_core/src/state/chain_stats.rs b/backend/telemetry_core/src/state/chain_stats.rs index d781709b7..648f6a7cc 100644 --- a/backend/telemetry_core/src/state/chain_stats.rs +++ b/backend/telemetry_core/src/state/chain_stats.rs @@ -189,7 +189,7 @@ impl ChainStatsCollator { self.linux_kernel.modify( sysinfo .and_then(|sysinfo| sysinfo.linux_kernel.as_ref()) - .map(kernel_version_number), + .map(|value| &**value), op, );