package mainimport ( "encoding/json" "fmt" "github.com/gin-gonic/gin" client "github.com/influxdata/influxdb1-client/v2" "net/http" "os" "time")// 创立一个clientfunc ExampleClient()client.Client { // NOTE: this assumes you've setup a user and have setup shell env variables, // namely INFLUX_USER/INFLUX_PWD. If not just omit Username/Password below. cli, err := client.NewHTTPClient(client.HTTPConfig{ Addr: "http://10.xx.x5.x5:8086", Username: os.Getenv("ltx"), Password: os.Getenv("x6xxx"), }) if err != nil { fmt.Println("Error creating InfluxDB Client: ", err.Error()) } return cli}// 把数据写入influxdbfunc ExampleClient_write(cli client.Client) { // Make client c, err := client.NewHTTPClient(client.HTTPConfig{ Addr: "http://10.xx.x5.x5:8086", }) if err != nil { fmt.Println("Error creating InfluxDB Client: ", err.Error()) } defer c.Close() // Create a new point batch bp, _ := client.NewBatchPoints(client.BatchPointsConfig{ Database: "BumbleBeeTuna",//数据库名 Precision: "s",//工夫精度秒 }) // Create a point and add to batch tags := map[string]string{"cpu": "cpu-total"}//查问的索引 fields := map[string]interface{}{ "idle": 10.1, "system": 53.3, "user": 46.6, }//记录值 pt, err := client.NewPoint("cpu_usage", tags, fields, time.Now())//将创立的表名为cpu_usage的表以及内容字段放入pt if err != nil { fmt.Println("Error: ", err.Error()) } bp.AddPoint(pt)//把表放入创立的point中 // Write the batch c.Write(bp)//写入创立的client中}// 查问func ExampleClient_query(cli client.Client) []client.Result { // Make client c, err := client.NewHTTPClient(client.HTTPConfig{ Addr: "http://10.xx.x5.x5:8086", }) if err != nil { fmt.Println("Error creating InfluxDB Client: ", err.Error()) } defer c.Close() q := client.NewQuery("SELECT * FROM ipad_electricitytable where time > now() - 3m and electricity < 90 group by ip order by time desc limit 1", "ipad", "ns") if response, err := c.Query(q); err == nil && response.Error() == nil { //fmt.Println(response.Results) var lll []client.Result ll,_ := json.Marshal(response.Results) err = json.Unmarshal(ll, &lll) return lll }else { return nil }}func main() { r := gin.Default() r.GET("/test56", func(c *gin.Context) { conn := ExampleClient() mes:=ExampleClient_query(conn) c.JSON(http.StatusOK, gin.H{ "message": mes, }) }) //conn := ExampleClient() ////ExampleClient_write(conn) //ExampleClient_query(conn) r.Run() //默认在本地8080端口启动服务}