Loki: Add backend functionality to parse structured metadata from Loki (#77361)
* prepare backend for structured metadata * add `lokiStructuredMetadata` feature toggle * use `lokiStructuredMetadata` feature flag * add field type check to `labelTypesField` * remove fixme * fix feature toggle * add field in dataplane mode * use `data.Labels` where possible * adjust framing tests * improve verbiage * improve naming * update tests to "attributes"
This commit is contained in:
+13
-8
@@ -26,10 +26,11 @@ import (
|
||||
)
|
||||
|
||||
type LokiAPI struct {
|
||||
client *http.Client
|
||||
url string
|
||||
log log.Logger
|
||||
tracer tracing.Tracer
|
||||
client *http.Client
|
||||
url string
|
||||
log log.Logger
|
||||
tracer tracing.Tracer
|
||||
requestStructuredMetadata bool
|
||||
}
|
||||
|
||||
type RawLokiResponse struct {
|
||||
@@ -38,11 +39,11 @@ type RawLokiResponse struct {
|
||||
Encoding string
|
||||
}
|
||||
|
||||
func newLokiAPI(client *http.Client, url string, log log.Logger, tracer tracing.Tracer) *LokiAPI {
|
||||
return &LokiAPI{client: client, url: url, log: log, tracer: tracer}
|
||||
func newLokiAPI(client *http.Client, url string, log log.Logger, tracer tracing.Tracer, requestStructuredMetadata bool) *LokiAPI {
|
||||
return &LokiAPI{client: client, url: url, log: log, tracer: tracer, requestStructuredMetadata: requestStructuredMetadata}
|
||||
}
|
||||
|
||||
func makeDataRequest(ctx context.Context, lokiDsUrl string, query lokiQuery) (*http.Request, error) {
|
||||
func makeDataRequest(ctx context.Context, lokiDsUrl string, query lokiQuery, categorizeLabels bool) (*http.Request, error) {
|
||||
qs := url.Values{}
|
||||
qs.Set("query", query.Expr)
|
||||
|
||||
@@ -102,6 +103,10 @@ func makeDataRequest(ctx context.Context, lokiDsUrl string, query lokiQuery) (*h
|
||||
}
|
||||
}
|
||||
|
||||
if categorizeLabels {
|
||||
req.Header.Set("X-Loki-Response-Encoding-Flags", "categorize-labels")
|
||||
}
|
||||
|
||||
return req, nil
|
||||
}
|
||||
|
||||
@@ -156,7 +161,7 @@ func readLokiError(body io.ReadCloser) error {
|
||||
}
|
||||
|
||||
func (api *LokiAPI) DataQuery(ctx context.Context, query lokiQuery, responseOpts ResponseOpts) (data.Frames, error) {
|
||||
req, err := makeDataRequest(ctx, api.url, query)
|
||||
req, err := makeDataRequest(ctx, api.url, query, api.requestStructuredMetadata)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
@@ -56,16 +56,16 @@ func (mockedRT *mockedCompressedRoundTripper) RoundTrip(req *http.Request) (*htt
|
||||
}, nil
|
||||
}
|
||||
|
||||
func makeMockedAPI(statusCode int, contentType string, responseBytes []byte, requestCallback mockRequestCallback) *LokiAPI {
|
||||
return makeMockedAPIWithUrl("http://localhost:9999", statusCode, contentType, responseBytes, requestCallback)
|
||||
func makeMockedAPI(statusCode int, contentType string, responseBytes []byte, requestCallback mockRequestCallback, structuredMetadata bool) *LokiAPI {
|
||||
return makeMockedAPIWithUrl("http://localhost:9999", statusCode, contentType, responseBytes, requestCallback, structuredMetadata)
|
||||
}
|
||||
|
||||
func makeMockedAPIWithUrl(url string, statusCode int, contentType string, responseBytes []byte, requestCallback mockRequestCallback) *LokiAPI {
|
||||
func makeMockedAPIWithUrl(url string, statusCode int, contentType string, responseBytes []byte, requestCallback mockRequestCallback, structuredMetadata bool) *LokiAPI {
|
||||
client := http.Client{
|
||||
Transport: &mockedRoundTripper{statusCode: statusCode, contentType: contentType, responseBytes: responseBytes, requestCallback: requestCallback},
|
||||
}
|
||||
|
||||
return newLokiAPI(&client, url, log.New("test"), tracing.InitializeTracerForTest())
|
||||
return newLokiAPI(&client, url, log.New("test"), tracing.InitializeTracerForTest(), structuredMetadata)
|
||||
}
|
||||
|
||||
func makeCompressedMockedAPIWithUrl(url string, statusCode int, contentType string, responseBytes []byte, requestCallback mockRequestCallback) *LokiAPI {
|
||||
@@ -73,5 +73,5 @@ func makeCompressedMockedAPIWithUrl(url string, statusCode int, contentType stri
|
||||
Transport: &mockedCompressedRoundTripper{statusCode: statusCode, contentType: contentType, responseBytes: responseBytes, requestCallback: requestCallback},
|
||||
}
|
||||
|
||||
return newLokiAPI(&client, url, log.New("test"), tracing.InitializeTracerForTest())
|
||||
return newLokiAPI(&client, url, log.New("test"), tracing.InitializeTracerForTest(), false)
|
||||
}
|
||||
|
||||
@@ -26,7 +26,7 @@ func TestApiLogVolume(t *testing.T) {
|
||||
api := makeMockedAPI(200, "application/json", response, func(req *http.Request) {
|
||||
called = true
|
||||
require.Equal(t, "Source=logvolhist", req.Header.Get("X-Query-Tags"))
|
||||
})
|
||||
}, false)
|
||||
|
||||
_, err := api.DataQuery(context.Background(), lokiQuery{Expr: "", SupportingQueryType: SupportingQueryLogsVolume, QueryType: QueryTypeRange}, ResponseOpts{})
|
||||
require.NoError(t, err)
|
||||
@@ -38,7 +38,7 @@ func TestApiLogVolume(t *testing.T) {
|
||||
api := makeMockedAPI(200, "application/json", response, func(req *http.Request) {
|
||||
called = true
|
||||
require.Equal(t, "Source=logsample", req.Header.Get("X-Query-Tags"))
|
||||
})
|
||||
}, false)
|
||||
|
||||
_, err := api.DataQuery(context.Background(), lokiQuery{Expr: "", SupportingQueryType: SupportingQueryLogsSample, QueryType: QueryTypeRange}, ResponseOpts{})
|
||||
require.NoError(t, err)
|
||||
@@ -50,7 +50,7 @@ func TestApiLogVolume(t *testing.T) {
|
||||
api := makeMockedAPI(200, "application/json", response, func(req *http.Request) {
|
||||
called = true
|
||||
require.Equal(t, "Source=datasample", req.Header.Get("X-Query-Tags"))
|
||||
})
|
||||
}, false)
|
||||
|
||||
_, err := api.DataQuery(context.Background(), lokiQuery{Expr: "", SupportingQueryType: SupportingQueryDataSample, QueryType: QueryTypeRange}, ResponseOpts{})
|
||||
require.NoError(t, err)
|
||||
@@ -62,12 +62,24 @@ func TestApiLogVolume(t *testing.T) {
|
||||
api := makeMockedAPI(200, "application/json", response, func(req *http.Request) {
|
||||
called = true
|
||||
require.Equal(t, "", req.Header.Get("X-Query-Tags"))
|
||||
})
|
||||
}, false)
|
||||
|
||||
_, err := api.DataQuery(context.Background(), lokiQuery{Expr: "", SupportingQueryType: SupportingQueryNone, QueryType: QueryTypeRange}, ResponseOpts{})
|
||||
require.NoError(t, err)
|
||||
require.True(t, called)
|
||||
})
|
||||
|
||||
t.Run("with `structuredMetadata` should set correct http header", func(t *testing.T) {
|
||||
called := false
|
||||
api := makeMockedAPI(200, "application/json", response, func(req *http.Request) {
|
||||
called = true
|
||||
require.Equal(t, "categorize-labels", req.Header.Get("X-Loki-Response-Encoding-Flags"))
|
||||
}, true)
|
||||
|
||||
_, err := api.DataQuery(context.Background(), lokiQuery{Expr: "", SupportingQueryType: SupportingQueryLogsVolume, QueryType: QueryTypeRange}, ResponseOpts{})
|
||||
require.NoError(t, err)
|
||||
require.True(t, called)
|
||||
})
|
||||
}
|
||||
|
||||
func TestApiUrlHandling(t *testing.T) {
|
||||
@@ -127,7 +139,7 @@ func TestApiUrlHandling(t *testing.T) {
|
||||
wantedPrefix := test.rangeQueryPrefix
|
||||
failMessage := fmt.Sprintf(`wanted prefix: [%s], got string [%s]`, wantedPrefix, urlString)
|
||||
require.True(t, strings.HasPrefix(urlString, wantedPrefix), failMessage)
|
||||
})
|
||||
}, false)
|
||||
|
||||
query := lokiQuery{
|
||||
QueryType: QueryTypeRange,
|
||||
@@ -148,7 +160,7 @@ func TestApiUrlHandling(t *testing.T) {
|
||||
wantedPrefix := test.instantQueryPrefix
|
||||
failMessage := fmt.Sprintf(`wanted prefix: [%s], got string [%s]`, wantedPrefix, urlString)
|
||||
require.True(t, strings.HasPrefix(urlString, wantedPrefix), failMessage)
|
||||
})
|
||||
}, false)
|
||||
|
||||
query := lokiQuery{
|
||||
QueryType: QueryTypeInstant,
|
||||
@@ -166,7 +178,7 @@ func TestApiUrlHandling(t *testing.T) {
|
||||
api := makeMockedAPIWithUrl(test.dsUrl, 200, "application/json", response, func(req *http.Request) {
|
||||
called = true
|
||||
require.Equal(t, test.metaUrl, req.URL.String())
|
||||
})
|
||||
}, false)
|
||||
|
||||
_, err := api.RawQuery(context.Background(), "/loki/api/v1/labels?start=1&end=2")
|
||||
require.NoError(t, err)
|
||||
|
||||
+35
-5
@@ -93,14 +93,26 @@ func adjustLogsFrame(frame *data.Frame, query *lokiQuery, dataplane bool) error
|
||||
func adjustLegacyLogsFrame(frame *data.Frame, query *lokiQuery) error {
|
||||
// we check if the fields are of correct type and length
|
||||
fields := frame.Fields
|
||||
if len(fields) != 4 {
|
||||
return fmt.Errorf("invalid field length in logs frame. expected 4, got %d", len(fields))
|
||||
if len(fields) != 4 && len(fields) != 5 {
|
||||
return fmt.Errorf("invalid field length in logs frame. expected 4 or 5, got %d", len(fields))
|
||||
}
|
||||
|
||||
labelsField := fields[0]
|
||||
timeField := fields[1]
|
||||
lineField := fields[2]
|
||||
stringTimeField := fields[3]
|
||||
if len(fields) == 5 {
|
||||
labelTypesField := fields[4]
|
||||
if labelTypesField.Type() != data.FieldTypeJSON {
|
||||
return fmt.Errorf("invalid field types in logs frame. expected json, got %s", labelTypesField.Type())
|
||||
}
|
||||
labelTypesField.Name = "labelTypes"
|
||||
labelTypesField.Config = &data.FieldConfig{
|
||||
Custom: map[string]interface{}{
|
||||
"hidden": true,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
if (timeField.Type() != data.FieldTypeTime) || (lineField.Type() != data.FieldTypeString) || (labelsField.Type() != data.FieldTypeJSON) || (stringTimeField.Type() != data.FieldTypeString) {
|
||||
return fmt.Errorf("invalid field types in logs frame. expected time, string, json and string, got %s, %s, %s and %s", timeField.Type(), lineField.Type(), labelsField.Type(), stringTimeField.Type())
|
||||
@@ -149,14 +161,27 @@ func adjustLegacyLogsFrame(frame *data.Frame, query *lokiQuery) error {
|
||||
func adjustDataplaneLogsFrame(frame *data.Frame, query *lokiQuery) error {
|
||||
// we check if the fields are of correct type and length
|
||||
fields := frame.Fields
|
||||
if len(fields) != 4 {
|
||||
return fmt.Errorf("invalid field length in logs frame. expected 4, got %d", len(fields))
|
||||
if len(fields) != 4 && len(fields) != 5 {
|
||||
return fmt.Errorf("invalid field length in logs frame. expected 4 or 5, got %d", len(fields))
|
||||
}
|
||||
|
||||
labelsField := fields[0]
|
||||
timeField := fields[1]
|
||||
lineField := fields[2]
|
||||
stringTimeField := fields[3]
|
||||
var labelTypesField *data.Field
|
||||
if len(fields) == 5 {
|
||||
labelTypesField = fields[4]
|
||||
if labelTypesField.Type() != data.FieldTypeJSON {
|
||||
return fmt.Errorf("invalid field types in logs frame. expected json, got %s", labelTypesField.Type())
|
||||
}
|
||||
labelTypesField.Name = "labelTypes"
|
||||
labelTypesField.Config = &data.FieldConfig{
|
||||
Custom: map[string]interface{}{
|
||||
"hidden": true,
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
if (timeField.Type() != data.FieldTypeTime) || (lineField.Type() != data.FieldTypeString) || (labelsField.Type() != data.FieldTypeJSON) || (stringTimeField.Type() != data.FieldTypeString) {
|
||||
return fmt.Errorf("invalid field types in logs frame. expected time, string, json and string, got %s, %s, %s and %s", timeField.Type(), lineField.Type(), labelsField.Type(), stringTimeField.Type())
|
||||
@@ -190,7 +215,12 @@ func adjustDataplaneLogsFrame(frame *data.Frame, query *lokiQuery) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
frame.Fields = data.Fields{labelsField, timeField, lineField, idField}
|
||||
|
||||
if labelTypesField != nil {
|
||||
frame.Fields = data.Fields{labelsField, timeField, lineField, idField, labelTypesField}
|
||||
} else {
|
||||
frame.Fields = data.Fields{labelsField, timeField, lineField, idField}
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
@@ -51,6 +51,8 @@ func TestSuccessResponse(t *testing.T) {
|
||||
{name: "parse a streams response with parse errors", filepath: "streams_parse_errors", query: streamsQuery},
|
||||
|
||||
{name: "parse an empty response", filepath: "empty", query: matrixQuery},
|
||||
|
||||
{name: "parse structured metadata", filepath: "streams_structured_metadata", query: streamsQuery},
|
||||
}
|
||||
|
||||
runTest := func(folder string, path string, query lokiQuery, responseOpts ResponseOpts) {
|
||||
@@ -61,14 +63,14 @@ func TestSuccessResponse(t *testing.T) {
|
||||
bytes, err := os.ReadFile(responseFileName)
|
||||
require.NoError(t, err)
|
||||
|
||||
frames, err := runQuery(context.Background(), makeMockedAPI(http.StatusOK, "application/json", bytes, nil), &query, responseOpts, log.New("test"))
|
||||
frames, err := runQuery(context.Background(), makeMockedAPI(http.StatusOK, "application/json", bytes, nil, false), &query, responseOpts, log.New("test"))
|
||||
require.NoError(t, err)
|
||||
|
||||
dr := &backend.DataResponse{
|
||||
Frames: frames,
|
||||
Error: err,
|
||||
}
|
||||
experimental.CheckGoldenJSONResponse(t, folder, goldenFileName, dr, true)
|
||||
experimental.CheckGoldenJSONResponse(t, folder, goldenFileName, dr, false)
|
||||
}
|
||||
|
||||
for _, test := range tt {
|
||||
@@ -126,7 +128,7 @@ func TestErrorResponse(t *testing.T) {
|
||||
|
||||
for _, test := range tt {
|
||||
t.Run(test.name, func(t *testing.T) {
|
||||
frames, err := runQuery(context.Background(), makeMockedAPI(400, test.contentType, test.body, nil), &lokiQuery{QueryType: QueryTypeRange, Direction: DirectionBackward}, ResponseOpts{}, log.New("test"))
|
||||
frames, err := runQuery(context.Background(), makeMockedAPI(400, test.contentType, test.body, nil, false), &lokiQuery{QueryType: QueryTypeRange, Direction: DirectionBackward}, ResponseOpts{}, log.New("test"))
|
||||
|
||||
require.Len(t, frames, 0)
|
||||
require.Error(t, err)
|
||||
|
||||
@@ -140,7 +140,7 @@ func callResource(ctx context.Context, req *backend.CallResourceRequest, sender
|
||||
))
|
||||
defer span.End()
|
||||
|
||||
api := newLokiAPI(dsInfo.HTTPClient, dsInfo.URL, plog, tracer)
|
||||
api := newLokiAPI(dsInfo.HTTPClient, dsInfo.URL, plog, tracer, false)
|
||||
|
||||
rawLokiResponse, err := api.RawQuery(ctx, lokiURL)
|
||||
if err != nil {
|
||||
@@ -177,13 +177,13 @@ func (s *Service) QueryData(ctx context.Context, req *backend.QueryDataRequest)
|
||||
logsDataplane: s.features.IsEnabled(ctx, featuremgmt.FlagLokiLogsDataplane),
|
||||
}
|
||||
|
||||
return queryData(ctx, req, dsInfo, responseOpts, s.tracer, logger, s.features.IsEnabled(ctx, featuremgmt.FlagLokiRunQueriesInParallel))
|
||||
return queryData(ctx, req, dsInfo, responseOpts, s.tracer, logger, s.features.IsEnabled(ctx, featuremgmt.FlagLokiRunQueriesInParallel), s.features.IsEnabled(ctx, featuremgmt.FlagLokiStructuredMetadata))
|
||||
}
|
||||
|
||||
func queryData(ctx context.Context, req *backend.QueryDataRequest, dsInfo *datasourceInfo, responseOpts ResponseOpts, tracer tracing.Tracer, plog log.Logger, runInParallel bool) (*backend.QueryDataResponse, error) {
|
||||
func queryData(ctx context.Context, req *backend.QueryDataRequest, dsInfo *datasourceInfo, responseOpts ResponseOpts, tracer tracing.Tracer, plog log.Logger, runInParallel bool, requestStructuredMetadata bool) (*backend.QueryDataResponse, error) {
|
||||
result := backend.NewQueryDataResponse()
|
||||
|
||||
api := newLokiAPI(dsInfo.HTTPClient, dsInfo.URL, plog, tracer)
|
||||
api := newLokiAPI(dsInfo.HTTPClient, dsInfo.URL, plog, tracer, requestStructuredMetadata)
|
||||
|
||||
start := time.Now()
|
||||
queries, err := parseQuery(req)
|
||||
|
||||
@@ -19,7 +19,7 @@ func BenchmarkMatrixJson(b *testing.B) {
|
||||
|
||||
b.ResetTimer()
|
||||
for n := 0; n < b.N; n++ {
|
||||
_, _ = runQuery(context.Background(), makeMockedAPI(http.StatusOK, "application/json", bytes, nil), &lokiQuery{}, ResponseOpts{}, log.New("test"))
|
||||
_, _ = runQuery(context.Background(), makeMockedAPI(http.StatusOK, "application/json", bytes, nil, false), &lokiQuery{}, ResponseOpts{}, log.New("test"))
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,380 @@
|
||||
// 🌟 This was machine generated. Do not edit. 🌟
|
||||
//
|
||||
// Frame[0] {
|
||||
// "typeVersion": [
|
||||
// 0,
|
||||
// 0
|
||||
// ],
|
||||
// "custom": {
|
||||
// "frameType": "LabeledTimeValues"
|
||||
// },
|
||||
// "stats": [
|
||||
// {
|
||||
// "displayName": "Summary: bytes processed per second",
|
||||
// "unit": "Bps",
|
||||
// "value": 3507022
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: lines processed per second",
|
||||
// "value": 24818
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: total bytes processed",
|
||||
// "unit": "decbytes",
|
||||
// "value": 7772
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: total lines processed",
|
||||
// "value": 55
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: exec time",
|
||||
// "unit": "s",
|
||||
// "value": 0.002216125
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total chunks ref",
|
||||
// "value": 2
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total chunks downloaded",
|
||||
// "value": 3
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: chunks download time",
|
||||
// "unit": "s",
|
||||
// "value": 0.000390958
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: head chunk bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 4
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: head chunk lines",
|
||||
// "value": 5
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: decompressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 7772
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: decompressed lines",
|
||||
// "value": 55
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: compressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 31432
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total duplicates",
|
||||
// "value": 6
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total reached",
|
||||
// "value": 7
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total chunks matched",
|
||||
// "value": 8
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total batches",
|
||||
// "value": 9
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total lines sent",
|
||||
// "value": 10
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: head chunk bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 11
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: head chunk lines",
|
||||
// "value": 12
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: decompressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 13
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: decompressed lines",
|
||||
// "value": 14
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: compressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 15
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total duplicates",
|
||||
// "value": 16
|
||||
// }
|
||||
// ],
|
||||
// "executedQueryString": "Expr: query1"
|
||||
// }
|
||||
// Name:
|
||||
// Dimensions: 6 Fields by 6 Rows
|
||||
// +-------------------------+-----------------------------------------+------------------+---------------------+-------------------------+--------------------------------+
|
||||
// | Name: labels | Name: Time | Name: Line | Name: tsNs | Name: labelTypes | Name: id |
|
||||
// | Labels: | Labels: | Labels: | Labels: | Labels: | Labels: |
|
||||
// | Type: []json.RawMessage | Type: []time.Time | Type: []string | Type: []string | Type: []json.RawMessage | Type: []string |
|
||||
// +-------------------------+-----------------------------------------+------------------+---------------------+-------------------------+--------------------------------+
|
||||
// | {} | 2022-02-16 16:50:44.81075712 +0000 UTC | log line error 1 | 1645030244810757120 | {} | 1645030244810757120_7bc6af55 |
|
||||
// | {} | 2022-02-16 16:50:47.02773504 +0000 UTC | log line info 1 | 1645030247027735040 | {} | 1645030247027735040_2c9e69b9 |
|
||||
// | {} | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968 | {} | 1645030246277587968_b7784d5c |
|
||||
// | {} | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968 | {} | 1645030246277587968_b7784d5c_1 |
|
||||
// | {} | 2022-02-16 16:50:45.539423744 +0000 UTC | log line info 3 | 1645030245539423744 | {} | 1645030245539423744_4aee7aab |
|
||||
// | {} | 2022-02-16 16:50:44.091700992 +0000 UTC | log line info 4 | 1645030244091700992 | {} | 1645030244091700992_df059f36 |
|
||||
// +-------------------------+-----------------------------------------+------------------+---------------------+-------------------------+--------------------------------+
|
||||
//
|
||||
//
|
||||
// 🌟 This was machine generated. Do not edit. 🌟
|
||||
{
|
||||
"status": 200,
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"meta": {
|
||||
"typeVersion": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"custom": {
|
||||
"frameType": "LabeledTimeValues"
|
||||
},
|
||||
"stats": [
|
||||
{
|
||||
"displayName": "Summary: bytes processed per second",
|
||||
"unit": "Bps",
|
||||
"value": 3507022
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: lines processed per second",
|
||||
"value": 24818
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: total bytes processed",
|
||||
"unit": "decbytes",
|
||||
"value": 7772
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: total lines processed",
|
||||
"value": 55
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: exec time",
|
||||
"unit": "s",
|
||||
"value": 0.002216125
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total chunks ref",
|
||||
"value": 2
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total chunks downloaded",
|
||||
"value": 3
|
||||
},
|
||||
{
|
||||
"displayName": "Store: chunks download time",
|
||||
"unit": "s",
|
||||
"value": 0.000390958
|
||||
},
|
||||
{
|
||||
"displayName": "Store: head chunk bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 4
|
||||
},
|
||||
{
|
||||
"displayName": "Store: head chunk lines",
|
||||
"value": 5
|
||||
},
|
||||
{
|
||||
"displayName": "Store: decompressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 7772
|
||||
},
|
||||
{
|
||||
"displayName": "Store: decompressed lines",
|
||||
"value": 55
|
||||
},
|
||||
{
|
||||
"displayName": "Store: compressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 31432
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total duplicates",
|
||||
"value": 6
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total reached",
|
||||
"value": 7
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total chunks matched",
|
||||
"value": 8
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total batches",
|
||||
"value": 9
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total lines sent",
|
||||
"value": 10
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: head chunk bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 11
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: head chunk lines",
|
||||
"value": 12
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: decompressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 13
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: decompressed lines",
|
||||
"value": 14
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: compressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 15
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total duplicates",
|
||||
"value": 16
|
||||
}
|
||||
],
|
||||
"executedQueryString": "Expr: query1"
|
||||
},
|
||||
"fields": [
|
||||
{
|
||||
"name": "labels",
|
||||
"type": "other",
|
||||
"typeInfo": {
|
||||
"frame": "json.RawMessage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Time",
|
||||
"type": "time",
|
||||
"typeInfo": {
|
||||
"frame": "time.Time"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Line",
|
||||
"type": "string",
|
||||
"typeInfo": {
|
||||
"frame": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tsNs",
|
||||
"type": "string",
|
||||
"typeInfo": {
|
||||
"frame": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "labelTypes",
|
||||
"type": "other",
|
||||
"typeInfo": {
|
||||
"frame": "json.RawMessage"
|
||||
},
|
||||
"config": {
|
||||
"custom": {
|
||||
"hidden": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "id",
|
||||
"type": "string",
|
||||
"typeInfo": {
|
||||
"frame": "string"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"data": {
|
||||
"values": [
|
||||
[
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
],
|
||||
[
|
||||
1645030244810,
|
||||
1645030247027,
|
||||
1645030246277,
|
||||
1645030246277,
|
||||
1645030245539,
|
||||
1645030244091
|
||||
],
|
||||
[
|
||||
"log line error 1",
|
||||
"log line info 1",
|
||||
"log line info 2",
|
||||
"log line info 2",
|
||||
"log line info 3",
|
||||
"log line info 4"
|
||||
],
|
||||
[
|
||||
"1645030244810757120",
|
||||
"1645030247027735040",
|
||||
"1645030246277587968",
|
||||
"1645030246277587968",
|
||||
"1645030245539423744",
|
||||
"1645030244091700992"
|
||||
],
|
||||
[
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030244810757120_7bc6af55",
|
||||
"1645030247027735040_2c9e69b9",
|
||||
"1645030246277587968_b7784d5c",
|
||||
"1645030246277587968_b7784d5c_1",
|
||||
"1645030245539423744_4aee7aab",
|
||||
"1645030244091700992_df059f36"
|
||||
]
|
||||
],
|
||||
"nanos": [
|
||||
null,
|
||||
[
|
||||
757120,
|
||||
735040,
|
||||
587968,
|
||||
587968,
|
||||
423744,
|
||||
700992
|
||||
],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"status": "success",
|
||||
"data": {
|
||||
"encodingFlags": [
|
||||
"categorize-labels"
|
||||
],
|
||||
"resultType": "streams",
|
||||
"result": [
|
||||
{
|
||||
"stream": {
|
||||
"code": "one\",",
|
||||
"location": "moon🌙"
|
||||
},
|
||||
"values": [
|
||||
[
|
||||
"1645030244810757120",
|
||||
"log line error 1",
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"stream": {
|
||||
"code": "\",two",
|
||||
"location": "moon🌙"
|
||||
},
|
||||
"values": [
|
||||
[
|
||||
"1645030247027735040",
|
||||
"log line info 1",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030246277587968",
|
||||
"log line info 2",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030246277587968",
|
||||
"log line info 2",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030245539423744",
|
||||
"log line info 3",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030244091700992",
|
||||
"log line info 4",
|
||||
{}
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"stats": {
|
||||
"summary": {
|
||||
"bytesProcessedPerSecond": 3507022,
|
||||
"linesProcessedPerSecond": 24818,
|
||||
"totalBytesProcessed": 7772,
|
||||
"totalLinesProcessed": 55,
|
||||
"execTime": 0.002216125
|
||||
},
|
||||
"store": {
|
||||
"totalChunksRef": 2,
|
||||
"totalChunksDownloaded": 3,
|
||||
"chunksDownloadTime": 0.000390958,
|
||||
"headChunkBytes": 4,
|
||||
"headChunkLines": 5,
|
||||
"decompressedBytes": 7772,
|
||||
"decompressedLines": 55,
|
||||
"compressedBytes": 31432,
|
||||
"totalDuplicates": 6
|
||||
},
|
||||
"ingester": {
|
||||
"totalReached": 7,
|
||||
"totalChunksMatched": 8,
|
||||
"totalBatches": 9,
|
||||
"totalLinesSent": 10,
|
||||
"headChunkBytes": 11,
|
||||
"headChunkLines": 12,
|
||||
"decompressedBytes": 13,
|
||||
"decompressedLines": 14,
|
||||
"compressedBytes": 15,
|
||||
"totalDuplicates": 16
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,360 @@
|
||||
// 🌟 This was machine generated. Do not edit. 🌟
|
||||
//
|
||||
// Frame[0] {
|
||||
// "type": "log-lines",
|
||||
// "typeVersion": [
|
||||
// 0,
|
||||
// 0
|
||||
// ],
|
||||
// "stats": [
|
||||
// {
|
||||
// "displayName": "Summary: bytes processed per second",
|
||||
// "unit": "Bps",
|
||||
// "value": 3507022
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: lines processed per second",
|
||||
// "value": 24818
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: total bytes processed",
|
||||
// "unit": "decbytes",
|
||||
// "value": 7772
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: total lines processed",
|
||||
// "value": 55
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: exec time",
|
||||
// "unit": "s",
|
||||
// "value": 0.002216125
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total chunks ref",
|
||||
// "value": 2
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total chunks downloaded",
|
||||
// "value": 3
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: chunks download time",
|
||||
// "unit": "s",
|
||||
// "value": 0.000390958
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: head chunk bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 4
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: head chunk lines",
|
||||
// "value": 5
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: decompressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 7772
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: decompressed lines",
|
||||
// "value": 55
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: compressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 31432
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total duplicates",
|
||||
// "value": 6
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total reached",
|
||||
// "value": 7
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total chunks matched",
|
||||
// "value": 8
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total batches",
|
||||
// "value": 9
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total lines sent",
|
||||
// "value": 10
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: head chunk bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 11
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: head chunk lines",
|
||||
// "value": 12
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: decompressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 13
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: decompressed lines",
|
||||
// "value": 14
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: compressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 15
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total duplicates",
|
||||
// "value": 16
|
||||
// }
|
||||
// ],
|
||||
// "executedQueryString": "Expr: query1"
|
||||
// }
|
||||
// Name:
|
||||
// Dimensions: 5 Fields by 6 Rows
|
||||
// +-------------------------+-----------------------------------------+------------------+--------------------------------+-------------------------+
|
||||
// | Name: labels | Name: timestamp | Name: body | Name: id | Name: labelTypes |
|
||||
// | Labels: | Labels: | Labels: | Labels: | Labels: |
|
||||
// | Type: []json.RawMessage | Type: []time.Time | Type: []string | Type: []string | Type: []json.RawMessage |
|
||||
// +-------------------------+-----------------------------------------+------------------+--------------------------------+-------------------------+
|
||||
// | {} | 2022-02-16 16:50:44.81075712 +0000 UTC | log line error 1 | 1645030244810757120_7bc6af55 | {} |
|
||||
// | {} | 2022-02-16 16:50:47.02773504 +0000 UTC | log line info 1 | 1645030247027735040_2c9e69b9 | {} |
|
||||
// | {} | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968_b7784d5c | {} |
|
||||
// | {} | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968_b7784d5c_1 | {} |
|
||||
// | {} | 2022-02-16 16:50:45.539423744 +0000 UTC | log line info 3 | 1645030245539423744_4aee7aab | {} |
|
||||
// | {} | 2022-02-16 16:50:44.091700992 +0000 UTC | log line info 4 | 1645030244091700992_df059f36 | {} |
|
||||
// +-------------------------+-----------------------------------------+------------------+--------------------------------+-------------------------+
|
||||
//
|
||||
//
|
||||
// 🌟 This was machine generated. Do not edit. 🌟
|
||||
{
|
||||
"status": 200,
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"meta": {
|
||||
"type": "log-lines",
|
||||
"typeVersion": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"stats": [
|
||||
{
|
||||
"displayName": "Summary: bytes processed per second",
|
||||
"unit": "Bps",
|
||||
"value": 3507022
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: lines processed per second",
|
||||
"value": 24818
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: total bytes processed",
|
||||
"unit": "decbytes",
|
||||
"value": 7772
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: total lines processed",
|
||||
"value": 55
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: exec time",
|
||||
"unit": "s",
|
||||
"value": 0.002216125
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total chunks ref",
|
||||
"value": 2
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total chunks downloaded",
|
||||
"value": 3
|
||||
},
|
||||
{
|
||||
"displayName": "Store: chunks download time",
|
||||
"unit": "s",
|
||||
"value": 0.000390958
|
||||
},
|
||||
{
|
||||
"displayName": "Store: head chunk bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 4
|
||||
},
|
||||
{
|
||||
"displayName": "Store: head chunk lines",
|
||||
"value": 5
|
||||
},
|
||||
{
|
||||
"displayName": "Store: decompressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 7772
|
||||
},
|
||||
{
|
||||
"displayName": "Store: decompressed lines",
|
||||
"value": 55
|
||||
},
|
||||
{
|
||||
"displayName": "Store: compressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 31432
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total duplicates",
|
||||
"value": 6
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total reached",
|
||||
"value": 7
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total chunks matched",
|
||||
"value": 8
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total batches",
|
||||
"value": 9
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total lines sent",
|
||||
"value": 10
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: head chunk bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 11
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: head chunk lines",
|
||||
"value": 12
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: decompressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 13
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: decompressed lines",
|
||||
"value": 14
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: compressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 15
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total duplicates",
|
||||
"value": 16
|
||||
}
|
||||
],
|
||||
"executedQueryString": "Expr: query1"
|
||||
},
|
||||
"fields": [
|
||||
{
|
||||
"name": "labels",
|
||||
"type": "other",
|
||||
"typeInfo": {
|
||||
"frame": "json.RawMessage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "timestamp",
|
||||
"type": "time",
|
||||
"typeInfo": {
|
||||
"frame": "time.Time"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "body",
|
||||
"type": "string",
|
||||
"typeInfo": {
|
||||
"frame": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "id",
|
||||
"type": "string",
|
||||
"typeInfo": {
|
||||
"frame": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "labelTypes",
|
||||
"type": "other",
|
||||
"typeInfo": {
|
||||
"frame": "json.RawMessage"
|
||||
},
|
||||
"config": {
|
||||
"custom": {
|
||||
"hidden": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"data": {
|
||||
"values": [
|
||||
[
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
],
|
||||
[
|
||||
1645030244810,
|
||||
1645030247027,
|
||||
1645030246277,
|
||||
1645030246277,
|
||||
1645030245539,
|
||||
1645030244091
|
||||
],
|
||||
[
|
||||
"log line error 1",
|
||||
"log line info 1",
|
||||
"log line info 2",
|
||||
"log line info 2",
|
||||
"log line info 3",
|
||||
"log line info 4"
|
||||
],
|
||||
[
|
||||
"1645030244810757120_7bc6af55",
|
||||
"1645030247027735040_2c9e69b9",
|
||||
"1645030246277587968_b7784d5c",
|
||||
"1645030246277587968_b7784d5c_1",
|
||||
"1645030245539423744_4aee7aab",
|
||||
"1645030244091700992_df059f36"
|
||||
],
|
||||
[
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
],
|
||||
"nanos": [
|
||||
null,
|
||||
[
|
||||
757120,
|
||||
735040,
|
||||
587968,
|
||||
587968,
|
||||
423744,
|
||||
700992
|
||||
],
|
||||
null,
|
||||
null,
|
||||
null
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"status": "success",
|
||||
"data": {
|
||||
"encodingFlags": [
|
||||
"categorize-labels"
|
||||
],
|
||||
"resultType": "streams",
|
||||
"result": [
|
||||
{
|
||||
"stream": {
|
||||
"code": "one\",",
|
||||
"location": "moon🌙"
|
||||
},
|
||||
"values": [
|
||||
[
|
||||
"1645030244810757120",
|
||||
"log line error 1",
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"stream": {
|
||||
"code": "\",two",
|
||||
"location": "moon🌙"
|
||||
},
|
||||
"values": [
|
||||
[
|
||||
"1645030247027735040",
|
||||
"log line info 1",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030246277587968",
|
||||
"log line info 2",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030246277587968",
|
||||
"log line info 2",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030245539423744",
|
||||
"log line info 3",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030244091700992",
|
||||
"log line info 4",
|
||||
{}
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"stats": {
|
||||
"summary": {
|
||||
"bytesProcessedPerSecond": 3507022,
|
||||
"linesProcessedPerSecond": 24818,
|
||||
"totalBytesProcessed": 7772,
|
||||
"totalLinesProcessed": 55,
|
||||
"execTime": 0.002216125
|
||||
},
|
||||
"store": {
|
||||
"totalChunksRef": 2,
|
||||
"totalChunksDownloaded": 3,
|
||||
"chunksDownloadTime": 0.000390958,
|
||||
"headChunkBytes": 4,
|
||||
"headChunkLines": 5,
|
||||
"decompressedBytes": 7772,
|
||||
"decompressedLines": 55,
|
||||
"compressedBytes": 31432,
|
||||
"totalDuplicates": 6
|
||||
},
|
||||
"ingester": {
|
||||
"totalReached": 7,
|
||||
"totalChunksMatched": 8,
|
||||
"totalBatches": 9,
|
||||
"totalLinesSent": 10,
|
||||
"headChunkBytes": 11,
|
||||
"headChunkLines": 12,
|
||||
"decompressedBytes": 13,
|
||||
"decompressedLines": 14,
|
||||
"compressedBytes": 15,
|
||||
"totalDuplicates": 16
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,360 @@
|
||||
// 🌟 This was machine generated. Do not edit. 🌟
|
||||
//
|
||||
// Frame[0] {
|
||||
// "type": "log-lines",
|
||||
// "typeVersion": [
|
||||
// 0,
|
||||
// 0
|
||||
// ],
|
||||
// "stats": [
|
||||
// {
|
||||
// "displayName": "Summary: bytes processed per second",
|
||||
// "unit": "Bps",
|
||||
// "value": 3507022
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: lines processed per second",
|
||||
// "value": 24818
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: total bytes processed",
|
||||
// "unit": "decbytes",
|
||||
// "value": 7772
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: total lines processed",
|
||||
// "value": 55
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: exec time",
|
||||
// "unit": "s",
|
||||
// "value": 0.002216125
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total chunks ref",
|
||||
// "value": 2
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total chunks downloaded",
|
||||
// "value": 3
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: chunks download time",
|
||||
// "unit": "s",
|
||||
// "value": 0.000390958
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: head chunk bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 4
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: head chunk lines",
|
||||
// "value": 5
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: decompressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 7772
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: decompressed lines",
|
||||
// "value": 55
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: compressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 31432
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total duplicates",
|
||||
// "value": 6
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total reached",
|
||||
// "value": 7
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total chunks matched",
|
||||
// "value": 8
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total batches",
|
||||
// "value": 9
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total lines sent",
|
||||
// "value": 10
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: head chunk bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 11
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: head chunk lines",
|
||||
// "value": 12
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: decompressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 13
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: decompressed lines",
|
||||
// "value": 14
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: compressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 15
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total duplicates",
|
||||
// "value": 16
|
||||
// }
|
||||
// ],
|
||||
// "executedQueryString": "Expr: query1"
|
||||
// }
|
||||
// Name:
|
||||
// Dimensions: 5 Fields by 6 Rows
|
||||
// +-------------------------+-----------------------------------------+------------------+--------------------------------+-------------------------+
|
||||
// | Name: labels | Name: timestamp | Name: body | Name: id | Name: labelTypes |
|
||||
// | Labels: | Labels: | Labels: | Labels: | Labels: |
|
||||
// | Type: []json.RawMessage | Type: []time.Time | Type: []string | Type: []string | Type: []json.RawMessage |
|
||||
// +-------------------------+-----------------------------------------+------------------+--------------------------------+-------------------------+
|
||||
// | {} | 2022-02-16 16:50:44.81075712 +0000 UTC | log line error 1 | 1645030244810757120_7bc6af55 | {} |
|
||||
// | {} | 2022-02-16 16:50:47.02773504 +0000 UTC | log line info 1 | 1645030247027735040_2c9e69b9 | {} |
|
||||
// | {} | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968_b7784d5c | {} |
|
||||
// | {} | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968_b7784d5c_1 | {} |
|
||||
// | {} | 2022-02-16 16:50:45.539423744 +0000 UTC | log line info 3 | 1645030245539423744_4aee7aab | {} |
|
||||
// | {} | 2022-02-16 16:50:44.091700992 +0000 UTC | log line info 4 | 1645030244091700992_df059f36 | {} |
|
||||
// +-------------------------+-----------------------------------------+------------------+--------------------------------+-------------------------+
|
||||
//
|
||||
//
|
||||
// 🌟 This was machine generated. Do not edit. 🌟
|
||||
{
|
||||
"status": 200,
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"meta": {
|
||||
"type": "log-lines",
|
||||
"typeVersion": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"stats": [
|
||||
{
|
||||
"displayName": "Summary: bytes processed per second",
|
||||
"unit": "Bps",
|
||||
"value": 3507022
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: lines processed per second",
|
||||
"value": 24818
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: total bytes processed",
|
||||
"unit": "decbytes",
|
||||
"value": 7772
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: total lines processed",
|
||||
"value": 55
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: exec time",
|
||||
"unit": "s",
|
||||
"value": 0.002216125
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total chunks ref",
|
||||
"value": 2
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total chunks downloaded",
|
||||
"value": 3
|
||||
},
|
||||
{
|
||||
"displayName": "Store: chunks download time",
|
||||
"unit": "s",
|
||||
"value": 0.000390958
|
||||
},
|
||||
{
|
||||
"displayName": "Store: head chunk bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 4
|
||||
},
|
||||
{
|
||||
"displayName": "Store: head chunk lines",
|
||||
"value": 5
|
||||
},
|
||||
{
|
||||
"displayName": "Store: decompressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 7772
|
||||
},
|
||||
{
|
||||
"displayName": "Store: decompressed lines",
|
||||
"value": 55
|
||||
},
|
||||
{
|
||||
"displayName": "Store: compressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 31432
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total duplicates",
|
||||
"value": 6
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total reached",
|
||||
"value": 7
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total chunks matched",
|
||||
"value": 8
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total batches",
|
||||
"value": 9
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total lines sent",
|
||||
"value": 10
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: head chunk bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 11
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: head chunk lines",
|
||||
"value": 12
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: decompressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 13
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: decompressed lines",
|
||||
"value": 14
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: compressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 15
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total duplicates",
|
||||
"value": 16
|
||||
}
|
||||
],
|
||||
"executedQueryString": "Expr: query1"
|
||||
},
|
||||
"fields": [
|
||||
{
|
||||
"name": "labels",
|
||||
"type": "other",
|
||||
"typeInfo": {
|
||||
"frame": "json.RawMessage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "timestamp",
|
||||
"type": "time",
|
||||
"typeInfo": {
|
||||
"frame": "time.Time"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "body",
|
||||
"type": "string",
|
||||
"typeInfo": {
|
||||
"frame": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "id",
|
||||
"type": "string",
|
||||
"typeInfo": {
|
||||
"frame": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "labelTypes",
|
||||
"type": "other",
|
||||
"typeInfo": {
|
||||
"frame": "json.RawMessage"
|
||||
},
|
||||
"config": {
|
||||
"custom": {
|
||||
"hidden": true
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"data": {
|
||||
"values": [
|
||||
[
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
],
|
||||
[
|
||||
1645030244810,
|
||||
1645030247027,
|
||||
1645030246277,
|
||||
1645030246277,
|
||||
1645030245539,
|
||||
1645030244091
|
||||
],
|
||||
[
|
||||
"log line error 1",
|
||||
"log line info 1",
|
||||
"log line info 2",
|
||||
"log line info 2",
|
||||
"log line info 3",
|
||||
"log line info 4"
|
||||
],
|
||||
[
|
||||
"1645030244810757120_7bc6af55",
|
||||
"1645030247027735040_2c9e69b9",
|
||||
"1645030246277587968_b7784d5c",
|
||||
"1645030246277587968_b7784d5c_1",
|
||||
"1645030245539423744_4aee7aab",
|
||||
"1645030244091700992_df059f36"
|
||||
],
|
||||
[
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{},
|
||||
{}
|
||||
]
|
||||
],
|
||||
"nanos": [
|
||||
null,
|
||||
[
|
||||
757120,
|
||||
735040,
|
||||
587968,
|
||||
587968,
|
||||
423744,
|
||||
700992
|
||||
],
|
||||
null,
|
||||
null,
|
||||
null
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,89 @@
|
||||
{
|
||||
"status": "success",
|
||||
"data": {
|
||||
"encodingFlags": [
|
||||
"categorize-labels"
|
||||
],
|
||||
"resultType": "streams",
|
||||
"result": [
|
||||
{
|
||||
"stream": {
|
||||
"code": "one\",",
|
||||
"location": "moon🌙"
|
||||
},
|
||||
"values": [
|
||||
[
|
||||
"1645030244810757120",
|
||||
"log line error 1",
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"stream": {
|
||||
"code": "\",two",
|
||||
"location": "moon🌙"
|
||||
},
|
||||
"values": [
|
||||
[
|
||||
"1645030247027735040",
|
||||
"log line info 1",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030246277587968",
|
||||
"log line info 2",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030246277587968",
|
||||
"log line info 2",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030245539423744",
|
||||
"log line info 3",
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030244091700992",
|
||||
"log line info 4",
|
||||
{}
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"stats": {
|
||||
"summary": {
|
||||
"bytesProcessedPerSecond": 3507022,
|
||||
"linesProcessedPerSecond": 24818,
|
||||
"totalBytesProcessed": 7772,
|
||||
"totalLinesProcessed": 55,
|
||||
"execTime": 0.002216125
|
||||
},
|
||||
"store": {
|
||||
"totalChunksRef": 2,
|
||||
"totalChunksDownloaded": 3,
|
||||
"chunksDownloadTime": 0.000390958,
|
||||
"headChunkBytes": 4,
|
||||
"headChunkLines": 5,
|
||||
"decompressedBytes": 7772,
|
||||
"decompressedLines": 55,
|
||||
"compressedBytes": 31432,
|
||||
"totalDuplicates": 6
|
||||
},
|
||||
"ingester": {
|
||||
"totalReached": 7,
|
||||
"totalChunksMatched": 8,
|
||||
"totalBatches": 9,
|
||||
"totalLinesSent": 10,
|
||||
"headChunkBytes": 11,
|
||||
"headChunkLines": 12,
|
||||
"decompressedBytes": 13,
|
||||
"decompressedLines": 14,
|
||||
"compressedBytes": 15,
|
||||
"totalDuplicates": 16
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,348 @@
|
||||
// 🌟 This was machine generated. Do not edit. 🌟
|
||||
//
|
||||
// Frame[0] {
|
||||
// "typeVersion": [
|
||||
// 0,
|
||||
// 0
|
||||
// ],
|
||||
// "custom": {
|
||||
// "frameType": "LabeledTimeValues"
|
||||
// },
|
||||
// "stats": [
|
||||
// {
|
||||
// "displayName": "Summary: bytes processed per second",
|
||||
// "unit": "Bps",
|
||||
// "value": 3507022
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: lines processed per second",
|
||||
// "value": 24818
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: total bytes processed",
|
||||
// "unit": "decbytes",
|
||||
// "value": 7772
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: total lines processed",
|
||||
// "value": 55
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Summary: exec time",
|
||||
// "unit": "s",
|
||||
// "value": 0.002216125
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total chunks ref",
|
||||
// "value": 2
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total chunks downloaded",
|
||||
// "value": 3
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: chunks download time",
|
||||
// "unit": "s",
|
||||
// "value": 0.000390958
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: head chunk bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 4
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: head chunk lines",
|
||||
// "value": 5
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: decompressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 7772
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: decompressed lines",
|
||||
// "value": 55
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: compressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 31432
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Store: total duplicates",
|
||||
// "value": 6
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total reached",
|
||||
// "value": 7
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total chunks matched",
|
||||
// "value": 8
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total batches",
|
||||
// "value": 9
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total lines sent",
|
||||
// "value": 10
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: head chunk bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 11
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: head chunk lines",
|
||||
// "value": 12
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: decompressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 13
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: decompressed lines",
|
||||
// "value": 14
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: compressed bytes",
|
||||
// "unit": "decbytes",
|
||||
// "value": 15
|
||||
// },
|
||||
// {
|
||||
// "displayName": "Ingester: total duplicates",
|
||||
// "value": 16
|
||||
// }
|
||||
// ],
|
||||
// "executedQueryString": "Expr: query1"
|
||||
// }
|
||||
// Name:
|
||||
// Dimensions: 6 Fields by 2 Rows
|
||||
// +-------------------------+----------------------------------------+------------------+---------------------+-------------------------+------------------------------+
|
||||
// | Name: labels | Name: Time | Name: Line | Name: tsNs | Name: labelTypes | Name: id |
|
||||
// | Labels: | Labels: | Labels: | Labels: | Labels: | Labels: |
|
||||
// | Type: []json.RawMessage | Type: []time.Time | Type: []string | Type: []string | Type: []json.RawMessage | Type: []string |
|
||||
// +-------------------------+----------------------------------------+------------------+---------------------+-------------------------+------------------------------+
|
||||
// | {} | 2022-02-16 16:50:44.81075712 +0000 UTC | log line error 1 | 1645030244810757120 | {} | 1645030244810757120_7bc6af55 |
|
||||
// | {} | 2022-02-16 16:50:47.02773504 +0000 UTC | log line info 1 | 1645030247027735040 | {} | 1645030247027735040_2c9e69b9 |
|
||||
// +-------------------------+----------------------------------------+------------------+---------------------+-------------------------+------------------------------+
|
||||
//
|
||||
//
|
||||
// 🌟 This was machine generated. Do not edit. 🌟
|
||||
{
|
||||
"status": 200,
|
||||
"frames": [
|
||||
{
|
||||
"schema": {
|
||||
"meta": {
|
||||
"typeVersion": [
|
||||
0,
|
||||
0
|
||||
],
|
||||
"custom": {
|
||||
"frameType": "LabeledTimeValues"
|
||||
},
|
||||
"stats": [
|
||||
{
|
||||
"displayName": "Summary: bytes processed per second",
|
||||
"unit": "Bps",
|
||||
"value": 3507022
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: lines processed per second",
|
||||
"value": 24818
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: total bytes processed",
|
||||
"unit": "decbytes",
|
||||
"value": 7772
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: total lines processed",
|
||||
"value": 55
|
||||
},
|
||||
{
|
||||
"displayName": "Summary: exec time",
|
||||
"unit": "s",
|
||||
"value": 0.002216125
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total chunks ref",
|
||||
"value": 2
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total chunks downloaded",
|
||||
"value": 3
|
||||
},
|
||||
{
|
||||
"displayName": "Store: chunks download time",
|
||||
"unit": "s",
|
||||
"value": 0.000390958
|
||||
},
|
||||
{
|
||||
"displayName": "Store: head chunk bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 4
|
||||
},
|
||||
{
|
||||
"displayName": "Store: head chunk lines",
|
||||
"value": 5
|
||||
},
|
||||
{
|
||||
"displayName": "Store: decompressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 7772
|
||||
},
|
||||
{
|
||||
"displayName": "Store: decompressed lines",
|
||||
"value": 55
|
||||
},
|
||||
{
|
||||
"displayName": "Store: compressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 31432
|
||||
},
|
||||
{
|
||||
"displayName": "Store: total duplicates",
|
||||
"value": 6
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total reached",
|
||||
"value": 7
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total chunks matched",
|
||||
"value": 8
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total batches",
|
||||
"value": 9
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total lines sent",
|
||||
"value": 10
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: head chunk bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 11
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: head chunk lines",
|
||||
"value": 12
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: decompressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 13
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: decompressed lines",
|
||||
"value": 14
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: compressed bytes",
|
||||
"unit": "decbytes",
|
||||
"value": 15
|
||||
},
|
||||
{
|
||||
"displayName": "Ingester: total duplicates",
|
||||
"value": 16
|
||||
}
|
||||
],
|
||||
"executedQueryString": "Expr: query1"
|
||||
},
|
||||
"fields": [
|
||||
{
|
||||
"name": "labels",
|
||||
"type": "other",
|
||||
"typeInfo": {
|
||||
"frame": "json.RawMessage"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Time",
|
||||
"type": "time",
|
||||
"typeInfo": {
|
||||
"frame": "time.Time"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Line",
|
||||
"type": "string",
|
||||
"typeInfo": {
|
||||
"frame": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "tsNs",
|
||||
"type": "string",
|
||||
"typeInfo": {
|
||||
"frame": "string"
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "labelTypes",
|
||||
"type": "other",
|
||||
"typeInfo": {
|
||||
"frame": "json.RawMessage"
|
||||
},
|
||||
"config": {
|
||||
"custom": {
|
||||
"hidden": true
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "id",
|
||||
"type": "string",
|
||||
"typeInfo": {
|
||||
"frame": "string"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"data": {
|
||||
"values": [
|
||||
[
|
||||
{},
|
||||
{}
|
||||
],
|
||||
[
|
||||
1645030244810,
|
||||
1645030247027
|
||||
],
|
||||
[
|
||||
"log line error 1",
|
||||
"log line info 1"
|
||||
],
|
||||
[
|
||||
"1645030244810757120",
|
||||
"1645030247027735040"
|
||||
],
|
||||
[
|
||||
{},
|
||||
{}
|
||||
],
|
||||
[
|
||||
"1645030244810757120_7bc6af55",
|
||||
"1645030247027735040_2c9e69b9"
|
||||
]
|
||||
],
|
||||
"nanos": [
|
||||
null,
|
||||
[
|
||||
757120,
|
||||
735040
|
||||
],
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,69 @@
|
||||
{
|
||||
"status": "success",
|
||||
"data": {
|
||||
"encodingFlags": [
|
||||
"categorize-labels"
|
||||
],
|
||||
"resultType": "streams",
|
||||
"result": [
|
||||
{
|
||||
"stream": {
|
||||
"code": "one\",",
|
||||
"location": "moon🌙"
|
||||
},
|
||||
"values": [
|
||||
[
|
||||
"1645030244810757120",
|
||||
"log line error 1",
|
||||
{}
|
||||
]
|
||||
]
|
||||
},
|
||||
{
|
||||
"stream": {
|
||||
"code": "\",two",
|
||||
"location": "moon🌙"
|
||||
},
|
||||
"values": [
|
||||
[
|
||||
"1645030247027735040",
|
||||
"log line info 1",
|
||||
{}
|
||||
]
|
||||
]
|
||||
}
|
||||
],
|
||||
"stats": {
|
||||
"summary": {
|
||||
"bytesProcessedPerSecond": 3507022,
|
||||
"linesProcessedPerSecond": 24818,
|
||||
"totalBytesProcessed": 7772,
|
||||
"totalLinesProcessed": 55,
|
||||
"execTime": 0.002216125
|
||||
},
|
||||
"store": {
|
||||
"totalChunksRef": 2,
|
||||
"totalChunksDownloaded": 3,
|
||||
"chunksDownloadTime": 0.000390958,
|
||||
"headChunkBytes": 4,
|
||||
"headChunkLines": 5,
|
||||
"decompressedBytes": 7772,
|
||||
"decompressedLines": 55,
|
||||
"compressedBytes": 31432,
|
||||
"totalDuplicates": 6
|
||||
},
|
||||
"ingester": {
|
||||
"totalReached": 7,
|
||||
"totalChunksMatched": 8,
|
||||
"totalBatches": 9,
|
||||
"totalLinesSent": 10,
|
||||
"headChunkBytes": 11,
|
||||
"headChunkLines": 12,
|
||||
"decompressedBytes": 13,
|
||||
"decompressedLines": 14,
|
||||
"compressedBytes": 15,
|
||||
"totalDuplicates": 16
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user