Commit 07c541a0 authored by Node- 门 忠鑫's avatar Node- 门 忠鑫

# 添加连续查询

parent 7d96165c
package alarm
import (
"bytes"
"git.quantgroup.cn/DevOps/enoch/service/data"
"git.quantgroup.cn/DevOps/enoch/service/log"
"github.com/influxdata/influxdb/client/v2"
)
func Query(sql string, db string) []client.Result {
con := data.NewClient()
q := client.Query{Command: sql, Database: db}
res, err := con.Query(q)
if nil != err {
logger.Error.Println("influxdb client init error", err)
}
if nil != res.Error() {
logger.Error.Println("query error", db, sql, res.Error())
}
return res.Results
}
func QueryMonitor(sql string) []client.Result {
return Query(sql, MONITOR)
}
func QuerySysName() []string {
res := QueryMonitor(SYSNAME_SQL)
var values = res[0].Series[0].Values
sysName := make([]string, 0)
for _, v := range values {
sysName = append(sysName, v[1].(string))
}
return sysName
}
func QueryHost(sysName []string) map[string][]string {
var sqlBuff bytes.Buffer
for _, name := range sysName {
sqlBuff.WriteString(HOST_SQL)
sqlBuff.WriteString("'")
sqlBuff.WriteString(name)
sqlBuff.WriteString("';")
}
res := QueryMonitor(sqlBuff.String())
nodeTree := make(map[string][]string)
for index, result := range res {
ipList := make([]string, 0)
values := result.Series[0].Values
for _, v := range values {
ipList = append(ipList, v[1].(string))
}
nodeTree[sysName[index]] = ipList
}
return nodeTree
}
...@@ -3,18 +3,19 @@ package alarm ...@@ -3,18 +3,19 @@ package alarm
import ( import (
"encoding/json" "encoding/json"
"git.quantgroup.cn/DevOps/enoch/service/conf" "git.quantgroup.cn/DevOps/enoch/service/conf"
"git.quantgroup.cn/DevOps/enoch/service/data"
"git.quantgroup.cn/DevOps/enoch/service/log" "git.quantgroup.cn/DevOps/enoch/service/log"
"io/ioutil" "io/ioutil"
) )
func Load() { func Load() {
data,err := ioutil.ReadFile(conf.GlobalConfig.StrategyConfPath) config,err := ioutil.ReadFile(conf.GlobalConfig.StrategyConfPath)
if err != nil { if err != nil {
logger.Error.Fatal("未找到配置文件") logger.Error.Fatal("未找到配置文件")
} }
strategies := make([]Strategy, 0) strategies := make([]Strategy, 0)
err = json.Unmarshal(data, &strategies) err = json.Unmarshal(config, &strategies)
if err != nil { if err != nil {
logger.Error.Fatal("策略文件格式错误:", err) logger.Error.Fatal("策略文件格式错误:", err)
...@@ -25,7 +26,7 @@ func Load() { ...@@ -25,7 +26,7 @@ func Load() {
} }
sql := BuildSql(strategies) sql := BuildSql(strategies)
result := QueryMonitor(sql) result := data.QueryMonitor(sql)
DealResult(result, strategies) DealResult(result, strategies)
} }
package continuous_queries
var (
DROP_CQ_SQL = "DROP CONTINUOUS QUERY %s ON %s"
SHOW_CQ_SQL = ""
)
func query(db string) {
}
func clear(db string) bool {
}
func delete(db string, cqName string) bool {
}
func create(sql string) {
}
package alarm package data
const ( const (
MONITOR = "monitor" MONITOR = "monitor"
......
package data package data
import ( import (
"bytes"
"git.quantgroup.cn/DevOps/enoch/service/conf" "git.quantgroup.cn/DevOps/enoch/service/conf"
"git.quantgroup.cn/DevOps/enoch/service/log" "git.quantgroup.cn/DevOps/enoch/service/log"
"github.com/influxdata/influxdb/client/v2" "github.com/influxdata/influxdb/client/v2"
...@@ -17,5 +18,57 @@ func NewClient() client.Client { ...@@ -17,5 +18,57 @@ func NewClient() client.Client {
} }
return con return con
}
func Query(sql string, db string) []client.Result {
con := NewClient()
q := client.Query{Command: sql, Database: db}
res, err := con.Query(q)
if nil != err {
logger.Error.Println("influxdb client init error", err)
}
if nil != res.Error() {
logger.Error.Println("query error", db, sql, res.Error())
}
return res.Results
}
func QueryMonitor(sql string) []client.Result {
return Query(sql, MONITOR)
}
func QuerySysName() []string {
res := QueryMonitor(SYSNAME_SQL)
var values = res[0].Series[0].Values
sysName := make([]string, 0)
for _, v := range values {
sysName = append(sysName, v[1].(string))
}
return sysName
}
func QueryHost(sysName []string) map[string][]string {
var sqlBuff bytes.Buffer
for _, name := range sysName {
sqlBuff.WriteString(HOST_SQL)
sqlBuff.WriteString("'")
sqlBuff.WriteString(name)
sqlBuff.WriteString("';")
}
res := QueryMonitor(sqlBuff.String())
nodeTree := make(map[string][]string)
for index, result := range res {
ipList := make([]string, 0)
values := result.Series[0].Values
for _, v := range values {
ipList = append(ipList, v[1].(string))
}
nodeTree[sysName[index]] = ipList
}
return nodeTree
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment