UNPKG

node-os-utils

Version:

Advanced cross-platform operating system monitoring utilities with TypeScript support

199 lines 5.33 kB
import { BasePlatformAdapter } from '../core/platform-adapter'; import { CommandResult, SupportedFeatures } from '../types/platform'; import { ExecuteOptions } from '../types/config'; /** * Linux 平台适配器 * * 实现 Linux 系统的监控功能,主要通过 /proc、/sys 文件系统和系统命令 */ export declare class LinuxAdapter extends BasePlatformAdapter { private executor; private readonly containerMode; private readonly processListCommand; private readonly cpuUsageSamplingInterval; private readonly paths; constructor(); /** * 执行系统命令 */ executeCommand(command: string, options?: ExecuteOptions): Promise<CommandResult>; /** * 读取文件内容 */ readFile(path: string): Promise<string>; /** * 检查文件是否存在 */ fileExists(path: string): Promise<boolean>; /** * 读取 /proc/cpuinfo 并解析成结构化 CPU 信息 */ getCPUInfo(): Promise<any>; /** * 读取 /proc/stat,计算总体 CPU 使用情况 */ getCPUUsage(): Promise<any>; /** * 遍历 /sys/class/thermal,聚合 CPU 温度传感器 */ getCPUTemperature(): Promise<any>; /** * 读取 /proc/meminfo 解析内存占用 */ getMemoryInfo(): Promise<any>; /** * 获取内存使用情况 */ getMemoryUsage(): Promise<any>; /** * 获取磁盘信息 */ getDiskInfo(): Promise<any>; /** * 获取磁盘 I/O 统计 */ getDiskIO(): Promise<any>; /** * 获取网络接口列表 */ getNetworkInterfaces(): Promise<any>; /** * 获取网络统计信息 */ getNetworkStats(): Promise<any>; /** * 获取进程列表 */ getProcesses(): Promise<any>; /** * 获取特定进程信息 */ getProcessInfo(pid: number): Promise<any>; /** * 获取系统信息 */ getSystemInfo(): Promise<any>; /** * 获取系统负载 */ getSystemLoad(): Promise<any>; /** * 初始化支持的功能 */ protected initializeSupportedFeatures(): SupportedFeatures; private parseCPUInfo; private captureCpuStat; private parseCpuStat; private parseCpuTimesFromLine; private calculateCpuUsage; private calculateCoreUsage; private diffCpuTimes; private computeUsagePercentages; private getCpuTotal; private safeDiff; private parseMemoryInfo; private parseDiskInfo; /** * 解析 ip/ifconfig 输出的网卡信息,稳定提取接口名称 */ private parseNetworkInterfaces; private parseIfconfigOutput; /** * 解析 /proc/net/dev 网络统计数据 * * 将原始列按接口拆分,并提取收发字节/错误/丢包等指标 */ private parseNetworkStats; private parseProcessList; /** * 综合 /proc/[pid] 下多份文件,拼装进程详细信息 */ private parseProcessInfo; private parseSystemInfo; private parseLoadAverage; private findThermalZones; /** * 获取磁盘使用情况 */ getDiskUsage(): Promise<any>; /** * 获取磁盘统计 */ getDiskStats(): Promise<any>; /** * 获取挂载点 */ getMounts(): Promise<any>; /** * 获取文件系统 */ getFileSystems(): Promise<any>; /** * 获取网络连接 */ getNetworkConnections(): Promise<any>; /** * 获取默认网关 */ getDefaultGateway(): Promise<any>; /** * 获取进程列表 */ getProcessList(): Promise<any>; /** * 杀死进程 */ killProcess(pid: number, signal?: string): Promise<boolean>; /** * 获取进程打开文件 */ getProcessOpenFiles(pid: number): Promise<string[]>; /** * 获取进程环境变量 */ getProcessEnvironment(pid: number): Promise<Record<string, string>>; /** * 获取系统运行时间 */ getSystemUptime(): Promise<any>; /** * 获取系统用户 */ getSystemUsers(): Promise<any>; /** * 获取系统服务 */ getSystemServices(): Promise<any>; private parseDiskUsage; private parseDiskStats; private parseMounts; private parseFileSystems; private parseNetworkConnections; private parseNetstatConnections; private parseDefaultGateway; private parseOpenFiles; private parseEnvironment; private parseSystemUsers; private parseSystemServices; private delay; /** * 推断主机架构 * * 同时考虑 `uname -m`、`uname -a` 末尾字段与 `os.arch()`,过滤掉 `SMP` 等噪声标记, * 尽可能返回准确的 CPU 架构标识。 */ private resolveArchitecture; /** * 归纳命令执行阶段的错误信息 * * 便于在调用栈中保留主、次命令的失败原因,帮助上层监控器输出更具可读性的诊断数据。 */ private summarizeErrorDetails; /** * 检测当前进程是否运行在容器环境中 * * 通过常见标记文件和 cgroup 信息判断,若命中则代表部分系统能力(如 systemd)不可用。 */ private detectContainerEnvironment; } //# sourceMappingURL=linux-adapter.d.ts.map