mirror of
https://gitee.com/XM-GO/PandaX.git
synced 2026-04-23 02:48:34 +08:00
[feat]添加规则引擎debug功能
This commit is contained in:
@@ -8,14 +8,6 @@ import (
|
||||
"time"
|
||||
)
|
||||
|
||||
const (
|
||||
TIME_TYPE_PROP = "telemetry"
|
||||
TIME_TYPE_ATRE = "attributes"
|
||||
TIME_TYPE_LOGS = "logs"
|
||||
TIME_TYPE_ALARM = "alarm"
|
||||
TIME_TYPE_EVENT = "event"
|
||||
)
|
||||
|
||||
type TdEngine struct {
|
||||
db *sql.DB
|
||||
dbName string
|
||||
|
||||
@@ -2,10 +2,10 @@ package tdengine
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/kakuilan/kgo"
|
||||
"strings"
|
||||
)
|
||||
|
||||
const connectTableName = "device_connect"
|
||||
|
||||
type ConnectInfo struct {
|
||||
Ts string `json:"ts"`
|
||||
ClientID string `json:"clientId"`
|
||||
@@ -18,26 +18,12 @@ type ConnectInfo struct {
|
||||
|
||||
// CreateEventTable 创建设备连接事件表
|
||||
func (s *TdEngine) CreateEventTable() (err error) {
|
||||
sql := fmt.Sprintf(`CREATE TABLE IF NOT EXISTS %s.device_connect (ts TIMESTAMP,deviceId NCHAR(64),
|
||||
type NCHAR(64),clientId NCHAR(64),peerHost NCHAR(64),sockPort NCHAR(64),protocol NCHAR(64))`, s.dbName)
|
||||
sql := fmt.Sprintf(`CREATE TABLE IF NOT EXISTS %s.%s (ts TIMESTAMP,deviceId NCHAR(64),
|
||||
type NCHAR(64),clientId NCHAR(64),peerHost NCHAR(64),sockPort NCHAR(64),protocol NCHAR(64))`, s.dbName, connectTableName)
|
||||
_, err = s.db.Exec(sql)
|
||||
return
|
||||
}
|
||||
|
||||
func (s *TdEngine) InsertEvent(data map[string]any) (err error) {
|
||||
if len(data) == 0 {
|
||||
return
|
||||
}
|
||||
var (
|
||||
field = []string{}
|
||||
value = []string{}
|
||||
)
|
||||
for k, v := range data {
|
||||
field = append(field, k)
|
||||
value = append(value, "'"+kgo.KConv.ToStr(v)+"'")
|
||||
}
|
||||
|
||||
sql := "INSERT INTO ? (?) VALUES (?)"
|
||||
_, err = s.db.Exec(sql, "device_connect", strings.Join(field, ","), strings.Join(value, ","))
|
||||
return err
|
||||
return s.InsertDevice(connectTableName, data)
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@ package tdengine
|
||||
|
||||
import "time"
|
||||
|
||||
const logTableName = "device_log"
|
||||
|
||||
// CreateLogStable 添加LOG超级表
|
||||
func (s *TdEngine) CreateLogStable() (err error) {
|
||||
var name string
|
||||
|
||||
18
pkg/tdengine/tdengine_rule_debug.go
Normal file
18
pkg/tdengine/tdengine_rule_debug.go
Normal file
@@ -0,0 +1,18 @@
|
||||
package tdengine
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
)
|
||||
|
||||
const debugTableName = "device_rule_debug"
|
||||
|
||||
func (s *TdEngine) CreateDeviceRuleDebugTable() (err error) {
|
||||
sql := fmt.Sprintf(`CREATE TABLE IF NOT EXISTS %s.%s (ts TIMESTAMP,nodeId NCHAR(64),msgd NCHAR(64),debugType NCHAR(64),
|
||||
deviceName NCHAR(64),msgType NCHAR(64),msg VARCHAR,metadata VARCHAR,error VARCHAR)`, s.dbName, debugTableName)
|
||||
_, err = s.db.Exec(sql)
|
||||
return
|
||||
}
|
||||
|
||||
func (s *TdEngine) InsertRuleDebug(data map[string]any) (err error) {
|
||||
return s.InsertDevice(debugTableName, data)
|
||||
}
|
||||
Reference in New Issue
Block a user