prometheus: slightly different approach for dataplane compatibility (#65993)

This commit is contained in:
Gábor Farkas 2023-04-11 12:58:55 +02:00 committed by GitHub
parent c178cbc4dc
commit 05f7ae6c69
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 15 deletions

View File

@ -41,7 +41,7 @@ func (s *QueryData) parseResponse(ctx context.Context, q *models.Query, res *htt
if s.enableWideSeries {
addMetadataToWideFrame(q, frame)
} else {
addMetadataToMultiFrame(q, frame)
addMetadataToMultiFrame(q, frame, s.enableDataplane)
}
}
@ -102,7 +102,7 @@ func (s *QueryData) processExemplars(q *models.Query, dr backend.DataResponse) b
}
}
func addMetadataToMultiFrame(q *models.Query, frame *data.Frame) {
func addMetadataToMultiFrame(q *models.Query, frame *data.Frame, enableDataplane bool) {
if frame.Meta == nil {
frame.Meta = &data.FrameMeta{}
}
@ -110,10 +110,20 @@ func addMetadataToMultiFrame(q *models.Query, frame *data.Frame) {
if len(frame.Fields) < 2 {
return
}
frame.Name = getName(q, frame.Fields[1])
frame.Fields[0].Config = &data.FieldConfig{Interval: float64(q.Step.Milliseconds())}
if frame.Name != "" {
frame.Fields[1].Config = &data.FieldConfig{DisplayNameFromDS: frame.Name}
customName := getName(q, frame.Fields[1])
if customName != "" {
frame.Fields[1].Config = &data.FieldConfig{DisplayNameFromDS: customName}
}
if enableDataplane {
valueField := frame.Fields[1]
if n, ok := valueField.Labels["__name__"]; ok {
valueField.Name = n
}
} else {
frame.Name = customName
}
}

View File

@ -400,11 +400,6 @@ func readMatrixOrVectorWide(iter *jsoniter.Iterator, resultType string, opt Opti
switch l1Field {
case "metric":
iter.ReadVal(&valueField.Labels)
if opt.Dataplane {
if n, ok := valueField.Labels["__name__"]; ok {
valueField.Name = n
}
}
case "value":
timeMap, rowIdx = addValuePairToFrame(frame, timeMap, rowIdx, iter)
@ -503,11 +498,6 @@ func readMatrixOrVectorMulti(iter *jsoniter.Iterator, resultType string, opt Opt
switch l1Field {
case "metric":
iter.ReadVal(&valueField.Labels)
if opt.Dataplane {
if n, ok := valueField.Labels["__name__"]; ok {
valueField.Name = n
}
}
case "value":
t, v, err := readTimeValuePair(iter)