Files
iotlcm/internal/pub/xjpubmodel/xj_metric.go
T
MiFaZhan 82466d587d chore: 初始开源发布
iotlcm-upstream-proxy:渠道缓存与转发网关。

- 内联原私有依赖:yunze-public → internal/pub/(18 文件),
  yunze-pb/pb → internal/pb/(9 文件);Consul 注册改用官方
  gogf/gf/contrib/registry/consul/v2(API 兼容)
- Go module:yz-svr → git.5iot.com/iotlcm-public/iotlcm-upstream-proxy
- 凭据与内部标识脱敏:MySQL/Redis/Consul 凭据、私网与生产 IP、内网域名
- 移除内部资产:CI 触发器
- Dockerfile 改用公共基础镜像,移除写死的 registry 凭据
- 补 Apache-2.0 LICENSE,重写 README,LF 行尾 + .gitattributes
2026-10-22 16:08:08 +08:00

92 lines
4.8 KiB
Go

package xjpubmodel
import (
"github.com/gogf/gf/v2/os/gtime"
"github.com/gogf/gf/v2/util/gconv"
)
type MetricItem struct {
Name string `json:"name"`
Value float64 `json:"value"`
Time *gtime.Time `json:"time"`
}
func (m *MetricItem) SetValue(value interface{}) {
m.Value = gconv.Float64(value)
m.Time = gtime.Now()
}
func (m *MetricItem) GetValue() float64 {
return m.Value
}
func (m *MetricItem) GetTime() *gtime.Time {
return m.Time
}
func (m *MetricItem) GetName() string {
return m.Name
}
func (m *MetricItem) SetName(name string) {
m.Name = name
}
func (m *MetricItem) AddValue(value interface{}) {
m.Value += gconv.Float64(value)
m.Time = gtime.Now()
}
func (m *MetricItem) Inc() {
m.Value++
m.Time = gtime.Now()
}
func (m *MetricItem) Dec() {
m.Value--
m.Time = gtime.Now()
}
type MetricData struct {
MetricClientCount MetricItem `json:"clientCount"` // 当前在线数
MetricConnectedCounter MetricItem `json:"connectedCounter"` // 连接数
MetricDisconnectedCounter MetricItem `json:"disconnectedCounter"` // 断开连接数
MetricRecvPkgCount MetricItem `json:"recvPkgCount"` // 接收包数
MetricSendPkgCount MetricItem `json:"sendPkgCount"` // 发送包数
MetricRecvPkgSize MetricItem `json:"recvPkgSize"` // 接收包大小
MetricSendPkgSize MetricItem `json:"sendPkgSize"` // 发送包大小
MetricRecvPkgTime MetricItem `json:"recvPkgTime"` // 接收包时间(毫秒)
MetricSendPkgTime MetricItem `json:"sendPkgTime"` // 发送包时间(毫秒)
MetricSubTopicCount MetricItem `json:"subTopicCount"` // 订阅主题数
MetricAuthSuccessCount MetricItem `json:"authSuccessCount"` // 认证成功数
MetricAuthFailCount MetricItem `json:"authFailCount"` // 认证失败数
MetricAuthCostTime MetricItem `json:"authCostTime"` // 认证耗时
MetricUpMsgConnectCostTime MetricItem `json:"upMsgConnectCostTime"` // 上行消息连接耗时(毫秒)
MetricUpMsgDataCostTime MetricItem `json:"upMsgDataCostTime"` // 上行消息数据耗时(毫秒)
MetricUpMsgDisconnectCostTime MetricItem `json:"upMsgDisconnectCostTime"` // 上行消息断开连接耗时(毫秒)
MetricTopicCount MetricItem `json:"topicCount"` // 累计主题数
MetricProcessMemSize MetricItem `json:"processMemSize"` // 进程内存大小
MetricProcessCpuUsage MetricItem `json:"processCpuUsage"` // 进程CPU使用率
MetricProcessThreads MetricItem `json:"processThreads"` // 进程线程数
MetricProcessGoroutines MetricItem `json:"processGoroutines"` // 进程协程数
MetricSysCpuNum MetricItem `json:"sysCpuNum"` // 系统CPU数量
MetricSysCpuCores MetricItem `json:"sysCpuCores"` // 系统CPU核数
MetricSysCpuUsage MetricItem `json:"sysCpuUsage"` // 系统CPU使用率
MetricSysCpuLoad1 MetricItem `json:"sysCpuLoad1"` // 系统CPU负载1
MetricSysCpuLoad5 MetricItem `json:"sysCpuLoad5"` // 系统CPU负载2
MetricSysCpuLoad15 MetricItem `json:"sysCpuLoad15"` // 系统CPU负载3
MetricSysMemTotal MetricItem `json:"sysMemTotal"` // 系统内存总量
MetricSysMemUsage MetricItem `json:"sysMemUsage"` // 系统内存使用率
MetricSysDiskTotal MetricItem `json:"sysDiskTotal"` // 系统磁盘总量
MetricSysDiskUsage MetricItem `json:"sysDiskUsage"` // 系统磁盘使用率
MetricWaitMsgCount MetricItem `json:"waitMsgCount"` // 等待消息数量
MetricOneDeviceWaitMsgCount MetricItem `json:"oneDeviceWaitMsgCount"` // 同一个设备等待消息数量
MetricRecvMsgFailCount MetricItem `json:"recvMsgFailCount"` // 接收消息处理失败数
MetricRecvMsgWaitCostTime MetricItem `json:"recvMsgWaitCostTime"` // 接收消息等待耗时
}
type XjServerInfo struct {
NodeName string `json:"nodeName"`
SvrType int `json:"svrType"`
SvrCode string `json:"svrCode"` // 服务器编号
ShardId int64 `json:"shardId"` // 分片ID
StartTime *gtime.Time `json:"startTime"` // 启动时间
SysIpLan string `json:"sysIpLan"` // 内网IP
SysIpWan string `json:"sysIpWan"` // 外网IP
AppVersion string `json:"appVersion"` // 程序版本
TenantId string `json:"tenantId"` // 租户ID
ReportInterval int64 `json:"reportInterval"` // 上报间隔
}