增加操作系统显示,以及磁盘信息显示

This commit is contained in:
Alex Yang
2025-12-06 23:30:58 +08:00
parent 8a5ca62793
commit 667e370f79
23 changed files with 366 additions and 4744 deletions

View File

@@ -94,12 +94,16 @@ type ProcessMetrics struct {
// DiskDetailMetrics 磁盘详细信息
type DiskDetailMetrics struct {
ID string `json:"id"` // 磁盘唯一ID数字序列
Path string `json:"path"` // 设备路径
Status string `json:"status"` // 设备状态
Type string `json:"type"` // 设备类型
SizeGB float64 `json:"size_gb"` // 设备大小(GB)
Model string `json:"model"` // 设备型号
Vendor string `json:"vendor"` // 设备厂商
InterfaceType string `json:"interface_type"` // 接口类型
FileSystem string `json:"file_system"` // 文件系统
DiskUUID string `json:"disk_uuid"` // 磁盘UUID
Description string `json:"description"` // 设备描述
}
@@ -147,6 +151,7 @@ type MemoryInfo struct {
// NetworkHardwareInfo 网卡硬件信息
type NetworkHardwareInfo struct {
ID string `json:"id"` // 网卡唯一ID数字序列
Name string `json:"name"` // 网卡名称
MAC string `json:"mac"` // MAC地址
IPAddresses []string `json:"ip_addresses"` // IP地址列表
@@ -367,7 +372,7 @@ func HandleMetricsPost(c *gin.Context) {
// 写入磁盘详细信息
for _, diskDetail := range req.DiskDetails {
if err := globalStorage.WriteDiskDetailMetric(writeCtx, deviceID, diskDetail.Path, diskDetail.Status, diskDetail.Type, diskDetail.SizeGB, diskDetail.Model, diskDetail.InterfaceType, diskDetail.Description, baseTags); err != nil {
if err := globalStorage.WriteDiskDetailMetric(writeCtx, deviceID, diskDetail.Path, diskDetail.Status, diskDetail.Type, diskDetail.SizeGB, diskDetail.Model, diskDetail.Vendor, diskDetail.InterfaceType, diskDetail.FileSystem, diskDetail.DiskUUID, diskDetail.Description, baseTags); err != nil {
// 只记录警告,不影响后续指标处理
log.Printf("Warning: Failed to write disk details for device %s: %v", diskDetail.Path, err)
}
@@ -421,12 +426,16 @@ func HandleMetricsPost(c *gin.Context) {
// 磁盘详细信息
for i, diskDetail := range req.Hardware.DiskDetails {
diskData := map[string]interface{}{
"id": diskDetail.ID,
"path": diskDetail.Path,
"status": diskDetail.Status,
"type": diskDetail.Type,
"size_gb": diskDetail.SizeGB,
"model": diskDetail.Model,
"vendor": diskDetail.Vendor,
"interface_type": diskDetail.InterfaceType,
"file_system": diskDetail.FileSystem,
"disk_uuid": diskDetail.DiskUUID,
"description": diskDetail.Description,
"index": i,
}
@@ -438,6 +447,7 @@ func HandleMetricsPost(c *gin.Context) {
// 网络网卡信息
for i, netCard := range req.Hardware.NetworkCards {
netData := map[string]interface{}{
"id": netCard.ID,
"name": netCard.Name,
"mac": netCard.MAC,
"mtu": netCard.MTU,
@@ -1362,12 +1372,16 @@ func GetHardwareMetrics(c *gin.Context) {
diskDetails := []map[string]interface{}{}
for _, diskData := range diskDataList {
diskDetail := map[string]interface{}{
"id": diskData["id"],
"path": diskData["path"],
"status": diskData["status"],
"type": diskData["type"],
"size_gb": diskData["size_gb"],
"model": diskData["model"],
"vendor": diskData["vendor"],
"interface_type": diskData["interface_type"],
"file_system": diskData["file_system"],
"disk_uuid": diskData["disk_uuid"],
"description": diskData["description"],
}
diskDetails = append(diskDetails, diskDetail)
@@ -1377,12 +1391,16 @@ func GetHardwareMetrics(c *gin.Context) {
// 如果是单个磁盘
diskDetails := []map[string]interface{}{
{
"id": diskData["id"],
"path": diskData["path"],
"status": diskData["status"],
"type": diskData["type"],
"size_gb": diskData["size_gb"],
"model": diskData["model"],
"vendor": diskData["vendor"],
"interface_type": diskData["interface_type"],
"file_system": diskData["file_system"],
"disk_uuid": diskData["disk_uuid"],
"description": diskData["description"],
},
}
@@ -1405,6 +1423,7 @@ func GetHardwareMetrics(c *gin.Context) {
}
networkCard := map[string]interface{}{
"id": networkData["id"],
"name": networkData["name"],
"mac": networkData["mac"],
"ip_addresses": ipAddresses,
@@ -1428,6 +1447,7 @@ func GetHardwareMetrics(c *gin.Context) {
}
networkCard := map[string]interface{}{
"id": networkData["id"],
"name": networkData["name"],
"mac": networkData["mac"],
"ip_addresses": ipAddresses,