Loki: Remove alpha feature toggle lokiDataframeApi (#65918)

loki: remove experimental feature-flag
This commit is contained in:
Gábor Farkas
2023-04-13 15:22:09 +02:00
committed by GitHub
parent 531caec602
commit b928fce070
8 changed files with 2 additions and 119 deletions
+2 -14
View File
@@ -13,8 +13,6 @@ import (
"github.com/gorilla/websocket"
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/grafana/grafana-plugin-sdk-go/data"
"github.com/grafana/grafana/pkg/services/featuremgmt"
)
func (s *Service) SubscribeStream(_ context.Context, req *backend.SubscribeStreamRequest) (*backend.SubscribeStreamResponse, error) {
@@ -84,15 +82,9 @@ func (s *Service) RunStream(ctx context.Context, req *backend.RunStreamRequest,
params := url.Values{}
params.Add("query", query.Expr)
lokiDataframeApi := s.features.IsEnabled(featuremgmt.FlagLokiDataframeApi)
wsurl, _ := url.Parse(dsInfo.URL)
if lokiDataframeApi {
wsurl.Path = "/loki/api/v2alpha/tail"
} else {
wsurl.Path = "/loki/api/v1/tail"
}
wsurl.Path = "/loki/api/v2alpha/tail"
if wsurl.Scheme == "https" {
wsurl.Scheme = "wss"
@@ -133,11 +125,7 @@ func (s *Service) RunStream(ctx context.Context, req *backend.RunStreamRequest,
}
frame := &data.Frame{}
if !lokiDataframeApi {
frame, err = lokiBytesToLabeledFrame(message)
} else {
err = json.Unmarshal(message, &frame)
}
err = json.Unmarshal(message, &frame)
if err == nil && frame != nil {
next, _ := data.FrameToJSONCache(frame)
-52
View File
@@ -1,52 +0,0 @@
package loki
import (
"encoding/json"
"strconv"
"time"
"github.com/grafana/grafana-plugin-sdk-go/data"
)
type lokiResponse struct {
Streams []lokiStream `json:"streams"`
}
type lokiStream struct {
Stream data.Labels `json:"stream"`
Values [][2]string `json:"values"`
}
func lokiBytesToLabeledFrame(msg []byte) (*data.Frame, error) {
rsp := &lokiResponse{}
err := json.Unmarshal(msg, rsp)
if err != nil {
return nil, err
}
labelField := data.NewFieldFromFieldType(data.FieldTypeString, 0)
timeField := data.NewFieldFromFieldType(data.FieldTypeTime, 0)
lineField := data.NewFieldFromFieldType(data.FieldTypeString, 0)
labelField.Name = "__labels" // for now, avoid automatically spreading this by labels
timeField.Name = "Time"
lineField.Name = "Line"
for _, stream := range rsp.Streams {
label := stream.Stream.String() // TODO -- make it match prom labels!
for _, value := range stream.Values {
n, err := strconv.ParseInt(value[0], 10, 64)
if err != nil {
continue
}
ts := time.Unix(0, n)
line := value[1]
labelField.Append(label)
timeField.Append(ts)
lineField.Append(line)
}
}
return data.NewFrame("", labelField, timeField, lineField), nil
}
-40
View File
@@ -1,40 +0,0 @@
package loki
import (
"testing"
"github.com/stretchr/testify/require"
)
func TestLokiFramer(t *testing.T) {
t.Run("converting metric name", func(t *testing.T) {
msg := []byte(`{"streams":[
{"stream":
{"job":"node-exporter","metric":"go_memstats_heap_inuse_bytes"},
"values":[
["1642091525267322910","line1"]
]},
{"stream":
{"job":"node-exporter","metric":"go_memstats_heap_inuse_bytes"},
"values":[
["1642091525770585774","line2"],
["1642091525770585775","line3"]
]},
{"stream":
{"metric":"go_memstats_heap_inuse_bytes","job":"node-exporter"},
"values":[
["1642091526263785281","line4"]
]}
]}`)
frame, err := lokiBytesToLabeledFrame(msg)
require.NoError(t, err)
lines := frame.Fields[2]
require.Equal(t, 4, lines.Len())
require.Equal(t, "line1", lines.At(0))
require.Equal(t, "line2", lines.At(1))
require.Equal(t, "line3", lines.At(2))
require.Equal(t, "line4", lines.At(3))
})
}