web/src/lib/domain/Stats.ts (135 lines of code) (raw):

import { formatDate, formatRuntime } from '$lib/utils/formatters/dateFormatter'; type StatsStringItem = { name: string; value: string; rawValue: string | number }; type StatsNumberItem = { name: string; value: number }; export type Stats = { processId: StatsNumberItem; cpuUsage: StatsStringItem; memoryUsage: StatsStringItem; totalMemory: StatsStringItem; availableMemory: StatsStringItem; runTime: StatsStringItem; startTime: StatsStringItem; readBytes: StatsStringItem; writtenBytes: StatsStringItem; messagesSizeBytes: StatsStringItem; streamsCount: StatsNumberItem; topicsCount: StatsNumberItem; partitionsCount: StatsNumberItem; segmentsCount: StatsNumberItem; messagesCount: StatsNumberItem; clientsCount: StatsNumberItem; consumerGroupsCount: StatsNumberItem; hostName: StatsStringItem; osName: StatsStringItem; osVersion: StatsStringItem; kernelVersion: StatsStringItem; iggyServerVersion: StatsStringItem; }; export function statsMapper(item: any): Stats { const formattedRuntime = formatRuntime(item.run_time); const formattedStartTime = formatDate(item.start_time); return { processId: { name: 'Process ID', value: item.process_id }, cpuUsage: { name: 'CPU usage', value: `${item.cpu_usage.toFixed(2)} %`, rawValue: item.cpu_usage }, memoryUsage: { value: item.memory_usage, name: 'Memory usage', rawValue: item.memory_usage }, totalMemory: { name: 'Total memory', value: item.total_memory, rawValue: item.total_memory }, availableMemory: { name: 'Available memory', value: item.available_memory, rawValue: item.available_memory }, runTime: { name: 'Run time', value: formattedRuntime, rawValue: item.run_time }, startTime: { name: 'Start time', value: formattedStartTime, rawValue: item.start_time }, readBytes: { name: 'Read', value: item.read_bytes, rawValue: item.read_bytes }, writtenBytes: { name: 'Written', value: item.written_bytes, rawValue: item.written_bytes }, messagesSizeBytes: { name: 'Messages Size', value: item.messages_size_bytes, rawValue: item.messages_size_bytes }, streamsCount: { name: 'Streams', value: item.streams_count }, topicsCount: { name: 'Topics', value: item.topics_count }, partitionsCount: { name: 'Partitions', value: item.partitions_count }, segmentsCount: { name: 'Segments', value: item.segments_count }, messagesCount: { name: 'Messages', value: item.messages_count }, clientsCount: { name: 'Clients', value: item.clients_count }, consumerGroupsCount: { name: 'Consumer Groups', value: item.consumer_groups_count }, hostName: { name: 'Host', value: item.hostname, rawValue: item.hostName }, osName: { name: 'System', value: item.os_name, rawValue: item.os_name }, osVersion: { name: 'System version', value: item.os_version, rawValue: item.os_version }, kernelVersion: { name: 'Kernel version', value: item.kernel_version, rawValue: item.kernel_version }, iggyServerVersion: { name: 'Iggy server version', value: item.iggy_server_version, rawValue: item.iggy_server_version } }; }