node-os-utils
Version:
Advanced cross-platform operating system monitoring utilities with TypeScript support
199 lines • 5.33 kB
TypeScript
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