// Package database define database operation functions package database import ( "context" "time" influxdb2 "github.com/influxdata/influxdb-client-go/v2" "github.com/influxdata/influxdb-client-go/v2/api" "go.uber.org/zap" ) // WriterPointIntoInfluxDB return the result of storing point into influxdb func WriterPointIntoInfluxDB(ctx context.Context, writeAPI api.WriteAPIBlocking, measurement string, tags map[string]string, fields map[string]interface{}) error { // TODO 增加api创建示例 // aPI := client.WriteAPIBlocking("my-org", "my-bucket") point := influxdb2.NewPoint(measurement, tags, fields, time.Now()) return writeAPI.WritePoint(ctx, point) } // QueryPointFromInfluxDB return the result of query from influxdb by special parameters // Get query client // queryAPI := client.QueryAPI(org) func QueryPointFromInfluxDB(ctx context.Context, queryAPI api.QueryAPI, logger *zap.Logger) ([]interface{}, error) { dataList := make([]interface{}, 0) // get query result // TODO 增加初始化示例 query := InitQueryByPara() results, err := queryAPI.Query(ctx, query) if err != nil { logger.Error("query data by parameters failed", zap.Error(err)) return nil, err } for results.Next() { if results.TableChanged() { logger.Info("find new result table", zap.String("table_metadata", results.TableMetadata().String())) continue } dataList = append(dataList, results.Record().Value()) } if results.Err() != nil { logger.Error("query parsing error failed", zap.Error(results.Err())) return nil, results.Err() } return nil, nil }