Skip to content

Commit

Permalink
同步星尘最新的节点管理架构,上报常用信息,优化页面
Browse files Browse the repository at this point in the history
  • Loading branch information
nnhy committed Jun 30, 2024
1 parent 2926328 commit afff154
Show file tree
Hide file tree
Showing 13 changed files with 640 additions and 138 deletions.
9 changes: 8 additions & 1 deletion Samples/ZeroServer/Areas/Nodes/Controllers/NodeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,14 @@ static NodeController()
LogOnChange = true;

//ListFields.RemoveField("Id", "Creator");
ListFields.RemoveCreateField().RemoveRemarkField();
//ListFields.RemoveCreateField().RemoveRemarkField();
var list = ListFields;
list.Clear();
var allows = new[] { "ID", "Name", "Code", "Category", "ProductCode", "CityName", "Enable", "Version", "OSKind", "IP", "OS", "MachineName", "Cpu", "Memory", "TotalSize", "Logins", "LastActive", "OnlineTime", "UpdateTime", "UpdateIP" };
foreach (var item in allows)
{
list.AddListField(item);
}

{
var df = ListFields.GetField("Name") as ListField;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,24 +20,15 @@ static NodeHistoryController()
{
//LogOnChange = true;

ListFields.RemoveField("ProvinceName");
ListFields.RemoveCreateField().RemoveRemarkField();

//{
// var df = ListFields.GetField("Code") as ListField;
// df.Url = "?code={Code}";
//}
//{
// var df = ListFields.AddListField("devices", null, "Onlines");
// df.DisplayName = "查看设备";
// df.Url = "Device?groupId={Id}";
// df.DataVisible = e => (e as NodeHistory).Devices > 0;
//}
//{
// var df = ListFields.GetField("Kind") as ListField;
// df.GetValue = e => ((Int32)(e as NodeHistory).Kind).ToString("X4");
//}
ListFields.TraceUrl("TraceId");
ListFields.RemoveField("ProvinceName", "Compile");
ListFields.RemoveRemarkField();

{
var df = ListFields.AddListField("Remark", "TraceId");
df.TextAlign = TextAligns.Nowrap;
}

ListFields.TraceUrl();
}

/// <summary>高级搜索。列表页查询、导出Excel、导出Json、分享页等使用</summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ static NodeOnlineController()
{
//LogOnChange = true;

ListFields.RemoveField("ProvinceName", "Token");
ListFields.RemoveField("ProvinceName", "Macs", "Token");
ListFields.RemoveCreateField().RemoveRemarkField();

//{
Expand Down
3 changes: 3 additions & 0 deletions Samples/ZeroServer/Clients/ClientTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@ public static async Task Main(IServiceProvider serviceProvider)

XTrace.WriteLine("开始Node客户端测试");

// 降低日志等级,输出通信详情。生产环境不建议这么做
XTrace.Log.Level = NewLife.Log.LogLevel.Debug;

_tracer = serviceProvider.GetService<ITracer>();

var set = ClientSetting.Current;
Expand Down
18 changes: 17 additions & 1 deletion Samples/ZeroServer/Clients/NodeClient.cs
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
using NewLife;
using System.IO;
using System.Runtime.InteropServices;
using NewLife;
using NewLife.Model;
using NewLife.Remoting.Clients;
using NewLife.Remoting.Models;
Expand Down Expand Up @@ -57,9 +59,23 @@ public override ILoginRequest BuildLoginRequest()
var request = new LoginInfo();
FillLoginRequest(request);

var mi = MachineInfo.GetCurrent();
var path = ".".GetFullPath();
var driveInfo = DriveInfo.GetDrives().FirstOrDefault(e => path.StartsWithIgnoreCase(e.Name));

request.ProductCode = ProductCode;
request.Name = Environment.MachineName;

request.OSName = mi.OSName;
request.OSVersion = mi.OSVersion;
request.Architecture = RuntimeInformation.ProcessArchitecture + "";
request.MachineName = Environment.MachineName;
request.UserName = Environment.UserName;

request.ProcessorCount = Environment.ProcessorCount;
request.Memory = mi.Memory;
request.TotalSize = (UInt64)(driveInfo?.TotalSize ?? 0);

return request;
}
#endregion
Expand Down
13 changes: 10 additions & 3 deletions Samples/ZeroServer/Controllers/NodeController.cs
Original file line number Diff line number Diff line change
Expand Up @@ -52,9 +52,16 @@ protected override IPingResponse OnPing(IPingRequest? request)
{
var rs = base.OnPing(request);

var device = Node;
if (device != null)
rs.Period = device.Period;
var node = Node;
if (node != null)
{
rs.Period = node.Period;

if (rs is PingResponse rs2)
{
rs2.NewServer = node.NewServer;
}
}

return rs;
}
Expand Down
67 changes: 42 additions & 25 deletions Samples/ZeroServer/Nodes/Model.xml
Original file line number Diff line number Diff line change
Expand Up @@ -50,41 +50,52 @@
<Column Name="Category" DataType="String" Description="分类" />
<Column Name="Version" DataType="String" Description="版本" />
<Column Name="CompileTime" DataType="DateTime" Description="编译时间" />
<Column Name="OS" DataType="String" Length="100" Description="操作系统" Category="硬件信息" />
<Column Name="OSVersion" DataType="String" Description="系统版本" Category="硬件信息" />
<Column Name="Architecture" DataType="String" Description="架构。处理器架构,X86/X64/Arm/Arm64" Category="硬件信息" />
<Column Name="MachineName" DataType="String" Description="机器名称" Category="硬件信息" />
<Column Name="UserName" DataType="String" Description="用户名称" Category="硬件信息" />
<Column Name="IP" DataType="String" Length="200" Description="本地IP" Category="硬件信息" />
<Column Name="OS" DataType="String" Length="100" Description="操作系统" Category="系统信息" />
<Column Name="OSVersion" DataType="String" Description="系统版本" Category="系统信息" />
<Column Name="OSKind" DataType="Int32" Description="系统种类。主流操作系统类型,不考虑子版本" Category="系统信息" Type="Stardust.Models.OSKinds" />
<Column Name="Architecture" DataType="String" Description="架构。处理器架构,X86/X64/Arm/Arm64" Category="系统信息" />
<Column Name="MachineName" DataType="String" Description="机器名称" Category="系统信息" />
<Column Name="UserName" DataType="String" Description="用户名称" Category="系统信息" />
<Column Name="IP" DataType="String" Length="200" Description="本地IP" Category="系统信息" />
<Column Name="Cpu" DataType="Int32" Description="CPU。处理器核心数" Category="硬件信息" />
<Column Name="Memory" DataType="Int32" Description="内存。单位M" Category="硬件信息" />
<Column Name="TotalSize" DataType="Int32" Description="磁盘。应用所在盘,单位M" Category="硬件信息" />
<Column Name="MaxOpenFiles" DataType="Int32" Description="最大打开文件。Linux上的ulimit -n" Category="硬件信息" />
<Column Name="Dpi" DataType="String" Description="像素点。默认96*96" Category="硬件信息" />
<Column Name="Resolution" DataType="String" Description="分辨率。例如1024*768" Category="硬件信息" />
<Column Name="DriveSize" DataType="Int32" Description="驱动器大小。所有分区总大小,单位M" Category="硬件信息" />
<Column Name="DriveInfo" DataType="String" Length="500" Description="驱动器信息。各分区大小,逗号分隔" Category="硬件信息" />
<Column Name="MaxOpenFiles" DataType="Int32" Description="最大打开文件。Linux上的ulimit -n" Category="系统信息" />
<Column Name="Dpi" DataType="String" Description="像素点。默认96*96" Category="系统信息" />
<Column Name="Resolution" DataType="String" Description="分辨率。例如1024*768" Category="系统信息" />
<Column Name="Product" DataType="String" Description="产品名" Category="硬件信息" />
<Column Name="Vendor" DataType="String" Description="制造商" Category="硬件信息" />
<Column Name="Processor" DataType="String" Length="200" Description="处理器" Category="硬件信息" />
<Column Name="Uuid" DataType="String" Description="唯一标识" Category="硬件信息" />
<Column Name="MachineGuid" DataType="String" Description="机器标识" Category="硬件信息" />
<Column Name="SerialNumber" DataType="String" Description="序列号。适用于品牌机,跟笔记本标签显示一致" Category="硬件信息" />
<Column Name="Board" DataType="String" Description="主板。序列号或家族信息" Category="硬件信息" />
<Column Name="DiskID" DataType="String" Length="200" Description="磁盘序列号" Category="硬件信息" />
<Column Name="MACs" DataType="String" Length="200" Description="网卡" Category="硬件信息" />
<Column Name="InstallPath" DataType="String" Length="200" Description="安装路径" Category="硬件信息" />
<Column Name="Runtime" DataType="String" Description="运行时。.Net运行时版本,可知道本地已安装版本" Category="硬件信息" />
<Column Name="Framework" DataType="String" Description="目标框架。编译程序集时的目标版本" Category="硬件信息" />
<Column Name="ProvinceID" DataType="Int32" Description="省份" />
<Column Name="CityID" DataType="Int32" Description="城市" />
<Column Name="Address" DataType="String" Length="200" Description="地址。该节点所处位置" />
<Column Name="Period" DataType="Int32" Description="采样周期。默认60秒" />
<Column Name="InstallPath" DataType="String" Length="200" Description="安装路径" />
<Column Name="Runtime" DataType="String" Description="运行时。.Net运行时版本" Category="系统信息" />
<Column Name="Framework" DataType="String" Description="框架。本地支持的最高版本框架" Category="系统信息" />
<Column Name="Frameworks" DataType="String" Length="200" Description="框架集合。本地支持的所有版本框架,逗号隔开" Category="系统信息" />
<Column Name="ProvinceID" DataType="Int32" Description="省份" Category="参数设置" />
<Column Name="CityID" DataType="Int32" Description="城市" Category="参数设置" />
<Column Name="Address" DataType="String" Length="200" Description="地址。该节点所处位置" Category="参数设置" />
<Column Name="Period" DataType="Int32" Description="采样周期。默认60秒" Category="参数设置" />
<Column Name="NewServer" DataType="String" Description="新服务器。该节点自动迁移到新的服务器地址" Category="参数设置" />
<Column Name="LastVersion" DataType="String" Description="最后版本。最后一次升级所使用的版本号,避免重复升级同一个版本" Category="参数设置" />
<Column Name="WebHook" DataType="String" Length="500" Description="告警机器人。钉钉、企业微信等" Category="告警" />
<Column Name="AlarmCpuRate" DataType="Int32" Description="CPU告警。CPU告警的百分比阈值,CPU使用率达到该值时告警,百分之一" Category="告警" />
<Column Name="AlarmMemoryRate" DataType="Int32" Description="内存告警。内存告警的百分比阈值,内存使用率达到该值时告警,百分之一" Category="告警" />
<Column Name="AlarmDiskRate" DataType="Int32" Description="磁盘告警。磁盘告警的百分比阈值,磁盘使用率达到该值时告警,百分之一" Category="告警" />
<Column Name="AlarmTcp" DataType="Int32" Description="连接数告警。TCP连接数达到该值时告警,包括连接数、主动关闭和被动关闭" Category="告警" />
<Column Name="AlarmProcesses" DataType="String" Description="进程告警。要守护的进程不存在时告警,多进程逗号隔开,支持*模糊匹配" Category="告警" />
<Column Name="AlarmOnOffline" DataType="Boolean" Description="下线告警。节点下线时,发送告警" Category="告警" />
<Column Name="Logins" DataType="Int32" Description="登录次数" />
<Column Name="LastLogin" DataType="DateTime" Description="最后登录" />
<Column Name="LastLoginIP" DataType="String" Description="最后IP。最后的公网IP地址" />
<Column Name="OnlineTime" DataType="Int32" Description="在线时长。单位,秒" />
<Column Name="Logins" DataType="Int32" Description="登录次数" Category="登录信息" />
<Column Name="LastLogin" DataType="DateTime" Description="最后登录" Category="登录信息" />
<Column Name="LastLoginIP" DataType="String" Description="最后IP。最后的公网IP地址" Category="登录信息" />
<Column Name="LastActive" DataType="DateTime" Description="最后活跃。心跳过程中每10分钟更新活跃时间" Category="登录信息" />
<Column Name="OnlineTime" DataType="Int32" ItemType="TimeSpan" Description="在线时长。单位,秒" Category="登录信息" />
<Column Name="CreateUserID" DataType="Int32" Description="创建者" Category="扩展" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
<Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
Expand Down Expand Up @@ -116,26 +127,32 @@
<Column Name="WebSocket" DataType="Boolean" Description="长连接。WebSocket长连接" />
<Column Name="Version" DataType="String" Description="版本" />
<Column Name="CompileTime" DataType="DateTime" Description="编译时间" />
<Column Name="OSKind" DataType="Int32" Description="系统种类。主流操作系统类型,不考虑子版本" Type="Stardust.Models.OSKinds" />
<Column Name="Memory" DataType="Int32" Description="内存。单位M" />
<Column Name="AvailableMemory" DataType="Int32" Description="可用内存。单位M" />
<Column Name="MemoryUsed" DataType="Int32" Description="已用内存。单位M" />
<Column Name="AvailableFreeSpace" DataType="Int32" Description="可用磁盘。应用所在盘,单位M" />
<Column Name="CpuRate" DataType="Double" Description="CPU率。占用率" />
<Column Name="SpaceUsed" DataType="Int32" Description="已用磁盘。应用所在盘,单位M" />
<Column Name="DriveInfo" DataType="String" Length="500" Description="驱动器信息。各分区大小,逗号分隔" Category="硬件信息" />
<Column Name="CpuRate" DataType="Double" ItemType="percent" Description="CPU率。占用率" />
<Column Name="Temperature" DataType="Double" Description="温度" />
<Column Name="Battery" DataType="Double" Description="电量" />
<Column Name="UplinkSpeed" DataType="Int64" Description="上行速度。网络发送速度,字节每秒" />
<Column Name="DownlinkSpeed" DataType="Int64" Description="下行速度。网络接收速度,字节每秒" />
<Column Name="Battery" DataType="Double" ItemType="percent" Description="电量" />
<Column Name="Signal" DataType="Int32" Description="信号。信号强度,WiFi/4G" />
<Column Name="UplinkSpeed" DataType="Int64" ItemType="GMK" Description="上行速度。网络发送速度,字节每秒" />
<Column Name="DownlinkSpeed" DataType="Int64" ItemType="GMK" Description="下行速度。网络接收速度,字节每秒" />
<Column Name="ProcessCount" DataType="Int32" Description="进程数" />
<Column Name="TcpConnections" DataType="Int32" Description="连接数。传输数据Established的Tcp网络连接数" />
<Column Name="TcpTimeWait" DataType="Int32" Description="主动关闭。主动关闭后TimeWait的Tcp网络连接数,下一步Closed" />
<Column Name="TcpCloseWait" DataType="Int32" Description="被动关闭。被动关闭后CloseWait的Tcp网络连接数,下一步TimeWait" />
<Column Name="Delay" DataType="Int32" Description="延迟。网络延迟,客户端最近一次心跳耗时的一半,单位ms" />
<Column Name="Offset" DataType="Int32" Description="偏移。客户端UTC时间减服务端UTC时间,单位ms" />
<Column Name="LocalTime" DataType="DateTime" Description="本地时间" />
<Column Name="Uptime" DataType="Int32" Description="开机时间。单位s" />
<Column Name="Uptime" DataType="Int32" ItemType="TimeSpan" Description="开机时间。单位s" />
<Column Name="MACs" DataType="String" Length="200" Description="网卡" />
<Column Name="Processes" DataType="String" Length="2000" Description="进程列表" />
<Column Name="Token" DataType="String" Length="200" Description="令牌" />
<Column Name="Data" DataType="String" Length="-1" Description="数据" />
<Column Name="TraceId" DataType="String" Description="追踪。最新一次查看采样,可用于关联多个片段,建立依赖关系,随线程上下文、Http、Rpc传递" Category="扩展" />
<Column Name="Creator" DataType="String" Description="创建者。服务端节点" Category="扩展" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
<Column Name="CreateIP" DataType="String" Description="创建地址" Category="扩展" />
Expand Down
Loading

0 comments on commit afff154

Please sign in to comment.