InfluxDB: Backend parser compatibility with frontend parser (#69865)
* Reformatting and restructuring * Update unit test * Always send the default retention policy as first element * Fix typo * Update test * Update test once more * Field names start with capital letters * Simplify the condition * Case-insensitive checks * Fix typo * Update response_parser test * Update imports
This commit is contained in:
@@ -122,7 +122,7 @@ func transformRows(rows []Row, query Query) data.Frames {
|
||||
}
|
||||
}
|
||||
|
||||
field := data.NewField("value", nil, values)
|
||||
field := data.NewField("Value", nil, values)
|
||||
frames = append(frames, data.NewFrame(row.Name, field))
|
||||
} else {
|
||||
for colIndex, column := range row.Columns {
|
||||
@@ -169,21 +169,21 @@ func transformRows(rows []Row, query Query) data.Frames {
|
||||
|
||||
name := string(formatFrameName(row, column, query, frameName[:]))
|
||||
|
||||
timeField := data.NewField("time", nil, timeArray)
|
||||
timeField := data.NewField("Time", nil, timeArray)
|
||||
if valType == "string" {
|
||||
valueField := data.NewField("value", row.Tags, stringArray)
|
||||
valueField := data.NewField("Value", row.Tags, stringArray)
|
||||
valueField.SetConfig(&data.FieldConfig{DisplayNameFromDS: name})
|
||||
frames = append(frames, newDataFrame(name, query.RawQuery, timeField, valueField))
|
||||
} else if valType == "json.Number" {
|
||||
valueField := data.NewField("value", row.Tags, floatArray)
|
||||
valueField := data.NewField("Value", row.Tags, floatArray)
|
||||
valueField.SetConfig(&data.FieldConfig{DisplayNameFromDS: name})
|
||||
frames = append(frames, newDataFrame(name, query.RawQuery, timeField, valueField))
|
||||
} else if valType == "bool" {
|
||||
valueField := data.NewField("value", row.Tags, boolArray)
|
||||
valueField := data.NewField("Value", row.Tags, boolArray)
|
||||
valueField.SetConfig(&data.FieldConfig{DisplayNameFromDS: name})
|
||||
frames = append(frames, newDataFrame(name, query.RawQuery, timeField, valueField))
|
||||
} else if valType == "null" {
|
||||
valueField := data.NewField("value", row.Tags, floatArray)
|
||||
valueField := data.NewField("Value", row.Tags, floatArray)
|
||||
valueField.SetConfig(&data.FieldConfig{DisplayNameFromDS: name})
|
||||
frames = append(frames, newDataFrame(name, query.RawQuery, timeField, valueField))
|
||||
}
|
||||
|
||||
@@ -70,12 +70,12 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
labels, err := data.LabelsFromString("datacenter=America")
|
||||
require.Nil(t, err)
|
||||
|
||||
floatField := data.NewField("value", labels, []*float64{
|
||||
floatField := data.NewField("Value", labels, []*float64{
|
||||
util.Pointer(222.0), util.Pointer(222.0), nil,
|
||||
})
|
||||
floatField.Config = &data.FieldConfig{DisplayNameFromDS: "cpu.mean { datacenter: America }"}
|
||||
floatFrame := data.NewFrame("cpu.mean { datacenter: America }",
|
||||
data.NewField("time", nil,
|
||||
data.NewField("Time", nil,
|
||||
[]time.Time{
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 111000000, time.UTC),
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 111000000, time.UTC),
|
||||
@@ -86,12 +86,12 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
floatFrame.Meta = &data.FrameMeta{ExecutedQueryString: "Test raw query"}
|
||||
|
||||
string_test := "/usr/path"
|
||||
stringField := data.NewField("value", labels, []*string{
|
||||
stringField := data.NewField("Value", labels, []*string{
|
||||
nil, &string_test, &string_test,
|
||||
})
|
||||
stringField.Config = &data.FieldConfig{DisplayNameFromDS: "cpu.path { datacenter: America }"}
|
||||
stringFrame := data.NewFrame("cpu.path { datacenter: America }",
|
||||
data.NewField("time", nil,
|
||||
data.NewField("Time", nil,
|
||||
[]time.Time{
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 111000000, time.UTC),
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 111000000, time.UTC),
|
||||
@@ -103,12 +103,12 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
|
||||
bool_true := true
|
||||
bool_false := false
|
||||
boolField := data.NewField("value", labels, []*bool{
|
||||
boolField := data.NewField("Value", labels, []*bool{
|
||||
nil, &bool_false, &bool_true,
|
||||
})
|
||||
boolField.Config = &data.FieldConfig{DisplayNameFromDS: "cpu.isActive { datacenter: America }"}
|
||||
boolFrame := data.NewFrame("cpu.isActive { datacenter: America }",
|
||||
data.NewField("time", nil,
|
||||
data.NewField("Time", nil,
|
||||
[]time.Time{
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 111000000, time.UTC),
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 111000000, time.UTC),
|
||||
@@ -157,7 +157,7 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
|
||||
var queries []Query
|
||||
queries = append(queries, Query{RefID: "metricFindQuery"})
|
||||
newField := data.NewField("value", nil, []string{
|
||||
newField := data.NewField("Value", nil, []string{
|
||||
"cpu", "disk", "logs",
|
||||
})
|
||||
testFrame := data.NewFrame("cpu",
|
||||
@@ -196,7 +196,7 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
|
||||
var queries []Query
|
||||
queries = append(queries, Query{RawQuery: "SHOW TAG VALUES", RefID: "metricFindQuery"})
|
||||
newField := data.NewField("value", nil, []string{
|
||||
newField := data.NewField("Value", nil, []string{
|
||||
"cpu-total", "cpu0", "cpu1",
|
||||
})
|
||||
testFrame := data.NewFrame("cpu",
|
||||
@@ -296,12 +296,12 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
|
||||
query := &Query{}
|
||||
|
||||
newField := data.NewField("value", nil, []*float64{
|
||||
newField := data.NewField("Value", nil, []*float64{
|
||||
util.Pointer(50.0), nil, util.Pointer(52.0),
|
||||
})
|
||||
newField.Config = &data.FieldConfig{DisplayNameFromDS: "cpu.mean"}
|
||||
testFrame := data.NewFrame("cpu.mean",
|
||||
data.NewField("time", nil,
|
||||
data.NewField("Time", nil,
|
||||
[]time.Time{
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 100000000, time.UTC),
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 101000000, time.UTC),
|
||||
@@ -345,12 +345,12 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
|
||||
query := &Query{}
|
||||
|
||||
newField := data.NewField("value", nil, []*float64{
|
||||
newField := data.NewField("Value", nil, []*float64{
|
||||
util.Pointer(50.0), util.Pointer(52.0),
|
||||
})
|
||||
newField.Config = &data.FieldConfig{DisplayNameFromDS: "cpu.mean"}
|
||||
testFrame := data.NewFrame("cpu.mean",
|
||||
data.NewField("time", nil,
|
||||
data.NewField("Time", nil,
|
||||
[]time.Time{
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 100000000, time.UTC),
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 102000000, time.UTC),
|
||||
@@ -398,12 +398,12 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
query := &Query{Alias: "series alias"}
|
||||
labels, err := data.LabelsFromString("/cluster/name/=Cluster/, @cluster@name@=Cluster@, cluster-name=Cluster, datacenter=America, dc.region.name=Northeast")
|
||||
require.Nil(t, err)
|
||||
newField := data.NewField("value", labels, []*float64{
|
||||
newField := data.NewField("Value", labels, []*float64{
|
||||
util.Pointer(222.0),
|
||||
})
|
||||
newField.Config = &data.FieldConfig{DisplayNameFromDS: "series alias"}
|
||||
testFrame := data.NewFrame("series alias",
|
||||
data.NewField("time", nil,
|
||||
data.NewField("Time", nil,
|
||||
[]time.Time{
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 111000000, time.UTC),
|
||||
}),
|
||||
@@ -439,7 +439,7 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
}
|
||||
name = "alias sum"
|
||||
testFrame.Name = name
|
||||
newField = data.NewField("value", labels, []*float64{
|
||||
newField = data.NewField("Value", labels, []*float64{
|
||||
util.Pointer(333.0),
|
||||
})
|
||||
testFrame.Fields[1] = newField
|
||||
@@ -453,7 +453,7 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
frame = result.Responses["A"]
|
||||
name = "alias America"
|
||||
testFrame.Name = name
|
||||
newField = data.NewField("value", labels, []*float64{
|
||||
newField = data.NewField("Value", labels, []*float64{
|
||||
util.Pointer(222.0),
|
||||
})
|
||||
testFrame.Fields[1] = newField
|
||||
@@ -467,7 +467,7 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
frame = result.Responses["A"]
|
||||
name = "alias America/America"
|
||||
testFrame.Name = name
|
||||
newField = data.NewField("value", labels, []*float64{
|
||||
newField = data.NewField("Value", labels, []*float64{
|
||||
util.Pointer(222.0),
|
||||
})
|
||||
testFrame.Fields[1] = newField
|
||||
@@ -663,12 +663,12 @@ func TestInfluxdbResponseParser(t *testing.T) {
|
||||
queries = append(queries, *queryB)
|
||||
labels, err := data.LabelsFromString("datacenter=America")
|
||||
require.Nil(t, err)
|
||||
newField := data.NewField("value", labels, []*float64{
|
||||
newField := data.NewField("Value", labels, []*float64{
|
||||
util.Pointer(222.0), util.Pointer(222.0), nil,
|
||||
})
|
||||
newField.Config = &data.FieldConfig{DisplayNameFromDS: "cpu.mean { datacenter: America }"}
|
||||
testFrame := data.NewFrame("cpu.mean { datacenter: America }",
|
||||
data.NewField("time", nil,
|
||||
data.NewField("Time", nil,
|
||||
[]time.Time{
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 111000000, time.UTC),
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 111000000, time.UTC),
|
||||
@@ -792,7 +792,7 @@ func TestResponseParser_Parse_RetentionPolicy(t *testing.T) {
|
||||
var queries []Query
|
||||
queries = append(queries, Query{RefID: "metricFindQuery", RawQuery: "SHOW RETENTION POLICIES"})
|
||||
policyFrame := data.NewFrame("",
|
||||
data.NewField("value", nil, []string{
|
||||
data.NewField("Value", nil, []string{
|
||||
"bar", "autogen", "5m_avg", "1m_avg",
|
||||
}),
|
||||
)
|
||||
@@ -824,10 +824,10 @@ func TestResponseParser_Parse(t *testing.T) {
|
||||
]
|
||||
}]}]}`,
|
||||
f: func(t *testing.T, got *backend.QueryDataResponse) {
|
||||
newField := data.NewField("value", nil, []*float64{nil, nil, util.Pointer(52.0)})
|
||||
newField := data.NewField("Value", nil, []*float64{nil, nil, util.Pointer(52.0)})
|
||||
newField.Config = &data.FieldConfig{DisplayNameFromDS: "cpu.mean"}
|
||||
testFrame := data.NewFrame("cpu.mean",
|
||||
data.NewField("time", nil,
|
||||
data.NewField("Time", nil,
|
||||
[]time.Time{
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 100000000, time.UTC),
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 101000000, time.UTC),
|
||||
@@ -851,10 +851,10 @@ func TestResponseParser_Parse(t *testing.T) {
|
||||
]
|
||||
}]}]}`,
|
||||
f: func(t *testing.T, got *backend.QueryDataResponse) {
|
||||
newField := data.NewField("value", nil, []*float64{nil, nil, nil})
|
||||
newField := data.NewField("Value", nil, []*float64{nil, nil, nil})
|
||||
newField.Config = &data.FieldConfig{DisplayNameFromDS: "cpu.mean"}
|
||||
testFrame := data.NewFrame("cpu.mean",
|
||||
data.NewField("time", nil,
|
||||
data.NewField("Time", nil,
|
||||
[]time.Time{
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 100000000, time.UTC),
|
||||
time.Date(1970, 1, 1, 0, 0, 0, 101000000, time.UTC),
|
||||
|
||||
Reference in New Issue
Block a user