From 6471a280e4d2818bacab50846288a4c9464fd082 Mon Sep 17 00:00:00 2001 From: zhanghan2021 Date: Tue, 30 Jul 2024 19:45:46 +0800 Subject: [PATCH] Plugin registration to cancel listening and add db query function --- event/sdk/event.go | 22 ++++++++++++++++++++++ event/server/db/db.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 52 insertions(+) diff --git a/event/sdk/event.go b/event/sdk/event.go index 51486a00..e114a165 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 615dd567..483ab060 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 +} -- Gitee