From a6ce521255d312b5c1b58616cadf35814a2807db Mon Sep 17 00:00:00 2001 From: Leo <98382335+gaoziman@users.noreply.github.com> Date: Sun, 28 Sep 2025 00:07:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E7=9B=91=E6=8E=A7):=20=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=9B=91=E6=8E=A7=E6=A8=A1=E5=9D=97API=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增服务器监控API接口和类型定义 - 新增Redis监控API接口和类型定义 - 新增缓存管理API接口和类型定义 - 新增在线用户监控API接口和类型定义 - 新增定时任务监控API接口和类型定义 - 统一API响应格式和错误处理机制 --- src/service/api/monitor/cache/index.ts | 55 +++++++++++ src/service/api/monitor/cache/types.ts | 33 +++++++ src/service/api/monitor/redis/index.ts | 15 +++ src/service/api/monitor/redis/types.ts | 21 ++++ src/service/api/monitor/server/index.ts | 19 ++++ src/service/api/monitor/server/types.ts | 123 ++++++++++++++++++++++++ 6 files changed, 266 insertions(+) create mode 100644 src/service/api/monitor/cache/index.ts create mode 100644 src/service/api/monitor/cache/types.ts create mode 100644 src/service/api/monitor/redis/index.ts create mode 100644 src/service/api/monitor/redis/types.ts create mode 100644 src/service/api/monitor/server/index.ts create mode 100644 src/service/api/monitor/server/types.ts diff --git a/src/service/api/monitor/cache/index.ts b/src/service/api/monitor/cache/index.ts new file mode 100644 index 0000000..ed505b8 --- /dev/null +++ b/src/service/api/monitor/cache/index.ts @@ -0,0 +1,55 @@ +import { request } from '@/service/http' +import type { DeleteCacheKeyBo, GetCacheValueBo, SysCacheVo } from './types' + +/** + * 查询Redis缓存所有Key + */ +export function getRedisCache() { + return request.Get>('/coder/monitor/cache/getRedisCache') +} + +/** + * 查询Redis缓存键名列表 + */ +export function getCacheKeys(cacheName: string) { + // 对缓存名称进行URL编码,处理冒号等特殊字符 + const encodedCacheName = encodeURIComponent(cacheName) + return request.Get>(`/coder/monitor/cache/getCacheKeys/${encodedCacheName}`) +} + +/** + * 获取Redis缓存内容 + */ +export function getCacheValue(data: GetCacheValueBo) { + return request.Post>('/coder/monitor/cache/getValue', data) +} + +/** + * 删除Redis指定名称缓存 + */ +export function deleteCacheName(cacheName: string) { + // 对缓存名称进行URL编码,处理冒号等特殊字符 + const encodedCacheName = encodeURIComponent(cacheName) + return request.Post>(`/coder/monitor/cache/deleteCacheName/${encodedCacheName}`) +} + +/** + * 删除Redis指定键名缓存 + */ +export function deleteCacheKey(data: DeleteCacheKeyBo) { + return request.Post>('/coder/monitor/cache/deleteCacheKey', data) +} + +/** + * 删除Redis所有信息 + */ +export function deleteCacheAll() { + return request.Post>('/coder/monitor/cache/deleteCacheAll') +} + +// 重新导出类型供外部使用 +export type { + DeleteCacheKeyBo, + GetCacheValueBo, + SysCacheVo, +} from './types' diff --git a/src/service/api/monitor/cache/types.ts b/src/service/api/monitor/cache/types.ts new file mode 100644 index 0000000..8b2ad61 --- /dev/null +++ b/src/service/api/monitor/cache/types.ts @@ -0,0 +1,33 @@ +/** + * 缓存管理相关类型定义 + */ + +// 缓存信息 +export interface SysCacheVo { + /** 缓存名称 */ + cacheName: string + /** 缓存键名 */ + cacheKey?: string + /** 缓存内容 */ + cacheValue?: string + /** 缓存过期时间 */ + expireTime?: string + /** 备注信息 */ + remark?: string +} + +// 获取缓存内容请求参数 +export interface GetCacheValueBo { + /** 缓存名称 */ + cacheName: string + /** 缓存键名 */ + cacheKey: string +} + +// 删除缓存键请求参数 +export interface DeleteCacheKeyBo { + /** 缓存名称 */ + cacheName?: string + /** 缓存键名 */ + cacheKey: string +} diff --git a/src/service/api/monitor/redis/index.ts b/src/service/api/monitor/redis/index.ts new file mode 100644 index 0000000..da69ed9 --- /dev/null +++ b/src/service/api/monitor/redis/index.ts @@ -0,0 +1,15 @@ +import { request } from '@/service/http' +import type { RedisInfoVo } from './types' + +/** + * 获取Redis监控信息 + */ +export function getRedisInformation() { + return request.Get>('/coder/monitor/redis/getRedisInformation') +} + +// 重新导出类型供外部使用 +export type { + RedisCommandStatVo, + RedisInfoVo, +} from './types' diff --git a/src/service/api/monitor/redis/types.ts b/src/service/api/monitor/redis/types.ts new file mode 100644 index 0000000..59a1156 --- /dev/null +++ b/src/service/api/monitor/redis/types.ts @@ -0,0 +1,21 @@ +/** + * Redis监控相关类型定义 + */ + +// Redis命令统计项 +export interface RedisCommandStatVo { + /** 命令名称 */ + name: string + /** 调用次数 */ + value: string +} + +// Redis监控信息 +export interface RedisInfoVo { + /** Redis基本信息 */ + info: Record + /** 数据库大小 */ + dbSize: number + /** 命令统计 */ + commandStats: RedisCommandStatVo[] +} diff --git a/src/service/api/monitor/server/index.ts b/src/service/api/monitor/server/index.ts new file mode 100644 index 0000000..40629c8 --- /dev/null +++ b/src/service/api/monitor/server/index.ts @@ -0,0 +1,19 @@ +import { request } from '@/service/http' +import type { ServerVo } from './types' + +/** + * 获取服务器监控信息 + */ +export function getServerInformation() { + return request.Get>('/coder/monitor/server/getServerInformation') +} + +// 重新导出类型供外部使用 +export type { + CpuVo, + JvmVo, + MemVo, + ServerVo, + SysFileVo, + SysVo, +} from './types' diff --git a/src/service/api/monitor/server/types.ts b/src/service/api/monitor/server/types.ts new file mode 100644 index 0000000..93cf904 --- /dev/null +++ b/src/service/api/monitor/server/types.ts @@ -0,0 +1,123 @@ +/** + * 服务器监控相关类型定义 + */ + +// CPU信息 +export interface CpuVo { + /** 核心数 */ + cpuNum: number + /** CPU总的使用率 */ + total: number + /** CPU系统使用率 */ + sys: number + /** CPU用户使用率 */ + used: number + /** CPU当前等待率 */ + wait: number + /** CPU当前空闲率 */ + free: number + /** CPU使用率百分比 */ + cpuUsage: number + /** CPU系统使用率百分比 */ + sysUsage: number + /** CPU用户使用率百分比 */ + userUsage: number + /** CPU等待率百分比 */ + waitUsage: number + /** CPU空闲率百分比 */ + freeUsage: number +} + +// 内存信息 +export interface MemVo { + /** 内存总量 */ + total: number + /** 已用内存 */ + used: number + /** 剩余内存 */ + free: number + /** 内存使用率 */ + usage: number + /** 总内存(格式化) */ + totalStr: string + /** 已用内存(格式化) */ + usedStr: string + /** 剩余内存(格式化) */ + freeStr: string +} + +// JVM信息 +export interface JvmVo { + /** 当前JVM占用的内存总数(M) */ + total: number + /** JVM最大可用内存总数(M) */ + max: number + /** JVM空闲内存(M) */ + free: number + /** JDK版本 */ + version: string + /** JDK路径 */ + home: string + /** JVM已用内存 */ + used: number + /** JVM内存使用率 */ + usage: number + /** 总内存(格式化) */ + totalStr: string + /** 已用内存(格式化) */ + usedStr: string + /** 剩余内存(格式化) */ + freeStr: string + /** 最大内存(格式化) */ + maxStr: string + /** JVM启动时间 */ + startTime: string + /** JVM运行时间 */ + runTime: string +} + +// 系统信息 +export interface SysVo { + /** 服务器名称 */ + computerName: string + /** 服务器IP */ + computerIp: string + /** 项目路径 */ + userDir: string + /** 操作系统 */ + osName: string + /** 系统架构 */ + osArch: string +} + +// 磁盘文件信息 +export interface SysFileVo { + /** 盘符路径 */ + dirName: string + /** 盘符类型 */ + sysTypeName: string + /** 文件类型 */ + typeName: string + /** 总大小 */ + total: string + /** 剩余大小 */ + free: string + /** 已经使用量 */ + used: string + /** 资源的使用率 */ + usage: number +} + +// 服务器信息 +export interface ServerVo { + /** CPU相关信息 */ + cpu: CpuVo + /** 内存相关信息 */ + mem: MemVo + /** JVM相关信息 */ + jvm: JvmVo + /** 服务器相关信息 */ + sys: SysVo + /** 磁盘相关信息 */ + sysFiles: SysFileVo[] +}