feat(testdata): lots of work on new test data data source and scenarios
This commit is contained in:
Vendored
+12
-27
@@ -1,17 +1,20 @@
|
||||
package testdata
|
||||
|
||||
import (
|
||||
"math/rand"
|
||||
|
||||
"github.com/grafana/grafana/pkg/log"
|
||||
"github.com/grafana/grafana/pkg/tsdb"
|
||||
)
|
||||
|
||||
type TestDataExecutor struct {
|
||||
*tsdb.DataSourceInfo
|
||||
log log.Logger
|
||||
}
|
||||
|
||||
func NewTestDataExecutor(dsInfo *tsdb.DataSourceInfo) tsdb.Executor {
|
||||
return &TestDataExecutor{dsInfo}
|
||||
return &TestDataExecutor{
|
||||
DataSourceInfo: dsInfo,
|
||||
log: log.New("tsdb.testdata"),
|
||||
}
|
||||
}
|
||||
|
||||
func init() {
|
||||
@@ -22,33 +25,15 @@ func (e *TestDataExecutor) Execute(queries tsdb.QuerySlice, context *tsdb.QueryC
|
||||
result := &tsdb.BatchResult{}
|
||||
result.QueryResults = make(map[string]*tsdb.QueryResult)
|
||||
|
||||
from, _ := context.TimeRange.FromTime()
|
||||
to, _ := context.TimeRange.ToTime()
|
||||
|
||||
queryRes := &tsdb.QueryResult{}
|
||||
|
||||
for _, query := range queries {
|
||||
// scenario := query.Model.Get("scenario").MustString("random_walk")
|
||||
series := &tsdb.TimeSeries{Name: "test-series-0"}
|
||||
|
||||
stepInSeconds := (to.Unix() - from.Unix()) / query.MaxDataPoints
|
||||
points := make([][2]*float64, 0)
|
||||
walker := rand.Float64() * 100
|
||||
time := from.Unix()
|
||||
|
||||
for i := int64(0); i < query.MaxDataPoints; i++ {
|
||||
timestamp := float64(time)
|
||||
val := float64(walker)
|
||||
points = append(points, [2]*float64{&val, ×tamp})
|
||||
|
||||
walker += rand.Float64() - 0.5
|
||||
time += stepInSeconds
|
||||
scenarioId := query.Model.Get("scenarioId").MustString("random_walk")
|
||||
if scenario, exist := ScenarioRegistry[scenarioId]; exist {
|
||||
result.QueryResults[query.RefId] = scenario.Handler(query, context)
|
||||
result.QueryResults[query.RefId].RefId = query.RefId
|
||||
} else {
|
||||
e.log.Error("Scenario not found", "scenarioId", scenarioId)
|
||||
}
|
||||
|
||||
series.Points = points
|
||||
queryRes.Series = append(queryRes.Series, series)
|
||||
}
|
||||
|
||||
result.QueryResults["A"] = queryRes
|
||||
return result
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user