mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Elasticsearch: Reintroduce log tests from frontend (#64521)
* Elasticsearch: Reintroduce log tests from frontend * Fix linting
This commit is contained in:
parent
6f67529a0a
commit
424e33146c
@ -150,7 +150,7 @@ func processLogsResponse(res *es.SearchResponse, target *Query, configuredFields
|
|||||||
|
|
||||||
frames := data.Frames{}
|
frames := data.Frames{}
|
||||||
frame := data.NewFrame("", fields...)
|
frame := data.NewFrame("", fields...)
|
||||||
setPreferredVisType(frame, "logs")
|
setPreferredVisType(frame, data.VisTypeLogs)
|
||||||
setSearchWords(frame, searchWords)
|
setSearchWords(frame, searchWords)
|
||||||
frames = append(frames, frame)
|
frames = append(frames, frame)
|
||||||
|
|
||||||
|
@ -1345,7 +1345,7 @@ func TestTwoBucketScripts(t *testing.T) {
|
|||||||
requireFloatAt(t, 48.0, fields[4], 1)
|
requireFloatAt(t, 48.0, fields[4], 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestLogsAndCount(t *testing.T) {
|
func TestLogs(t *testing.T) {
|
||||||
query := []byte(`
|
query := []byte(`
|
||||||
[
|
[
|
||||||
{
|
{
|
||||||
@ -1376,7 +1376,7 @@ func TestLogsAndCount(t *testing.T) {
|
|||||||
"_type": "_doc",
|
"_type": "_doc",
|
||||||
"_index": "mock-index",
|
"_index": "mock-index",
|
||||||
"_source": {
|
"_source": {
|
||||||
"@timestamp": "2019-06-24T09:51:19.765Z",
|
"testtime": "2019-06-24T09:51:19.765Z",
|
||||||
"host": "djisaodjsoad",
|
"host": "djisaodjsoad",
|
||||||
"number": 1,
|
"number": 1,
|
||||||
"line": "hello, i am a message",
|
"line": "hello, i am a message",
|
||||||
@ -1394,7 +1394,7 @@ func TestLogsAndCount(t *testing.T) {
|
|||||||
"_type": "_doc",
|
"_type": "_doc",
|
||||||
"_index": "mock-index",
|
"_index": "mock-index",
|
||||||
"_source": {
|
"_source": {
|
||||||
"@timestamp": "2019-06-24T09:52:19.765Z",
|
"testtime": "2019-06-24T09:52:19.765Z",
|
||||||
"host": "dsalkdakdop",
|
"host": "dsalkdakdop",
|
||||||
"number": 2,
|
"number": 2,
|
||||||
"line": "hello, i am also message",
|
"line": "hello, i am also message",
|
||||||
@ -1415,92 +1415,75 @@ func TestLogsAndCount(t *testing.T) {
|
|||||||
`)
|
`)
|
||||||
|
|
||||||
t.Run("response", func(t *testing.T) {
|
t.Run("response", func(t *testing.T) {
|
||||||
// FIXME: config datasource with messageField=<unset>, levelField=<unset>
|
|
||||||
result, err := queryDataTest(query, response)
|
result, err := queryDataTest(query, response)
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
|
|
||||||
require.Len(t, result.response.Responses, 1)
|
require.Len(t, result.response.Responses, 1)
|
||||||
frames := result.response.Responses["A"].Frames
|
frames := result.response.Responses["A"].Frames
|
||||||
// require.Len(t, frames, 2) // FIXME
|
require.Len(t, frames, 1)
|
||||||
|
|
||||||
// logsFrame := frames[0]
|
logsFrame := frames[0]
|
||||||
|
|
||||||
// m := logsFrame.Meta
|
meta := logsFrame.Meta
|
||||||
// require.Equal(t, "['hello', 'message']", m.SearchWords) // FIXME
|
require.Equal(t, map[string]interface{}{"searchWords": []string{"hello", "message"}}, meta.Custom)
|
||||||
// require.Equal(t, data.VisTypeLogs, m.PreferredVisualization) // FIXME
|
require.Equal(t, data.VisTypeLogs, string(meta.PreferredVisualization))
|
||||||
|
|
||||||
// logsFieldMap := make(map[string]*data.Field)
|
logsFieldMap := make(map[string]*data.Field)
|
||||||
// for _, field := range logsFrame.Fields {
|
for _, field := range logsFrame.Fields {
|
||||||
// logsFieldMap[field.Name] = field
|
logsFieldMap[field.Name] = field
|
||||||
// }
|
|
||||||
|
|
||||||
// require.Contains(t, logsFieldMap, "@timestamp")
|
|
||||||
// require.Equal(t, data.FieldTypeTime, logsFieldMap["@timestamp"].Type())
|
|
||||||
|
|
||||||
// require.Contains(t, logsFieldMap, "host")
|
|
||||||
// require.Equal(t, data.FieldTypeString, logsFieldMap["host"].Type())
|
|
||||||
|
|
||||||
// require.Contains(t, logsFieldMap, "message")
|
|
||||||
// require.Equal(t, data.FieldTypeString, logsFieldMap["message"].Type())
|
|
||||||
|
|
||||||
// require.Contains(t, logsFieldMap, "number")
|
|
||||||
// require.Equal(t, data.FieldTypeNullableFloat64, logsFieldMap["number"].Type())
|
|
||||||
|
|
||||||
// requireStringAt(t, "fdsfs", logsFieldMap["_id"], 0)
|
|
||||||
// requireStringAt(t, "kdospaidopa", logsFieldMap["_id"], 1)
|
|
||||||
// requireStringAt(t, "_doc", logsFieldMap["_type"], 0)
|
|
||||||
// requireStringAt(t, "_doc", logsFieldMap["_type"], 1)
|
|
||||||
// requireStringAt(t, "mock-index", logsFieldMap["_index"], 0)
|
|
||||||
// requireStringAt(t, "mock-index", logsFieldMap["_index"], 1)
|
|
||||||
|
|
||||||
// actualJson1 := logsFieldMap["_source"].At(0).(*json.RawMessage)
|
|
||||||
// actualJson2 := logsFieldMap["_source"].At(1).(*json.RawMessage)
|
|
||||||
|
|
||||||
// expectedJson1 := []byte(`
|
|
||||||
// {
|
|
||||||
// "@timestamp": "2019-06-24T09:51:19.765Z",
|
|
||||||
// "host": "djisaodjsoad",
|
|
||||||
// "number": 1,
|
|
||||||
// "message": "hello, i am a message",
|
|
||||||
// "level": "debug",
|
|
||||||
// "fields.lvl": "debug"
|
|
||||||
// }
|
|
||||||
// `)
|
|
||||||
|
|
||||||
// expectedJson2 := []byte(`
|
|
||||||
// {
|
|
||||||
// "@timestamp": "2019-06-24T09:52:19.765Z",
|
|
||||||
// "host": "dsalkdakdop",
|
|
||||||
// "number": 2,
|
|
||||||
// "message": "hello, i am also message",
|
|
||||||
// "level": "error",
|
|
||||||
// "fields.lvl": "info"
|
|
||||||
// }
|
|
||||||
// `)
|
|
||||||
|
|
||||||
// require.Equal(t, expectedJson1, actualJson1)
|
|
||||||
// require.Equal(t, expectedJson2, actualJson2)
|
|
||||||
|
|
||||||
histogramFrame := frames[len(frames)-1] // the "last" frame
|
|
||||||
|
|
||||||
histFieldMap := make(map[string]*data.Field)
|
|
||||||
for _, field := range histogramFrame.Fields {
|
|
||||||
histFieldMap[field.Name] = field
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME: the go-version uses lowercase-names, `time` and `value`
|
require.Contains(t, logsFieldMap, "testtime")
|
||||||
// t1 := histFieldMap["Time"].At(0).(time.Time)
|
require.Equal(t, data.FieldTypeNullableTime, logsFieldMap["testtime"].Type())
|
||||||
// t2 := histFieldMap["Time"].At(1).(time.Time)
|
|
||||||
|
|
||||||
// v1 := histFieldMap["Value"].At(0).(*float64)
|
require.Contains(t, logsFieldMap, "host")
|
||||||
// v2 := histFieldMap["Value"].At(1).(*float64)
|
require.Equal(t, data.FieldTypeNullableString, logsFieldMap["host"].Type())
|
||||||
|
|
||||||
// testData := make(map[int64]float64)
|
require.Contains(t, logsFieldMap, "line")
|
||||||
// testData[(t1).UnixMilli()] = *v1
|
require.Equal(t, data.FieldTypeNullableString, logsFieldMap["line"].Type())
|
||||||
// testData[(t2).UnixMilli()] = *v2
|
|
||||||
|
|
||||||
// require.Equal(t, 10.0, testData[1000])
|
require.Contains(t, logsFieldMap, "number")
|
||||||
// require.Equal(t, 15.0, testData[2000])
|
require.Equal(t, data.FieldTypeNullableFloat64, logsFieldMap["number"].Type())
|
||||||
|
|
||||||
|
require.Contains(t, logsFieldMap, "_source")
|
||||||
|
require.Equal(t, data.FieldTypeNullableJSON, logsFieldMap["_source"].Type())
|
||||||
|
|
||||||
|
requireStringAt(t, "fdsfs", logsFieldMap["_id"], 0)
|
||||||
|
requireStringAt(t, "kdospaidopa", logsFieldMap["_id"], 1)
|
||||||
|
requireStringAt(t, "_doc", logsFieldMap["_type"], 0)
|
||||||
|
requireStringAt(t, "_doc", logsFieldMap["_type"], 1)
|
||||||
|
requireStringAt(t, "mock-index", logsFieldMap["_index"], 0)
|
||||||
|
requireStringAt(t, "mock-index", logsFieldMap["_index"], 1)
|
||||||
|
|
||||||
|
actualJson1, err := json.Marshal(logsFieldMap["_source"].At(0).(*json.RawMessage))
|
||||||
|
require.NoError(t, err)
|
||||||
|
actualJson2, err := json.Marshal(logsFieldMap["_source"].At(1).(*json.RawMessage))
|
||||||
|
require.NoError(t, err)
|
||||||
|
|
||||||
|
expectedJson1 := `
|
||||||
|
{
|
||||||
|
"fields.lvl": "debug",
|
||||||
|
"host": "djisaodjsoad",
|
||||||
|
"level": "debug",
|
||||||
|
"line": "hello, i am a message",
|
||||||
|
"number": 1,
|
||||||
|
"testtime": "2019-06-24T09:51:19.765Z",
|
||||||
|
"line": "hello, i am a message"
|
||||||
|
}
|
||||||
|
`
|
||||||
|
|
||||||
|
expectedJson2 := `
|
||||||
|
{
|
||||||
|
"testtime": "2019-06-24T09:52:19.765Z",
|
||||||
|
"host": "dsalkdakdop",
|
||||||
|
"number": 2,
|
||||||
|
"line": "hello, i am also message",
|
||||||
|
"level": "error",
|
||||||
|
"fields.lvl": "info"
|
||||||
|
}`
|
||||||
|
|
||||||
|
require.JSONEq(t, expectedJson1, string(actualJson1))
|
||||||
|
require.JSONEq(t, expectedJson2, string(actualJson2))
|
||||||
})
|
})
|
||||||
|
|
||||||
t.Run("level field", func(t *testing.T) {
|
t.Run("level field", func(t *testing.T) {
|
||||||
|
Loading…
Reference in New Issue
Block a user