loki: generate dataplane-compliant logs dataframes (behind feature flag) (#69909)
* add feature flag * prepare tests * enable dataplane-format in loki-backend
This commit is contained in:
+46
-17
@@ -77,9 +77,7 @@ func TestAdjustFrame(t *testing.T) {
|
||||
verifyFrame := func(frame *data.Frame) {
|
||||
fields := frame.Fields
|
||||
|
||||
require.Equal(t, 5, len(fields))
|
||||
|
||||
idField := fields[4]
|
||||
idField := fields[len(fields)-1]
|
||||
require.Equal(t, "id", idField.Name)
|
||||
require.Equal(t, data.FieldTypeString, idField.Type())
|
||||
require.Equal(t, 4, idField.Len())
|
||||
@@ -91,12 +89,22 @@ func TestAdjustFrame(t *testing.T) {
|
||||
|
||||
frame := makeFrame()
|
||||
|
||||
err := adjustFrame(frame, query, true)
|
||||
err := adjustFrame(frame, query, true, false)
|
||||
require.NoError(t, err)
|
||||
verifyFrame(frame)
|
||||
|
||||
frame = makeFrame() // we need to reset the frame, because adjustFrame mutates it
|
||||
err = adjustFrame(frame, query, false)
|
||||
err = adjustFrame(frame, query, false, false)
|
||||
require.NoError(t, err)
|
||||
verifyFrame(frame)
|
||||
|
||||
frame = makeFrame() // we need to reset the frame, because adjustFrame mutates it
|
||||
err = adjustFrame(frame, query, true, true)
|
||||
require.NoError(t, err)
|
||||
verifyFrame(frame)
|
||||
|
||||
frame = makeFrame() // we need to reset the frame, because adjustFrame mutates it
|
||||
err = adjustFrame(frame, query, false, true)
|
||||
require.NoError(t, err)
|
||||
verifyFrame(frame)
|
||||
})
|
||||
@@ -112,6 +120,13 @@ func TestAdjustFrame(t *testing.T) {
|
||||
return frame
|
||||
}
|
||||
|
||||
verifyFrame := func(frame *data.Frame, expectedFrameName string) {
|
||||
require.Equal(t, frame.Name, expectedFrameName)
|
||||
require.Equal(t, frame.Meta.ExecutedQueryString, "Expr: up(ALERTS)\nStep: 42s")
|
||||
require.Equal(t, frame.Fields[0].Config.Interval, float64(42000))
|
||||
require.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "legend Application")
|
||||
}
|
||||
|
||||
query := &lokiQuery{
|
||||
Expr: "up(ALERTS)",
|
||||
QueryType: QueryTypeRange,
|
||||
@@ -120,22 +135,28 @@ func TestAdjustFrame(t *testing.T) {
|
||||
}
|
||||
|
||||
frame := makeFrame()
|
||||
err := adjustFrame(frame, query, true)
|
||||
err := adjustFrame(frame, query, true, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, frame.Name, "legend Application")
|
||||
require.Equal(t, frame.Meta.ExecutedQueryString, "Expr: up(ALERTS)\nStep: 42s")
|
||||
require.Equal(t, frame.Fields[0].Config.Interval, float64(42000))
|
||||
require.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "legend Application")
|
||||
verifyFrame(frame, "legend Application")
|
||||
|
||||
frame = makeFrame()
|
||||
err = adjustFrame(frame, query, false)
|
||||
err = adjustFrame(frame, query, false, false)
|
||||
require.NoError(t, err)
|
||||
|
||||
require.Equal(t, frame.Name, "")
|
||||
require.Equal(t, frame.Meta.ExecutedQueryString, "Expr: up(ALERTS)\nStep: 42s")
|
||||
require.Equal(t, frame.Fields[0].Config.Interval, float64(42000))
|
||||
require.Equal(t, frame.Fields[1].Config.DisplayNameFromDS, "legend Application")
|
||||
verifyFrame(frame, "")
|
||||
|
||||
frame = makeFrame()
|
||||
err = adjustFrame(frame, query, true, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
verifyFrame(frame, "legend Application")
|
||||
|
||||
frame = makeFrame()
|
||||
err = adjustFrame(frame, query, false, true)
|
||||
require.NoError(t, err)
|
||||
|
||||
verifyFrame(frame, "")
|
||||
})
|
||||
|
||||
t.Run("should set interval-attribute in response", func(t *testing.T) {
|
||||
@@ -167,11 +188,19 @@ func TestAdjustFrame(t *testing.T) {
|
||||
|
||||
frame := makeFrame()
|
||||
|
||||
err := adjustFrame(frame, query, true)
|
||||
err := adjustFrame(frame, query, true, false)
|
||||
require.NoError(t, err)
|
||||
verifyFrame(frame)
|
||||
|
||||
err = adjustFrame(frame, query, false)
|
||||
err = adjustFrame(frame, query, false, false)
|
||||
require.NoError(t, err)
|
||||
verifyFrame(frame)
|
||||
|
||||
err = adjustFrame(frame, query, true, true)
|
||||
require.NoError(t, err)
|
||||
verifyFrame(frame)
|
||||
|
||||
err = adjustFrame(frame, query, false, true)
|
||||
require.NoError(t, err)
|
||||
verifyFrame(frame)
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user