mirror of
https://github.com/grafana/grafana.git
synced 2025-02-11 16:15:42 -06:00
46 lines
1.1 KiB
Go
46 lines
1.1 KiB
Go
package exemplar_test
|
|
|
|
import (
|
|
"testing"
|
|
"time"
|
|
|
|
"github.com/grafana/grafana-plugin-sdk-go/experimental"
|
|
|
|
"github.com/grafana/grafana/pkg/tsdb/prometheus/models"
|
|
"github.com/grafana/grafana/pkg/tsdb/prometheus/querydata/exemplar"
|
|
)
|
|
|
|
const update = true
|
|
|
|
func TestNoOpSampler(t *testing.T) {
|
|
sampler := exemplar.NewNoOpSampler().(*exemplar.NoOpSampler)
|
|
t.Run("no-op sampler", func(t *testing.T) {
|
|
tr := models.TimeRange{
|
|
Start: time.Unix(0, 0),
|
|
End: time.Unix(2000, 0),
|
|
}
|
|
ex := generateTestExemplars(tr)
|
|
for i := 0; i < len(ex); i++ {
|
|
sampler.Add(ex[i])
|
|
}
|
|
framer := exemplar.NewFramer(sampler, exemplar.NewLabelTracker())
|
|
experimental.CheckGoldenJSONFramer(t, "testdata", "noop_sampler", framer, update)
|
|
})
|
|
}
|
|
|
|
func generateTestExemplars(tr models.TimeRange) []models.Exemplar {
|
|
exemplars := []models.Exemplar{}
|
|
next := tr.Start.UTC()
|
|
for {
|
|
if next.Equal(tr.End) || next.After(tr.End) {
|
|
break
|
|
}
|
|
exemplars = append(exemplars, models.Exemplar{
|
|
Timestamp: next,
|
|
Value: float64(next.Unix()),
|
|
})
|
|
next = next.Add(time.Second).UTC()
|
|
}
|
|
return exemplars
|
|
}
|