<?xml version="1.0" encoding="utf-8"?>
<EntityModel xmlns:xs="http://www.w3.org/2001/XMLSchema-instance" xs:schemaLocation="https://newlifex.com https://newlifex.com/Model202509.xsd" Document="https://newlifex.com/xcode/model" ModelVersion="2.0.2026.130" xmlns="https://newlifex.com/Model202509.xsd">
<Option>
<!--类名模板。其中{name}替换为Table.Name,如{name}Model/I{name}Dto等-->
<ClassNameTemplate />
<!--显示名模板。其中{displayName}替换为Table.DisplayName-->
<DisplayNameTemplate />
<!--基类。可能包含基类和接口,其中{name}替换为Table.Name-->
<BaseClass>Entity</BaseClass>
<!--命名空间-->
<Namespace>Rainbow.Entity</Namespace>
<!--引用命名空间-->
<ExtendNameSpace />
<!--输出目录-->
<Output>.\</Output>
<!--是否使用中文文件名。默认false-->
<ChineseFileName>True</ChineseFileName>
<!--用于生成Copy函数的参数类型。例如{name}或I{name}-->
<ModelNameForCopy />
<!--带有索引器。实现IModel接口-->
<HasIModel>False</HasIModel>
<!--可为null上下文。生成String?等-->
<Nullable>True</Nullable>
<!--数据库连接名-->
<ConnName>RainbowStat</ConnName>
<!--模型类模版。设置后生成模型类,用于接口数据传输,例如{name}Model-->
<ModelClass />
<!--模型类输出目录。默认当前目录的Models子目录-->
<ModelsOutput>..\Models\</ModelsOutput>
<!--模型接口模版。设置后生成模型接口,用于约束模型类和实体类,例如I{name}-->
<ModelInterface />
<!--模型接口输出目录。默认当前目录的Interfaces子目录-->
<InterfacesOutput>.\Interfaces\</InterfacesOutput>
<!--用户实体转为模型类的模型类。例如{name}或{name}DTO-->
<ModelNameForToModel />
<!--命名格式。Default/Upper/Lower/Underline-->
<NameFormat>Default</NameFormat>
<!--魔方区域显示名-->
<DisplayName>彩虹桥统计</DisplayName>
<!--魔方控制器输出目录-->
<CubeOutput>..\..\Rainbow.Web\Areas\Stats</CubeOutput>
</Option>
<Tables>
<Table Name="InterfaceStat" Description="网口分钟统计。每分钟从/proc/net/dev采集,按天分表。记录网口级流量和硬件错误,是网络健康诊断的基础数据" ConnName="RainbowStat">
<Columns>
<Column Name="Id" DataType="Int64" PrimaryKey="True" DataScale="time" Description="编号。雪花ID=分钟级时间戳,按天分表自动清理旧数据" />
<Column Name="InterfaceName" DataType="String" Length="20" Description="网口名。如eth0/ppp0/br-lan。关联WanInterface.Name进行多线路分析" />
<Column Name="RxBytes" DataType="Int64" Description="接收字节数。每秒变化率=下行带宽占用。持续满载→运营商带宽不足或大流量下载,需升级套餐" />
<Column Name="RxPackets" DataType="Int64" Description="接收包数。配合RxBytes得平均包大小=RxBytes/RxPackets。均值<200字节且包量巨大→疑似DDoS小包攻击或DNS放大" />
<Column Name="RxErrors" DataType="Int64" Description="接收硬件错误。CRC校验失败。正常恒为0;持续增长→网线老化/光模块故障/网卡硬件问题,需物理排查" />
<Column Name="RxDropped" DataType="Int64" Description="接收丢包。内核缓冲区溢出丢弃。持续增长→CPU来不及处理,需调大ring buffer或升级CPU。用户感知为卡顿/断流" />
<Column Name="RxFifo" DataType="Int64" Description="接收FIFO溢出。网卡硬件缓冲区溢出,比RxDropped更底层。增长→PCIe带宽不足或中断合并配置不当" />
<Column Name="RxFrame" DataType="Int64" Description="帧对齐错误。主因=双工模式不匹配(一端全双工一端半双工)。增长→检查网口协商速率和双工模式" />
<Column Name="RxMulticast" DataType="Int64" Description="接收组播包。家庭场景=IPTV/局域网设备发现(mDNS/SSDP)。异常暴增→组播风暴,需检查IGMP Snooping" />
<Column Name="TxBytes" DataType="Int64" Description="发送字节数。上行带宽占用。P2P上传或视频推流会显著推高" />
<Column Name="TxPackets" DataType="Int64" Description="发送包数。小包率偏高→可能是syn flood或扫描行为" />
<Column Name="TxErrors" DataType="Int64" Description="发送硬件错误。正常恒为0;增长→网卡驱动bug或DMA故障" />
<Column Name="TxDropped" DataType="Int64" Description="发送丢包。发送队列满丢弃=出口拥塞最直接证据。持续增长→带宽不足或QoS队列太小,需限速或升级" />
<Column Name="TxFifo" DataType="Int64" Description="发送FIFO溢出。发送方向硬件缓冲区溢出" />
<Column Name="TxCarrier" DataType="Int64" Description="载波丢失计数。网线物理断开/松动的直接证据。相邻两次差值>0→此刻发生链路断开,是断网告警最快触发条件" />
<Column Name="TxColls" DataType="Int64" Description="发送碰撞次数。全双工交换机环境恒为0。增长→网口半双工或接入集线器" />
<Column Name="StatTime" DataType="DateTime" Description="统计时间。精确到分钟,如2026-07-02 14:30:00" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
</Columns>
<Indexes>
<Index Columns="InterfaceName,Id" />
<Index Columns="StatTime" />
</Indexes>
</Table>
<Table Name="InterfaceHourStat" Description="网口小时统计。从InterfaceStat按小时汇总,含速率峰值和掉线次数。用于日报和小时级趋势分析" ConnName="RainbowStat">
<Columns>
<Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
<Column Name="InterfaceName" DataType="String" Length="20" Description="网口名" />
<Column Name="StatHour" DataType="DateTime" Description="统计小时。如2026-07-02 14:00:00" />
<Column Name="RxBytes" DataType="Int64" Description="小时接收字节合计。SUM(InterfaceStat.RxBytes)" />
<Column Name="RxPackets" DataType="Int64" Description="小时接收包合计" />
<Column Name="RxBytesMax" DataType="Int64" Description="分钟接收峰值。字节/秒。定位带宽瓶颈精确发生的分钟。峰值接近线路带宽→需扩容或QoS限速" />
<Column Name="RxPacketsMax" DataType="Int64" Description="分钟接收包峰值。小包PPS过高→可能DDoS攻击" />
<Column Name="RxErrors" DataType="Int64" Description="接收错误合计。>0→该小时内有硬件异常" />
<Column Name="RxDropped" DataType="Int64" Description="接收丢包合计。>0→该小时内有拥塞" />
<Column Name="TxBytes" DataType="Int64" Description="小时发送字节合计" />
<Column Name="TxPackets" DataType="Int64" Description="小时发送包合计" />
<Column Name="TxBytesMax" DataType="Int64" Description="分钟发送峰值。字节/秒" />
<Column Name="TxPacketsMax" DataType="Int64" Description="分钟发送包峰值" />
<Column Name="TxErrors" DataType="Int64" Description="发送错误合计" />
<Column Name="TxDropped" DataType="Int64" Description="发送丢包合计" />
<Column Name="TxCarrier" DataType="Int64" Description="载波丢失次数。>0→该小时内有物理断网" />
<Column Name="RxMulticast" DataType="Int64" Description="组播包合计" />
<Column Name="OfflineCount" DataType="Int32" Description="掉线次数。该小时内网口down/up次数。>3次→链路不稳定,需检查网线/光模块/对端交换机" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
</Columns>
<Indexes>
<Index Columns="InterfaceName,StatHour" Unique="True" />
</Indexes>
</Table>
<Table Name="InterfaceDayStat" Description="网口日统计。从InterfaceHourStat按天汇总,含日峰值。用于周报和月度趋势分析" ConnName="RainbowStat">
<Columns>
<Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
<Column Name="InterfaceName" DataType="String" Length="20" Description="网口名" />
<Column Name="StatDay" DataType="DateTime" Description="统计日。如2026-07-02" />
<Column Name="RxBytes" DataType="Int64" Description="日接收字节合计" />
<Column Name="TxBytes" DataType="Int64" Description="日发送字节合计" />
<Column Name="RxBytesMax" DataType="Int64" Description="小时接收峰值。字节/小时。定位每日流量高峰时段" />
<Column Name="TxBytesMax" DataType="Int64" Description="小时发送峰值" />
<Column Name="RxErrors" DataType="Int64" Description="日接收错误合计" />
<Column Name="RxDropped" DataType="Int64" Description="日接收丢包合计" />
<Column Name="TxErrors" DataType="Int64" Description="日发送错误合计" />
<Column Name="TxDropped" DataType="Int64" Description="日发送丢包合计" />
<Column Name="TxCarrier" DataType="Int64" Description="日载波丢失次数" />
<Column Name="OfflineCount" DataType="Int32" Description="日掉线次数。>10次→严重不稳定,需排查链路" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
</Columns>
<Indexes>
<Index Columns="InterfaceName,StatDay" Unique="True" />
</Indexes>
</Table>
<Table Name="DeviceStat" Description="设备分钟统计。每分钟从iptables/conntrack采集,按天分表。记录每台终端的上网行为和连接质量" ConnName="RainbowStat">
<Columns>
<Column Name="Id" DataType="Int64" PrimaryKey="True" DataScale="time" Description="编号。雪花ID,按天分表" />
<Column Name="DeviceId" DataType="Int32" Map="Device@Id@Name" Description="关联设备。映射优先级:1.MAC精确匹配 2.DeviceOnline.IP查DeviceOnline.DeviceId 3.Device.FindByIp取最近" />
<Column Name="IP" DataType="String" Length="45" Description="采集时的IP。冗余存储,事后若发现映射错误可按IP+时间修正。次要映射键" />
<Column Name="RxBytes" DataType="Int64" Description="本分钟接收字节。每分钟差值=该设备下行速率。峰值时刻与视频播放/大文件下载时段重合" />
<Column Name="TxBytes" DataType="Int64" Description="本分钟发送字节。上行/下行比例反转→P2P上传或直播推流" />
<Column Name="RxPackets" DataType="Int64" Description="本分钟接收包数。小包率=RxPackets*512<RxBytes→大包下载正常;反之为小包应用(DNS/游戏/聊天)" />
<Column Name="TxPackets" DataType="Int64" Description="本分钟发送包数" />
<Column Name="ConnCount" DataType="Int32" Description="当前活跃连接数。来自conntrack。手机正常50-150;>500→P2P/BT下载;>2000→疑似DDoS僵尸或挖矿木马" />
<Column Name="NewConnRate" DataType="Int32" Description="本分钟新建连接数。正常<100;>300→P2P连接建立;>1000→端口扫描攻击特征,需立即关注" />
<Column Name="DnsQueries" DataType="Int32" Description="DNS查询次数。来自dnsmasq日志。正常50-200/分钟;>500→域名扫描或DNS隧道" />
<Column Name="BlockedCount" DataType="Int32" Description="防火墙拦截数。安全策略命中量。持续增长→该设备正在访问黑名单域名/IP,安全风险" />
<Column Name="TcpRetrans" DataType="Int32" Description="TCP重传次数。来自conntrack统计。重传率>5%→该设备WiFi信号弱或网线质量差,用户体验严重下降" />
<Column Name="AvgRtt" DataType="Int32" Description="平均往返时延。毫秒,通过ping/tcping统计。<10ms极佳;>100ms明显延迟;>500ms基本不可用。用于定位WiFi干扰或运营商问题" />
<Column Name="StatTime" DataType="DateTime" Description="统计时间。精确到分钟" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
</Columns>
<Indexes>
<Index Columns="DeviceId,Id" />
<Index Columns="IP,Id" />
<Index Columns="StatTime" />
</Indexes>
</Table>
<Table Name="DeviceHourStat" Description="设备小时统计。从DeviceStat按小时汇总。用于日报和单设备行为趋势分析" ConnName="RainbowStat">
<Columns>
<Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
<Column Name="DeviceId" DataType="Int32" Map="Device@Id@Name" Description="关联设备" />
<Column Name="StatHour" DataType="DateTime" Description="统计小时" />
<Column Name="RxBytes" DataType="Int64" Description="小时接收字节合计" />
<Column Name="TxBytes" DataType="Int64" Description="小时发送字节合计" />
<Column Name="RxBytesMax" DataType="Int64" Description="分钟接收峰值。字节/分。定位该设备带宽消耗最大的分钟" />
<Column Name="TxBytesMax" DataType="Int64" Description="分钟发送峰值" />
<Column Name="ConnCountMax" DataType="Int32" Description="最大连接数。连接数峰值时刻=设备网络活动最密集时刻" />
<Column Name="TcpRetrans" DataType="Int32" Description="TCP重传合计。小时重传>500→该设备WiFi/网线质量严重差" />
<Column Name="AvgRttMin" DataType="Int32" Description="最小时延。ms。反映最佳网络状态" />
<Column Name="AvgRttMax" DataType="Int32" Description="最大时延。ms。RttMax-RttMin=抖动,>100ms严重影响VoIP/游戏" />
<Column Name="BlockedCount" DataType="Int32" Description="防火墙拦截合计" />
<Column Name="DnsQueries" DataType="Int32" Description="DNS查询合计" />
<Column Name="OfflineCount" DataType="Int32" Description="掉线次数。小时掉线>3→设备WiFi信号极差或频繁休眠唤醒" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
</Columns>
<Indexes>
<Index Columns="DeviceId,StatHour" Unique="True" />
</Indexes>
</Table>
<Table Name="DeviceDayStat" Description="设备日统计。从DeviceHourStat按天汇总。用于周报和单设备长期行为分析" ConnName="RainbowStat">
<Columns>
<Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
<Column Name="DeviceId" DataType="Int32" Map="Device@Id@Name" Description="关联设备" />
<Column Name="StatDay" DataType="DateTime" Description="统计日" />
<Column Name="RxBytes" DataType="Int64" Description="日接收字节合计。日流量>10GB→大量视频下载,可能超出月度配额" />
<Column Name="TxBytes" DataType="Int64" Description="日发送字节合计" />
<Column Name="RxBytesMax" DataType="Int64" Description="小时接收峰值。定位每日流量高峰时段(通常是晚间19-22点)" />
<Column Name="TxBytesMax" DataType="Int64" Description="小时发送峰值" />
<Column Name="TotalConns" DataType="Int64" Description="日总连接数。异常暴增(>10万)→设备可能中病毒发起扫描" />
<Column Name="TcpRetrans" DataType="Int32" Description="TCP重传合计。日重传>1000→设备网络质量长期差,建议检查网线/WiFi信道" />
<Column Name="BlockedCount" DataType="Int32" Description="日防火墙拦截合计" />
<Column Name="OnlineSeconds" DataType="Int32" ItemType="TimeSpan" Description="日在线秒数。反映设备使用时长。异常短(<600秒)→设备可能故障或用户外出" />
<Column Name="OfflineCount" DataType="Int32" Description="日掉线次数" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
</Columns>
<Indexes>
<Index Columns="DeviceId,StatDay" Unique="True" />
</Indexes>
</Table>
<Table Name="MemberStat" Description="成员分钟统计。汇总该成员所有设备每分钟行为。用于成员级流量账单和家长控制" ConnName="RainbowStat">
<Columns>
<Column Name="Id" DataType="Int64" PrimaryKey="True" DataScale="time" Description="编号。雪花ID,按天分表" />
<Column Name="MemberId" DataType="Int32" Map="Member@Id@Name" Description="关联成员。汇总该成员所有Device的DeviceStat" />
<Column Name="DeviceCount" DataType="Int32" Description="当前在线设备数。一人多设备同时在线。突然增加→新设备接入,关注是否未经授权" />
<Column Name="RxBytes" DataType="Int64" Description="所有设备接收字节汇总。家庭流量账单依据,可设置月度配额告警" />
<Column Name="TxBytes" DataType="Int64" Description="所有设备发送字节汇总" />
<Column Name="RxPackets" DataType="Int64" Description="接收包汇总" />
<Column Name="TxPackets" DataType="Int64" Description="发送包汇总" />
<Column Name="TotalConns" DataType="Int32" Description="所有设备总连接数。异常高→某设备可能在跑P2P或被控" />
<Column Name="NewConnRate" DataType="Int32" Description="每分钟新建连接汇总" />
<Column Name="DnsQueries" DataType="Int32" Description="DNS查询汇总。分析该成员的域名访问模式,异常域名可关联到具体成员" />
<Column Name="BlockedCount" DataType="Int32" Description="防火墙拦截汇总。反映该成员的安全风险等级:持续高→可能误入钓鱼/恶意网站" />
<Column Name="TcpRetrans" DataType="Int32" Description="TCP重传汇总。重传集中在某成员→该成员WiFi环境差。可推送APP提醒靠近路由器" />
<Column Name="AvgRtt" DataType="Int32" Description="平均时延。加权平均,反映该成员整体上网流畅度" />
<Column Name="OnlineSeconds" DataType="Int32" ItemType="TimeSpan" Description="本分钟在线秒数。0-60。60=全程在线;<60=该分钟有设备断网或休眠" />
<Column Name="StatTime" DataType="DateTime" Description="统计时间" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
</Columns>
<Indexes>
<Index Columns="MemberId,Id" />
<Index Columns="StatTime" />
</Indexes>
</Table>
<Table Name="MemberHourStat" Description="成员小时统计。从MemberStat按小时汇总。用于成员日报和行为趋势" ConnName="RainbowStat">
<Columns>
<Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
<Column Name="MemberId" DataType="Int32" Map="Member@Id@Name" Description="关联成员" />
<Column Name="StatHour" DataType="DateTime" Description="统计小时" />
<Column Name="DeviceCount" DataType="Int32" Description="平均在线设备数" />
<Column Name="RxBytes" DataType="Int64" Description="小时接收字节合计" />
<Column Name="TxBytes" DataType="Int64" Description="小时发送字节合计" />
<Column Name="RxBytesMax" DataType="Int64" Description="分钟接收峰值。定位该成员带宽消耗最大的时刻" />
<Column Name="TxBytesMax" DataType="Int64" Description="分钟发送峰值" />
<Column Name="TotalConns" DataType="Int32" Description="最大连接数" />
<Column Name="TcpRetrans" DataType="Int32" Description="TCP重传合计" />
<Column Name="AvgRttMin" DataType="Int32" Description="最小时延" />
<Column Name="AvgRttMax" DataType="Int32" Description="最大时延。抖动=Max-Min>100ms→VoIP/游戏体验差" />
<Column Name="BlockedCount" DataType="Int32" Description="防火墙拦截合计" />
<Column Name="DnsQueries" DataType="Int32" Description="DNS查询合计" />
<Column Name="OnlineSeconds" DataType="Int32" ItemType="TimeSpan" Description="小时在线秒数。反映该成员用网时长。异常短→可能外出或断网" />
<Column Name="OfflineCount" DataType="Int32" Description="掉线次数合计" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
</Columns>
<Indexes>
<Index Columns="MemberId,StatHour" Unique="True" />
</Indexes>
</Table>
<Table Name="MemberDayStat" Description="成员日统计。从MemberHourStat按天汇总。用于周报和月度流量报告" ConnName="RainbowStat">
<Columns>
<Column Name="Id" DataType="Int32" Identity="True" PrimaryKey="True" Description="编号" />
<Column Name="MemberId" DataType="Int32" Map="Member@Id@Name" Description="关联成员" />
<Column Name="StatDay" DataType="DateTime" Description="统计日" />
<Column Name="DeviceCount" DataType="Int32" Description="当日活跃设备数。反映该成员有多少设备在使用。突然增加→新设备需关注" />
<Column Name="RxBytes" DataType="Int64" Description="日接收字节合计" />
<Column Name="TxBytes" DataType="Int64" Description="日发送字节合计" />
<Column Name="RxBytesMax" DataType="Int64" Description="小时接收峰值" />
<Column Name="TxBytesMax" DataType="Int64" Description="小时发送峰值" />
<Column Name="TcpRetrans" DataType="Int32" Description="TCP重传合计" />
<Column Name="BlockedCount" DataType="Int32" Description="日防火墙拦截合计" />
<Column Name="OnlineSeconds" DataType="Int32" ItemType="TimeSpan" Description="日在线秒数。异常短→成员今天基本没上网" />
<Column Name="OfflineCount" DataType="Int32" Description="日掉线次数" />
<Column Name="CreateTime" DataType="DateTime" Description="创建时间" Category="扩展" />
</Columns>
<Indexes>
<Index Columns="MemberId,StatDay" Unique="True" />
</Indexes>
</Table>
</Tables>
</EntityModel>
|