You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							67 lines
						
					
					
						
							2.9 KiB
						
					
					
				
			
		
		
		
			
			
			
				
					
				
				
					
				
			
		
		
	
	
							67 lines
						
					
					
						
							2.9 KiB
						
					
					
				| from pydantic import BaseModel, ConfigDict, Field | |
| from pydantic.alias_generators import to_camel | |
| from typing import List, Optional | |
| 
 | |
| 
 | |
| class CpuInfo(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel) | |
| 
 | |
|     cpu_num: Optional[int] = Field(default=None, description='核心数') | |
|     used: Optional[float] = Field(default=None, description='CPU用户使用率') | |
|     sys: Optional[float] = Field(default=None, description='CPU系统使用率') | |
|     free: Optional[float] = Field(default=None, description='CPU当前空闲率') | |
| 
 | |
| 
 | |
| class MemoryInfo(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel) | |
| 
 | |
|     total: Optional[str] = Field(default=None, description='内存总量') | |
|     used: Optional[str] = Field(default=None, description='已用内存') | |
|     free: Optional[str] = Field(default=None, description='剩余内存') | |
|     usage: Optional[float] = Field(default=None, description='使用率') | |
| 
 | |
| 
 | |
| class SysInfo(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel) | |
| 
 | |
|     computer_ip: Optional[str] = Field(default=None, description='服务器IP') | |
|     computer_name: Optional[str] = Field(default=None, description='服务器名称') | |
|     os_arch: Optional[str] = Field(default=None, description='系统架构') | |
|     os_name: Optional[str] = Field(default=None, description='操作系统') | |
|     user_dir: Optional[str] = Field(default=None, description='项目路径') | |
| 
 | |
| 
 | |
| class PyInfo(MemoryInfo): | |
|     model_config = ConfigDict(alias_generator=to_camel) | |
| 
 | |
|     name: Optional[str] = Field(default=None, description='Python名称') | |
|     version: Optional[str] = Field(default=None, description='Python版本') | |
|     start_time: Optional[str] = Field(default=None, description='启动时间') | |
|     run_time: Optional[str] = Field(default=None, description='运行时长') | |
|     home: Optional[str] = Field(default=None, description='安装路径') | |
| 
 | |
| 
 | |
| class SysFiles(BaseModel): | |
|     model_config = ConfigDict(alias_generator=to_camel) | |
| 
 | |
|     dir_name: Optional[str] = Field(default=None, description='盘符路径') | |
|     sys_type_name: Optional[str] = Field(default=None, description='盘符类型') | |
|     type_name: Optional[str] = Field(default=None, description='文件类型') | |
|     total: Optional[str] = Field(default=None, description='总大小') | |
|     used: Optional[str] = Field(default=None, description='已经使用量') | |
|     free: Optional[str] = Field(default=None, description='剩余大小') | |
|     usage: Optional[str] = Field(default=None, description='资源的使用率') | |
| 
 | |
| 
 | |
| class ServerMonitorModel(BaseModel): | |
|     """ | |
|     服务监控对应pydantic模型 | |
|     """ | |
| 
 | |
|     model_config = ConfigDict(alias_generator=to_camel) | |
| 
 | |
|     cpu: Optional[CpuInfo] = Field(description='CPU相关信息') | |
|     py: Optional[PyInfo] = Field(description='Python相关信息') | |
|     mem: Optional[MemoryInfo] = Field(description='內存相关信息') | |
|     sys: Optional[SysInfo] = Field(description='服务器相关信息') | |
|     sys_files: Optional[List[SysFiles]] = Field(description='磁盘相关信息')
 | |
| 
 |