diff --git a/event/sdk/event.go b/event/sdk/event.go index 51486a00f3b602cfac6c37b210db2183f66f5c35..e114a165a2cf1f99f899c78aab9e841cef4c9c32 100644 --- a/event/sdk/event.go +++ b/event/sdk/event.go @@ -4,6 +4,9 @@ import ( "encoding/json" "errors" "io" + "os" + "os/signal" + "syscall" "gitee.com/openeuler/PilotGo/sdk/common" "gitee.com/openeuler/PilotGo/sdk/logger" @@ -11,6 +14,25 @@ import ( "github.com/gin-gonic/gin" ) +func UnPluginListenEventHandler() { + sig := make(chan os.Signal, 1) + signal.Notify(sig, syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT) + go func() { + logger.Info("插件监听注册goroutine已启动") + defer logger.Info("插件取消监听goroutine退出") + for { + s := <-sig + switch s { + case syscall.SIGINT, syscall.SIGTERM, syscall.SIGQUIT: + logger.Info("接收到退出信号: %s", s.String()) + UnPluginListenEvent() + os.Exit(0) + default: + logger.Info("接收到未知信号: %s", s.String()) + } + } + }() +} func RegisterEventHandlers(router *gin.Engine, c *client.Client) { api := router.Group("/plugin_manage/api/v1/") diff --git a/event/server/db/db.go b/event/server/db/db.go index 615dd56765bc64aab0d7ee6d70d89118e893c6b0..483ab060a5b0635844c42df360cbab904f9bdc77 100644 --- a/event/server/db/db.go +++ b/event/server/db/db.go @@ -1,6 +1,9 @@ package db import ( + "context" + "fmt" + influxdb2 "github.com/influxdata/influxdb-client-go/v2" "openeuler.org/PilotGo/PilotGo-plugin-event/config" ) @@ -22,3 +25,30 @@ func InfluxdbInit(conf *config.Influxd) { DBClient: c, } } + +func Query(measurement, start, end string) error { + + query := fmt.Sprintf("from(bucket:%s)|> range(start: -1h) |> filter(fn: (r) => r._measurement == %s)", InfluxDB.Bucket, measurement) + + queryAPI := InfluxDB.DBClient.QueryAPI(InfluxDB.Organization) + + result, err := queryAPI.Query(context.Background(), query) + if err != nil { + return err + } + + for result.Next() { + if result.TableChanged() { + fmt.Printf("table: %s\n", result.TableMetadata().String()) + } + + fmt.Printf("time: %v, field: %v, value: %v\n", result.Record().Time().Format("2006-01-02 15:04:05"), result.Record().Field(), result.Record().Value()) + + } + + if result.Err() != nil { + fmt.Printf("query parsing error: %s\n", result.Err().Error()) + } + + return nil +}