2024-08-01 15:57:28 +08:00
|
|
|
// 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"
|
2024-08-02 16:16:49 +08:00
|
|
|
"go.uber.org/zap"
|
2024-08-01 15:57:28 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// 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)
|
|
|
|
|
}
|
2024-08-02 16:16:49 +08:00
|
|
|
|
|
|
|
|
// QueryPointFromInfluxDB return the result of query from influxdb by special parameters
|
|
|
|
|
// Get query client
|
|
|
|
|
// queryAPI := client.QueryAPI(org)
|
2024-08-06 17:03:41 +08:00
|
|
|
func QueryPointFromInfluxDB(ctx context.Context, queryAPI api.QueryAPI, logger *zap.Logger) ([]interface{}, error) {
|
2024-08-02 16:16:49 +08:00
|
|
|
dataList := make([]interface{}, 0)
|
|
|
|
|
// get query result
|
2024-08-06 17:03:41 +08:00
|
|
|
// TODO 增加初始化示例
|
|
|
|
|
query := InitQueryByPara()
|
|
|
|
|
results, err := queryAPI.Query(ctx, query)
|
2024-08-02 16:16:49 +08:00
|
|
|
if err != nil {
|
2024-08-06 17:03:41 +08:00
|
|
|
logger.Error("query data by parameters failed", zap.Error(err))
|
2024-08-02 16:16:49 +08:00
|
|
|
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
|
|
|
|
|
}
|