Converter: use streaming JSON parser to construct frames from loki/prometheus responses (#44520)

This commit is contained in:
Ryan McKinley
2022-04-04 17:22:14 -07:00
committed by GitHub
parent b5f2f3e710
commit 110d4661d7
26 changed files with 1826 additions and 0 deletions

386
pkg/util/converter/prom.go Normal file
View File

@@ -0,0 +1,386 @@
package converter
import (
"fmt"
"strconv"
"time"
"github.com/grafana/grafana-plugin-sdk-go/backend"
"github.com/grafana/grafana-plugin-sdk-go/data"
jsoniter "github.com/json-iterator/go"
)
// helpful while debugging all the options that may appear
func logf(format string, a ...interface{}) {
//fmt.Printf(format, a...)
}
// ReadPrometheusStyleResult will read results from a prometheus or loki server and return data frames
func ReadPrometheusStyleResult(iter *jsoniter.Iterator) *backend.DataResponse {
var rsp *backend.DataResponse
status := "unknown"
for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() {
switch l1Field {
case "status":
status = iter.ReadString()
case "data":
rsp = readPrometheusData(iter)
// case "error":
// case "errorType":
// case "warnings":
default:
v := iter.Read()
logf("[ROOT] TODO, support key: %s / %v\n", l1Field, v)
}
}
if status != "success" {
logf("ERROR: %s\n", status)
}
return rsp
}
func readPrometheusData(iter *jsoniter.Iterator) *backend.DataResponse {
t := iter.WhatIsNext()
if t == jsoniter.ArrayValue {
return readArrayData(iter)
}
if t != jsoniter.ObjectValue {
return &backend.DataResponse{
Error: fmt.Errorf("expected object type"),
}
}
resultType := ""
var rsp *backend.DataResponse
for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() {
switch l1Field {
case "resultType":
resultType = iter.ReadString()
case "result":
switch resultType {
case "matrix":
rsp = readMatrixOrVector(iter)
case "vector":
rsp = readMatrixOrVector(iter)
case "streams":
rsp = readStream(iter)
default:
iter.Skip()
rsp = &backend.DataResponse{
Error: fmt.Errorf("unknown result type: %s", resultType),
}
}
case "stats":
v := iter.Read()
if len(rsp.Frames) > 0 {
meta := rsp.Frames[0].Meta
if meta == nil {
meta = &data.FrameMeta{}
rsp.Frames[0].Meta = meta
}
meta.Custom = map[string]interface{}{
"stats": v,
}
}
default:
v := iter.Read()
logf("[data] TODO, support key: %s / %v\n", l1Field, v)
}
}
return rsp
}
// will return strings or exemplars
func readArrayData(iter *jsoniter.Iterator) *backend.DataResponse {
lookup := make(map[string]*data.Field)
var labelFrame *data.Frame
rsp := &backend.DataResponse{}
stringField := data.NewFieldFromFieldType(data.FieldTypeString, 0)
stringField.Name = "Value"
for iter.ReadArray() {
switch iter.WhatIsNext() {
case jsoniter.StringValue:
stringField.Append(iter.ReadString())
// Either label or exemplars
case jsoniter.ObjectValue:
exemplar, labelPairs := readLabelsOrExemplars(iter)
if exemplar != nil {
rsp.Frames = append(rsp.Frames, exemplar)
} else if labelPairs != nil {
max := 0
for _, pair := range labelPairs {
k := pair[0]
v := pair[1]
f, ok := lookup[k]
if !ok {
f = data.NewFieldFromFieldType(data.FieldTypeString, 0)
f.Name = k
lookup[k] = f
if labelFrame == nil {
labelFrame = data.NewFrame("")
rsp.Frames = append(rsp.Frames, labelFrame)
}
labelFrame.Fields = append(labelFrame.Fields, f)
}
f.Append(fmt.Sprintf("%v", v))
if f.Len() > max {
max = f.Len()
}
}
// Make sure all fields have equal length
for _, f := range lookup {
diff := max - f.Len()
if diff > 0 {
f.Extend(diff)
}
}
}
default:
{
ext := iter.ReadAny()
v := fmt.Sprintf("%v", ext)
stringField.Append(v)
}
}
}
if rsp.Frames == nil || stringField.Len() > 0 {
rsp.Frames = append(rsp.Frames, data.NewFrame("", stringField))
}
return rsp
}
// For consistent ordering read values to an array not a map
func readLabelsAsPairs(iter *jsoniter.Iterator) [][2]string {
pairs := make([][2]string, 0, 10)
for k := iter.ReadObject(); k != ""; k = iter.ReadObject() {
pairs = append(pairs, [2]string{k, iter.ReadString()})
}
return pairs
}
func readLabelsOrExemplars(iter *jsoniter.Iterator) (*data.Frame, [][2]string) {
pairs := make([][2]string, 0, 10)
labels := data.Labels{}
var frame *data.Frame
for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() {
switch l1Field {
case "seriesLabels":
iter.ReadVal(&labels)
case "exemplars":
lookup := make(map[string]*data.Field)
timeField := data.NewFieldFromFieldType(data.FieldTypeTime, 0)
valueField := data.NewFieldFromFieldType(data.FieldTypeFloat64, 0)
valueField.Name = labels["__name__"]
delete(labels, "__name__")
valueField.Labels = labels
frame = data.NewFrame("", timeField, valueField)
for iter.ReadArray() {
for l2Field := iter.ReadObject(); l2Field != ""; l2Field = iter.ReadObject() {
switch l2Field {
// nolint:goconst
case "value":
v, _ := strconv.ParseFloat(iter.ReadString(), 64)
valueField.Append(v)
case "timestamp":
ts := timeFromFloat(iter.ReadFloat64())
timeField.Append(ts)
case "labels":
max := 0
for _, pair := range readLabelsAsPairs(iter) {
k := pair[0]
v := pair[1]
f, ok := lookup[k]
if !ok {
f = data.NewFieldFromFieldType(data.FieldTypeString, 0)
f.Name = k
lookup[k] = f
frame.Fields = append(frame.Fields, f)
}
f.Append(v)
if f.Len() > max {
max = f.Len()
}
}
// Make sure all fields have equal length
for _, f := range lookup {
diff := max - f.Len()
if diff > 0 {
f.Extend(diff)
}
}
default:
iter.Skip()
frame.AppendNotices(data.Notice{
Severity: data.NoticeSeverityError,
Text: fmt.Sprintf("unable to parse key: %s in response body", l2Field),
})
}
}
}
default:
v := fmt.Sprintf("%v", iter.Read())
pairs = append(pairs, [2]string{l1Field, v})
}
}
return frame, pairs
}
func readMatrixOrVector(iter *jsoniter.Iterator) *backend.DataResponse {
rsp := &backend.DataResponse{}
for iter.ReadArray() {
timeField := data.NewFieldFromFieldType(data.FieldTypeTime, 0)
timeField.Name = data.TimeSeriesTimeFieldName
valueField := data.NewFieldFromFieldType(data.FieldTypeFloat64, 0)
valueField.Labels = data.Labels{}
for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() {
switch l1Field {
case "metric":
iter.ReadVal(&valueField.Labels)
case "value":
t, v, err := readTimeValuePair(iter)
if err == nil {
timeField.Append(t)
valueField.Append(v)
}
// nolint:goconst
case "values":
for iter.ReadArray() {
t, v, err := readTimeValuePair(iter)
if err == nil {
timeField.Append(t)
valueField.Append(v)
}
}
}
}
name, ok := valueField.Labels["__name__"]
if ok {
valueField.Name = name
delete(valueField.Labels, "__name__")
} else {
valueField.Name = data.TimeSeriesValueFieldName
}
frame := data.NewFrame("", timeField, valueField)
frame.Meta = &data.FrameMeta{
Type: data.FrameTypeTimeSeriesMany,
}
rsp.Frames = append(rsp.Frames, frame)
}
return rsp
}
func readTimeValuePair(iter *jsoniter.Iterator) (time.Time, float64, error) {
iter.ReadArray()
t := iter.ReadFloat64()
iter.ReadArray()
v := iter.ReadString()
iter.ReadArray()
tt := timeFromFloat(t)
fv, err := strconv.ParseFloat(v, 64)
return tt, fv, err
}
func readStream(iter *jsoniter.Iterator) *backend.DataResponse {
rsp := &backend.DataResponse{}
labelsField := data.NewFieldFromFieldType(data.FieldTypeString, 0)
labelsField.Name = "__labels" // avoid automatically spreading this by labels
timeField := data.NewFieldFromFieldType(data.FieldTypeTime, 0)
timeField.Name = "Time"
lineField := data.NewFieldFromFieldType(data.FieldTypeString, 0)
lineField.Name = "Line"
// Nanoseconds time field
tsField := data.NewFieldFromFieldType(data.FieldTypeString, 0)
tsField.Name = "TS"
labels := data.Labels{}
labelString := labels.String()
for iter.ReadArray() {
for l1Field := iter.ReadObject(); l1Field != ""; l1Field = iter.ReadObject() {
switch l1Field {
case "stream":
iter.ReadVal(&labels)
labelString = labels.String()
case "values":
for iter.ReadArray() {
iter.ReadArray()
ts := iter.ReadString()
iter.ReadArray()
line := iter.ReadString()
iter.ReadArray()
t := timeFromLokiString(ts)
labelsField.Append(labelString)
timeField.Append(t)
lineField.Append(line)
tsField.Append(ts)
}
}
}
}
frame := data.NewFrame("", labelsField, timeField, lineField, tsField)
frame.Meta = &data.FrameMeta{}
rsp.Frames = append(rsp.Frames, frame)
return rsp
}
func timeFromFloat(fv float64) time.Time {
return time.UnixMilli(int64(fv * 1000.0)).UTC()
}
func timeFromLokiString(str string) time.Time {
// normal time values look like: 1645030246277587968
// and are less than: math.MaxInt65=9223372036854775807
// This will do a fast path for any date before 2033
s := len(str)
if s < 19 || (s == 19 && str[0] == '1') {
ns, err := strconv.ParseInt(str, 10, 64)
if err == nil {
return time.Unix(0, ns).UTC()
}
}
ss, _ := strconv.ParseInt(str[0:10], 10, 64)
ns, _ := strconv.ParseInt(str[10:], 10, 64)
return time.Unix(ss, ns).UTC()
}

View File

@@ -0,0 +1,83 @@
package converter
import (
"io/ioutil"
"os"
"path"
"testing"
"time"
"github.com/grafana/grafana-plugin-sdk-go/experimental"
jsoniter "github.com/json-iterator/go"
"github.com/stretchr/testify/assert"
"github.com/stretchr/testify/require"
)
func TestReadPromFrames(t *testing.T) {
files := []string{
"prom-labels",
"prom-matrix",
"prom-matrix-with-nans",
"prom-vector",
"prom-series",
"prom-exemplars",
"loki-streams-a",
"loki-streams-b",
}
for _, name := range files {
t.Run(name, func(t *testing.T) {
// nolint:gosec
// We can ignore the gosec G304 because this is a test with static defined paths
f, err := os.Open(path.Join("testdata", name+".json"))
require.NoError(t, err)
iter := jsoniter.Parse(jsoniter.ConfigDefault, f, 1024)
rsp := ReadPrometheusStyleResult(iter)
out, err := jsoniter.MarshalIndent(rsp, "", " ")
require.NoError(t, err)
save := false
fpath := path.Join("testdata", name+"-frame.json")
// nolint:gosec
// We can ignore the gosec G304 because this is a test with static defined paths
current, err := ioutil.ReadFile(fpath)
if err == nil {
same := assert.JSONEq(t, string(out), string(current))
if !same {
save = true
}
} else {
assert.Fail(t, "missing file: "+fpath)
save = true
}
if save {
err = os.WriteFile(fpath, out, 0600)
require.NoError(t, err)
}
fpath = path.Join("testdata", name+"-golden.txt")
err = experimental.CheckGoldenDataResponse(fpath, rsp, true)
assert.NoError(t, err)
})
}
}
func TestTimeConversions(t *testing.T) {
// include millisecond precision
assert.Equal(t,
time.Date(2020, time.September, 14, 15, 22, 25, 479000000, time.UTC),
timeFromFloat(1600096945.479))
// Loki date parsing
assert.Equal(t,
time.Date(2022, time.February, 16, 16, 50, 46, 277587968, time.UTC),
timeFromLokiString("1645030246277587968"))
assert.Equal(t,
time.Date(2033, time.May, 18, 3, 33, 20, 0, time.UTC),
timeFromLokiString("2000000000000000000"))
}

View File

@@ -0,0 +1,90 @@
{
"frames": [
{
"schema": {
"meta": {
"custom": {
"stats": {
"ingester": {
"totalChunksMatched": 0,
"totalBatches": 0,
"totalLinesSent": 0,
"headChunkBytes": 0,
"headChunkLines": 0,
"decompressedLines": 0,
"compressedBytes": 0,
"totalReached": 0,
"totalDuplicates": 0,
"decompressedBytes": 0
},
"summary": {
"bytesProcessedPerSecond": 3507022,
"linesProcessedPerSecond": 24818,
"totalBytesProcessed": 7772,
"totalLinesProcessed": 55,
"execTime": 0.002216125
},
"store": {
"totalChunksDownloaded": 2,
"headChunkBytes": 0,
"decompressedLines": 55,
"totalDuplicates": 0,
"totalChunksRef": 2,
"headChunkLines": 0,
"decompressedBytes": 7772,
"compressedBytes": 31432,
"chunksDownloadTime": 0.000390958
}
}
}
},
"fields": [
{
"name": "__labels",
"type": "string",
"typeInfo": {
"frame": "string"
}
},
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "Line",
"type": "string",
"typeInfo": {
"frame": "string"
}
},
{
"name": "TS",
"type": "string",
"typeInfo": {
"frame": "string"
}
}
]
},
"data": {
"values": [
[
"level=error, location=moon🌙","level=info, location=moon🌙","level=info, location=moon🌙","level=info, location=moon🌙","level=info, location=moon🌙","level=info, location=moon🌙"
],
[
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"
]
]
}
}
]
}

View File

@@ -0,0 +1,56 @@
🌟 This was machine generated. Do not edit. 🌟
Frame[0] {
"custom": {
"stats": {
"ingester": {
"compressedBytes": 0,
"decompressedBytes": 0,
"decompressedLines": 0,
"headChunkBytes": 0,
"headChunkLines": 0,
"totalBatches": 0,
"totalChunksMatched": 0,
"totalDuplicates": 0,
"totalLinesSent": 0,
"totalReached": 0
},
"store": {
"chunksDownloadTime": 0.000390958,
"compressedBytes": 31432,
"decompressedBytes": 7772,
"decompressedLines": 55,
"headChunkBytes": 0,
"headChunkLines": 0,
"totalChunksDownloaded": 2,
"totalChunksRef": 2,
"totalDuplicates": 0
},
"summary": {
"bytesProcessedPerSecond": 3507022,
"execTime": 0.002216125,
"linesProcessedPerSecond": 24818,
"totalBytesProcessed": 7772,
"totalLinesProcessed": 55
}
}
}
}
Name:
Dimensions: 4 Fields by 6 Rows
+------------------------------+-----------------------------------------+------------------+---------------------+
| Name: __labels | Name: Time | Name: Line | Name: TS |
| Labels: | Labels: | Labels: | Labels: |
| Type: []string | Type: []time.Time | Type: []string | Type: []string |
+------------------------------+-----------------------------------------+------------------+---------------------+
| level=error, location=moon🌙 | 2022-02-16 16:50:44.81075712 +0000 UTC | log line error 1 | 1645030244810757120 |
| level=info, location=moon🌙 | 2022-02-16 16:50:47.02773504 +0000 UTC | log line info 1 | 1645030247027735040 |
| level=info, location=moon🌙 | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968 |
| level=info, location=moon🌙 | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968 |
| level=info, location=moon🌙 | 2022-02-16 16:50:45.539423744 +0000 UTC | log line info 3 | 1645030245539423744 |
| level=info, location=moon🌙 | 2022-02-16 16:50:44.091700992 +0000 UTC | log line info 4 | 1645030244091700992 |
+------------------------------+-----------------------------------------+------------------+---------------------+
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=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

View File

@@ -0,0 +1,81 @@
{
"status": "success",
"data": {
"resultType": "streams",
"result": [
{
"stream": {
"level": "error",
"location": "moon🌙"
},
"values": [
[
"1645030244810757120",
"log line error 1"
]
]
},
{
"stream": {
"level": "info",
"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": 2,
"chunksDownloadTime": 0.000390958,
"headChunkBytes": 0,
"headChunkLines": 0,
"decompressedBytes": 7772,
"decompressedLines": 55,
"compressedBytes": 31432,
"totalDuplicates": 0
},
"ingester": {
"totalReached": 0,
"totalChunksMatched": 0,
"totalBatches": 0,
"totalLinesSent": 0,
"headChunkBytes": 0,
"headChunkLines": 0,
"decompressedBytes": 0,
"decompressedLines": 0,
"compressedBytes": 0,
"totalDuplicates": 0
}
}
}
}

View File

@@ -0,0 +1,90 @@
{
"frames": [
{
"schema": {
"meta": {
"custom": {
"stats": {
"summary": {
"execTime": 0.002216125,
"bytesProcessedPerSecond": 3507022,
"linesProcessedPerSecond": 24818,
"totalBytesProcessed": 7772,
"totalLinesProcessed": 55
},
"store": {
"headChunkBytes": 0,
"decompressedLines": 55,
"compressedBytes": 31432,
"totalDuplicates": 0,
"totalChunksDownloaded": 2,
"chunksDownloadTime": 0.000390958,
"headChunkLines": 0,
"decompressedBytes": 7772,
"totalChunksRef": 2
},
"ingester": {
"headChunkBytes": 0,
"decompressedBytes": 0,
"totalBatches": 0,
"totalLinesSent": 0,
"headChunkLines": 0,
"decompressedLines": 0,
"compressedBytes": 0,
"totalDuplicates": 0,
"totalReached": 0,
"totalChunksMatched": 0
}
}
}
},
"fields": [
{
"name": "__labels",
"type": "string",
"typeInfo": {
"frame": "string"
}
},
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "Line",
"type": "string",
"typeInfo": {
"frame": "string"
}
},
{
"name": "TS",
"type": "string",
"typeInfo": {
"frame": "string"
}
}
]
},
"data": {
"values": [
[
"level=error, location=moon","level=info, location=moon","level=info, location=moon","level=info, location=moon","level=info, location=moon"
],
[
1645030244810,1645030247027,1645030246277,1645030245539,1645030244091
],
[
"log line error 1","log line info 1","log line info 2","log line info 3","log line info 4"
],
[
"1645030244810757120","1645030247027735040","1645030246277587968","1645030245539423744","1645030244091700992"
]
]
}
}
]
}

View File

@@ -0,0 +1,55 @@
🌟 This was machine generated. Do not edit. 🌟
Frame[0] {
"custom": {
"stats": {
"ingester": {
"compressedBytes": 0,
"decompressedBytes": 0,
"decompressedLines": 0,
"headChunkBytes": 0,
"headChunkLines": 0,
"totalBatches": 0,
"totalChunksMatched": 0,
"totalDuplicates": 0,
"totalLinesSent": 0,
"totalReached": 0
},
"store": {
"chunksDownloadTime": 0.000390958,
"compressedBytes": 31432,
"decompressedBytes": 7772,
"decompressedLines": 55,
"headChunkBytes": 0,
"headChunkLines": 0,
"totalChunksDownloaded": 2,
"totalChunksRef": 2,
"totalDuplicates": 0
},
"summary": {
"bytesProcessedPerSecond": 3507022,
"execTime": 0.002216125,
"linesProcessedPerSecond": 24818,
"totalBytesProcessed": 7772,
"totalLinesProcessed": 55
}
}
}
}
Name:
Dimensions: 4 Fields by 5 Rows
+----------------------------+-----------------------------------------+------------------+---------------------+
| Name: __labels | Name: Time | Name: Line | Name: TS |
| Labels: | Labels: | Labels: | Labels: |
| Type: []string | Type: []time.Time | Type: []string | Type: []string |
+----------------------------+-----------------------------------------+------------------+---------------------+
| level=error, location=moon | 2022-02-16 16:50:44.81075712 +0000 UTC | log line error 1 | 1645030244810757120 |
| level=info, location=moon | 2022-02-16 16:50:47.02773504 +0000 UTC | log line info 1 | 1645030247027735040 |
| level=info, location=moon | 2022-02-16 16:50:46.277587968 +0000 UTC | log line info 2 | 1645030246277587968 |
| level=info, location=moon | 2022-02-16 16:50:45.539423744 +0000 UTC | log line info 3 | 1645030245539423744 |
| level=info, location=moon | 2022-02-16 16:50:44.091700992 +0000 UTC | log line info 4 | 1645030244091700992 |
+----------------------------+-----------------------------------------+------------------+---------------------+
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=QVJST1cxAAD/////oAQAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAANACAAADAAAATAAAACgAAAAEAAAA9Pv//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAAU/P//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAADT8//8IAAAAaAIAAFwCAAB7ImN1c3RvbSI6eyJzdGF0cyI6eyJpbmdlc3RlciI6eyJjb21wcmVzc2VkQnl0ZXMiOjAsImRlY29tcHJlc3NlZEJ5dGVzIjowLCJkZWNvbXByZXNzZWRMaW5lcyI6MCwiaGVhZENodW5rQnl0ZXMiOjAsImhlYWRDaHVua0xpbmVzIjowLCJ0b3RhbEJhdGNoZXMiOjAsInRvdGFsQ2h1bmtzTWF0Y2hlZCI6MCwidG90YWxEdXBsaWNhdGVzIjowLCJ0b3RhbExpbmVzU2VudCI6MCwidG90YWxSZWFjaGVkIjowfSwic3RvcmUiOnsiY2h1bmtzRG93bmxvYWRUaW1lIjowLjAwMDM5MDk1OCwiY29tcHJlc3NlZEJ5dGVzIjozMTQzMiwiZGVjb21wcmVzc2VkQnl0ZXMiOjc3NzIsImRlY29tcHJlc3NlZExpbmVzIjo1NSwiaGVhZENodW5rQnl0ZXMiOjAsImhlYWRDaHVua0xpbmVzIjowLCJ0b3RhbENodW5rc0Rvd25sb2FkZWQiOjIsInRvdGFsQ2h1bmtzUmVmIjoyLCJ0b3RhbER1cGxpY2F0ZXMiOjB9LCJzdW1tYXJ5Ijp7ImJ5dGVzUHJvY2Vzc2VkUGVyU2Vjb25kIjozNTA3MDIyLCJleGVjVGltZSI6MC4wMDIyMTYxMjUsImxpbmVzUHJvY2Vzc2VkUGVyU2Vjb25kIjoyNDgxOCwidG90YWxCeXRlc1Byb2Nlc3NlZCI6Nzc3MiwidG90YWxMaW5lc1Byb2Nlc3NlZCI6NTV9fX19AAAAAAQAAABtZXRhAAAAAAQAAAAsAQAAtAAAAFgAAAAEAAAA9v7//xQAAAA4AAAAOAAAAAAAAAU0AAAAAQAAAAQAAADk/v//CAAAAAwAAAACAAAAVFMAAAQAAABuYW1lAAAAAAAAAADU/v//AgAAAFRTAABG////FAAAADwAAAA8AAAAAAAABTgAAAABAAAABAAAADT///8IAAAAEAAAAAQAAABMaW5lAAAAAAQAAABuYW1lAAAAAAAAAAAo////BAAAAExpbmUAAAAAnv///xQAAAA8AAAARAAAAAAAAApEAAAAAQAAAAQAAACM////CAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEgAAABMAAAAAAAABUgAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAUAAAACAAAAF9fbGFiZWxzAAAAAAQAAABuYW1lAAAAAAAAAAAEAAQABAAAAAgAAABfX2xhYmVscwAAAAAAAAAA/////0gBAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAACgAQAAAAAAABQAAAAAAAADBAAKABgADAAIAAQACgAAABQAAADIAAAABQAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAGAAAAAAAAAB+AAAAAAAAAJgAAAAAAAAAAAAAAAAAAACYAAAAAAAAACgAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAGAAAAAAAAADYAAAAAAAAAEwAAAAAAAAAKAEAAAAAAAAAAAAAAAAAACgBAAAAAAAAGAAAAAAAAABAAQAAAAAAAF8AAAAAAAAAAAAAAAQAAAAFAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAABoAAAAzAAAATAAAAGUAAAB+AAAAbGV2ZWw9ZXJyb3IsIGxvY2F0aW9uPW1vb25sZXZlbD1pbmZvLCBsb2NhdGlvbj1tb29ubGV2ZWw9aW5mbywgbG9jYXRpb249bW9vbmxldmVsPWluZm8sIGxvY2F0aW9uPW1vb25sZXZlbD1pbmZvLCBsb2NhdGlvbj1tb29uAAAAFLi6SlLUFgB63D5LUtQWACQmEktS1BYApibmSlLUFgAn3I9KUtQWAAAAABAAAAAfAAAALgAAAD0AAABMAAAAbG9nIGxpbmUgZXJyb3IgMWxvZyBsaW5lIGluZm8gMWxvZyBsaW5lIGluZm8gMmxvZyBsaW5lIGluZm8gM2xvZyBsaW5lIGluZm8gNAAAAAAAAAAAEwAAACYAAAA5AAAATAAAAF8AAAAxNjQ1MDMwMjQ0ODEwNzU3MTIwMTY0NTAzMDI0NzAyNzczNTA0MDE2NDUwMzAyNDYyNzc1ODc5NjgxNjQ1MDMwMjQ1NTM5NDIzNzQ0MTY0NTAzMDI0NDA5MTcwMDk5MgAQAAAADAAUABIADAAIAAQADAAAABAAAAAsAAAAOAAAAAAABAABAAAAsAQAAAAAAABQAQAAAAAAAKABAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAANACAAADAAAATAAAACgAAAAEAAAA9Pv//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAAU/P//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAADT8//8IAAAAaAIAAFwCAAB7ImN1c3RvbSI6eyJzdGF0cyI6eyJpbmdlc3RlciI6eyJjb21wcmVzc2VkQnl0ZXMiOjAsImRlY29tcHJlc3NlZEJ5dGVzIjowLCJkZWNvbXByZXNzZWRMaW5lcyI6MCwiaGVhZENodW5rQnl0ZXMiOjAsImhlYWRDaHVua0xpbmVzIjowLCJ0b3RhbEJhdGNoZXMiOjAsInRvdGFsQ2h1bmtzTWF0Y2hlZCI6MCwidG90YWxEdXBsaWNhdGVzIjowLCJ0b3RhbExpbmVzU2VudCI6MCwidG90YWxSZWFjaGVkIjowfSwic3RvcmUiOnsiY2h1bmtzRG93bmxvYWRUaW1lIjowLjAwMDM5MDk1OCwiY29tcHJlc3NlZEJ5dGVzIjozMTQzMiwiZGVjb21wcmVzc2VkQnl0ZXMiOjc3NzIsImRlY29tcHJlc3NlZExpbmVzIjo1NSwiaGVhZENodW5rQnl0ZXMiOjAsImhlYWRDaHVua0xpbmVzIjowLCJ0b3RhbENodW5rc0Rvd25sb2FkZWQiOjIsInRvdGFsQ2h1bmtzUmVmIjoyLCJ0b3RhbER1cGxpY2F0ZXMiOjB9LCJzdW1tYXJ5Ijp7ImJ5dGVzUHJvY2Vzc2VkUGVyU2Vjb25kIjozNTA3MDIyLCJleGVjVGltZSI6MC4wMDIyMTYxMjUsImxpbmVzUHJvY2Vzc2VkUGVyU2Vjb25kIjoyNDgxOCwidG90YWxCeXRlc1Byb2Nlc3NlZCI6Nzc3MiwidG90YWxMaW5lc1Byb2Nlc3NlZCI6NTV9fX19AAAAAAQAAABtZXRhAAAAAAQAAAAsAQAAtAAAAFgAAAAEAAAA9v7//xQAAAA4AAAAOAAAAAAAAAU0AAAAAQAAAAQAAADk/v//CAAAAAwAAAACAAAAVFMAAAQAAABuYW1lAAAAAAAAAADU/v//AgAAAFRTAABG////FAAAADwAAAA8AAAAAAAABTgAAAABAAAABAAAADT///8IAAAAEAAAAAQAAABMaW5lAAAAAAQAAABuYW1lAAAAAAAAAAAo////BAAAAExpbmUAAAAAnv///xQAAAA8AAAARAAAAAAAAApEAAAAAQAAAAQAAACM////CAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEgAAABMAAAAAAAABUgAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAUAAAACAAAAF9fbGFiZWxzAAAAAAQAAABuYW1lAAAAAAAAAAAEAAQABAAAAAgAAABfX2xhYmVscwAAAADIBAAAQVJST1cx

View File

@@ -0,0 +1,76 @@
{
"status": "success",
"data": {
"resultType": "streams",
"result": [
{
"stream": {
"level": "error",
"location": "moon"
},
"values": [
[
"1645030244810757120",
"log line error 1"
]
]
},
{
"stream": {
"level": "info",
"location": "moon"
},
"values": [
[
"1645030247027735040",
"log line info 1"
],
[
"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": 2,
"chunksDownloadTime": 0.000390958,
"headChunkBytes": 0,
"headChunkLines": 0,
"decompressedBytes": 7772,
"decompressedLines": 55,
"compressedBytes": 31432,
"totalDuplicates": 0
},
"ingester": {
"totalReached": 0,
"totalChunksMatched": 0,
"totalBatches": 0,
"totalLinesSent": 0,
"headChunkBytes": 0,
"headChunkLines": 0,
"decompressedBytes": 0,
"decompressedLines": 0,
"compressedBytes": 0,
"totalDuplicates": 0
}
}
}
}

View File

@@ -0,0 +1,102 @@
{
"frames": [
{
"schema": {
"fields": [
{
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "test_exemplar_metric_total",
"type": "number",
"typeInfo": {
"frame": "float64"
},
"labels": {
"instance": "localhost:8090",
"job": "prometheus",
"service": "bar"
}
},
{
"name": "traceID",
"type": "string",
"typeInfo": {
"frame": "string"
}
},
{
"name": "a",
"type": "string",
"typeInfo": {
"frame": "string"
}
}
]
},
"data": {
"values": [
[
1600096945479
],
[
6
],
[
"EpTxMJ40fUus7aGY"
],
[
"not in next"
]
]
}
},
{
"schema": {
"fields": [
{
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "test_exemplar_metric_total",
"type": "number",
"typeInfo": {
"frame": "float64"
},
"labels": {
"instance": "localhost:8090",
"job": "prometheus",
"service": "foo"
}
},
{
"name": "traceID",
"type": "string",
"typeInfo": {
"frame": "string"
}
}
]
},
"data": {
"values": [
[
1600096955479,1600096965489
],
[
19,20
],
[
"Olp9XHlq763ccsfa","hCtjygkIHwAN9vs4"
]
]
}
}
]
}

View File

@@ -0,0 +1,31 @@
🌟 This was machine generated. Do not edit. 🌟
Frame[0]
Name:
Dimensions: 4 Fields by 1 Rows
+-----------------------------------+--------------------------------------------------------------+------------------+----------------+
| Name: | Name: test_exemplar_metric_total | Name: traceID | Name: a |
| Labels: | Labels: instance=localhost:8090, job=prometheus, service=bar | Labels: | Labels: |
| Type: []time.Time | Type: []float64 | Type: []string | Type: []string |
+-----------------------------------+--------------------------------------------------------------+------------------+----------------+
| 2020-09-14 15:22:25.479 +0000 UTC | 6 | EpTxMJ40fUus7aGY | not in next |
+-----------------------------------+--------------------------------------------------------------+------------------+----------------+
Frame[1]
Name:
Dimensions: 3 Fields by 2 Rows
+-----------------------------------+--------------------------------------------------------------+------------------+
| Name: | Name: test_exemplar_metric_total | Name: traceID |
| Labels: | Labels: instance=localhost:8090, job=prometheus, service=foo | Labels: |
| Type: []time.Time | Type: []float64 | Type: []string |
+-----------------------------------+--------------------------------------------------------------+------------------+
| 2020-09-14 15:22:35.479 +0000 UTC | 19 | Olp9XHlq763ccsfa |
| 2020-09-14 15:22:45.489 +0000 UTC | 20 | hCtjygkIHwAN9vs4 |
+-----------------------------------+--------------------------------------------------------------+------------------+
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=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
FRAME=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

View File

@@ -0,0 +1,47 @@
{
"status": "success",
"data": [
{
"seriesLabels": {
"__name__": "test_exemplar_metric_total",
"instance": "localhost:8090",
"job": "prometheus",
"service": "bar"
},
"exemplars": [
{
"labels": {
"traceID": "EpTxMJ40fUus7aGY",
"a": "not in next"
},
"value": "6",
"timestamp": 1600096945.479
}
]
},
{
"seriesLabels": {
"__name__": "test_exemplar_metric_total",
"instance": "localhost:8090",
"job": "prometheus",
"service": "foo"
},
"exemplars": [
{
"labels": {
"traceID": "Olp9XHlq763ccsfa"
},
"value": "19",
"timestamp": 1600096955.479
},
{
"labels": {
"traceID": "hCtjygkIHwAN9vs4"
},
"value": "20",
"timestamp": 1600096965.489
}
]
}
]
}

View File

@@ -0,0 +1,24 @@
{
"frames": [
{
"schema": {
"fields": [
{
"name": "Value",
"type": "string",
"typeInfo": {
"frame": "string"
}
}
]
},
"data": {
"values": [
[
"__name__","call","code","config","dialer_name","endpoint","event","goversion","handler","instance","interval","job","le","listener_name","name","quantile","reason","role","scrape_job","slice","version"
]
]
}
}
]
}

View File

@@ -0,0 +1,25 @@
🌟 This was machine generated. Do not edit. 🌟
Frame[0]
Name:
Dimensions: 1 Fields by 21 Rows
+----------------+
| Name: Value |
| Labels: |
| Type: []string |
+----------------+
| __name__ |
| call |
| code |
| config |
| dialer_name |
| endpoint |
| event |
| goversion |
| handler |
| ... |
+----------------+
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=QVJST1cxAAD/////AAEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAFAAAAACAAAAKAAAAAQAAACE////CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAKT///8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAAAQAAABgAAAAAABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEgAAAAAAAAFRAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAAAAAAAABAAEAAQAAAAFAAAAVmFsdWUAAAD/////mAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAAOgAAAAAAAAAFAAAAAAAAAMEAAoAGAAMAAgABAAKAAAAFAAAAEgAAAAVAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWAAAAAAAAABYAAAAAAAAAIwAAAAAAAAAAAAAAAEAAAAVAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAMAAAAEAAAABYAAAAhAAAAKQAAAC4AAAA3AAAAPgAAAEYAAABOAAAAUQAAAFMAAABgAAAAZAAAAGwAAAByAAAAdgAAAIAAAACFAAAAjAAAAF9fbmFtZV9fY2FsbGNvZGVjb25maWdkaWFsZXJfbmFtZWVuZHBvaW50ZXZlbnRnb3ZlcnNpb25oYW5kbGVyaW5zdGFuY2VpbnRlcnZhbGpvYmxlbGlzdGVuZXJfbmFtZW5hbWVxdWFudGlsZXJlYXNvbnJvbGVzY3JhcGVfam9ic2xpY2V2ZXJzaW9uAAAAABAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA8AAAAAAAEAAEAAAAQAQAAAAAAAKAAAAAAAAAA6AAAAAAAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAFAAAAACAAAAKAAAAAQAAACE////CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAKT///8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAAAQAAABgAAAAAABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEgAAAAAAAAFRAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAAAAAAAABAAEAAQAAAAFAAAAVmFsdWUAAAAwAQAAQVJST1cx

View File

@@ -0,0 +1,26 @@
{
"status": "success",
"data": [
"__name__",
"call",
"code",
"config",
"dialer_name",
"endpoint",
"event",
"goversion",
"handler",
"instance",
"interval",
"job",
"le",
"listener_name",
"name",
"quantile",
"reason",
"role",
"scrape_job",
"slice",
"version"
]
}

View File

@@ -0,0 +1,78 @@
{
"frames": [
{
"schema": {
"meta": {
"type": "timeseries-many"
},
"fields": [
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "up",
"type": "number",
"typeInfo": {
"frame": "float64"
},
"labels": {
"job": "prometheus",
"instance": "localhost:9090"
}
}
]
},
"data": {
"values": [
[
1435781430781,1435781445781,1435781460781
],
[
1,1,1
]
]
}
},
{
"schema": {
"meta": {
"type": "timeseries-many"
},
"fields": [
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "up",
"type": "number",
"typeInfo": {
"frame": "float64"
},
"labels": {
"job": "node",
"instance": "localhost:9091"
}
}
]
},
"data": {
"values": [
[
1435781430781,1435781445781,1435781460781
],
[
0,0,1
]
]
}
}
]
}

View File

@@ -0,0 +1,38 @@
🌟 This was machine generated. Do not edit. 🌟
Frame[0] {
"type": "timeseries-many"
}
Name:
Dimensions: 2 Fields by 3 Rows
+-----------------------------------+-------------------------------------------------+
| Name: Time | Name: up |
| Labels: | Labels: instance=localhost:9090, job=prometheus |
| Type: []time.Time | Type: []float64 |
+-----------------------------------+-------------------------------------------------+
| 2015-07-01 20:10:30.781 +0000 UTC | 1 |
| 2015-07-01 20:10:45.781 +0000 UTC | 1 |
| 2015-07-01 20:11:00.781 +0000 UTC | 1 |
+-----------------------------------+-------------------------------------------------+
Frame[1] {
"type": "timeseries-many"
}
Name:
Dimensions: 2 Fields by 3 Rows
+-----------------------------------+-------------------------------------------+
| Name: Time | Name: up |
| Labels: | Labels: instance=localhost:9091, job=node |
| Type: []time.Time | Type: []float64 |
+-----------------------------------+-------------------------------------------+
| 2015-07-01 20:10:30.781 +0000 UTC | 0 |
| 2015-07-01 20:10:45.781 +0000 UTC | 0 |
| 2015-07-01 20:11:00.781 +0000 UTC | 1 |
+-----------------------------------+-------------------------------------------+
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=QVJST1cxAAD/////8AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAAoP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADA/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAOD+//8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAAMQAAAAEAAAAVv///xQAAACMAAAAjAAAAAAAAAOMAAAAAgAAACgAAAAEAAAASP///wgAAAAMAAAAAgAAAHVwAAAEAAAAbmFtZQAAAABo////CAAAADwAAAAwAAAAeyJpbnN0YW5jZSI6ImxvY2FsaG9zdDo5MDkwIiwiam9iIjoicHJvbWV0aGV1cyJ9AAAAAAYAAABsYWJlbHMAAAAAAACK////AAACAAIAAAB1cAAAAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAD/////uAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAADAAAAAAAAAAFAAAAAAAAAMEAAoAGAAMAAgABAAKAAAAFAAAAFgAAAADAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAYAAAAAAAAAAAAAAAAAAAAGAAAAAAAAAAYAAAAAAAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAABAuc2smuvsE0CP3yqe6+wTQGXxqKHr7BMAAAAAAADwPwAAAAAAAPA/AAAAAAAA8D8QAAAADAAUABIADAAIAAQADAAAABAAAAAsAAAAPAAAAAAABAABAAAAAAIAAAAAAADAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAwAAAAIAAQACgAAAAgAAACMAAAAAwAAAEwAAAAoAAAABAAAAKD+//8IAAAADAAAAAAAAAAAAAAABQAAAHJlZklkAAAAwP7//wgAAAAMAAAAAAAAAAAAAAAEAAAAbmFtZQAAAADg/v//CAAAACQAAAAaAAAAeyJ0eXBlIjoidGltZXNlcmllcy1tYW55In0AAAQAAABtZXRhAAAAAAIAAADEAAAABAAAAFb///8UAAAAjAAAAIwAAAAAAAADjAAAAAIAAAAoAAAABAAAAEj///8IAAAADAAAAAIAAAB1cAAABAAAAG5hbWUAAAAAaP///wgAAAA8AAAAMAAAAHsiaW5zdGFuY2UiOiJsb2NhbGhvc3Q6OTA5MCIsImpvYiI6InByb21ldGhldXMifQAAAAAGAAAAbGFiZWxzAAAAAAAAiv///wAAAgACAAAAdXAAAAAAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAABEAAAATAAAAAAAAApMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAAAAAIAIAAEFSUk9XMQ==
FRAME=QVJST1cxAAD/////6AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAAqP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADI/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAOj+//8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAALwAAAAEAAAAXv///xQAAACEAAAAhAAAAAAAAAOEAAAAAgAAACgAAAAEAAAAUP///wgAAAAMAAAAAgAAAHVwAAAEAAAAbmFtZQAAAABw////CAAAADQAAAAqAAAAeyJpbnN0YW5jZSI6ImxvY2FsaG9zdDo5MDkxIiwiam9iIjoibm9kZSJ9AAAGAAAAbGFiZWxzAAAAAAAAiv///wAAAgACAAAAdXAAAAAAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAABEAAAATAAAAAAAAApMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAAAAA/////7gAAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAAAwAAAAAAAAABQAAAAAAAADBAAKABgADAAIAAQACgAAABQAAABYAAAAAwAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAAAAABgAAAAAAAAAGAAAAAAAAAAAAAAAAgAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAQLnNrJrr7BNAj98qnuvsE0Bl8aih6+wTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPA/EAAAAAwAFAASAAwACAAEAAwAAAAQAAAALAAAADwAAAAAAAQAAQAAAPgBAAAAAAAAwAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAAjAAAAAMAAABMAAAAKAAAAAQAAACo/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAMj+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAA6P7//wgAAAAkAAAAGgAAAHsidHlwZSI6InRpbWVzZXJpZXMtbWFueSJ9AAAEAAAAbWV0YQAAAAACAAAAvAAAAAQAAABe////FAAAAIQAAACEAAAAAAAAA4QAAAACAAAAKAAAAAQAAABQ////CAAAAAwAAAACAAAAdXAAAAQAAABuYW1lAAAAAHD///8IAAAANAAAACoAAAB7Imluc3RhbmNlIjoibG9jYWxob3N0OjkwOTEiLCJqb2IiOiJub2RlIn0AAAYAAABsYWJlbHMAAAAAAACK////AAACAAIAAAB1cAAAAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAYAgAAQVJST1cx

View File

@@ -0,0 +1,55 @@
{
"frames": [
{
"schema": {
"meta": {
"type": "timeseries-many"
},
"fields": [
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "Value",
"type": "number",
"typeInfo": {
"frame": "float64"
},
"labels": {
"job": "prometheus",
"handler": "/api/v1/query_range"
}
}
]
},
"data": {
"values": [
[
1641889530000,1641889531000,1641889532000
],
[
null,null,null
]
],
"entities": [
null,
{
"NaN": [
1
],
"Inf": [
0
],
"NegInf": [
2
]
}
]
}
}
]
}

View File

@@ -0,0 +1,20 @@
🌟 This was machine generated. Do not edit. 🌟
Frame[0] {
"type": "timeseries-many"
}
Name:
Dimensions: 2 Fields by 3 Rows
+-------------------------------+-----------------------------------------------------+
| Name: Time | Name: Value |
| Labels: | Labels: handler=/api/v1/query_range, job=prometheus |
| Type: []time.Time | Type: []float64 |
+-------------------------------+-----------------------------------------------------+
| 2022-01-11 08:25:30 +0000 UTC | +Inf |
| 2022-01-11 08:25:31 +0000 UTC | NaN |
| 2022-01-11 08:25:32 +0000 UTC | -Inf |
+-------------------------------+-----------------------------------------------------+
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=QVJST1cxAAD/////+AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAAmP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAC4/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAANj+//8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAAMwAAAAEAAAATv///xQAAACUAAAAlAAAAAAAAAOUAAAAAgAAACwAAAAEAAAAQP///wgAAAAQAAAABQAAAFZhbHVlAAAABAAAAG5hbWUAAAAAZP///wgAAABAAAAANAAAAHsiaGFuZGxlciI6Ii9hcGkvdjEvcXVlcnlfcmFuZ2UiLCJqb2IiOiJwcm9tZXRoZXVzIn0AAAAABgAAAGxhYmVscwAAAAAAAIr///8AAAIABQAAAFZhbHVlABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAAP////+4AAAAFAAAAAAAAAAMABYAFAATAAwABAAMAAAAMAAAAAAAAAAUAAAAAAAAAwQACgAYAAwACAAEAAoAAAAUAAAAWAAAAAMAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAABEFRTUKckWAA6wT9QpyRYA2EqL1CnJFgAAAAAAAPB/AQAAAAAA+H8AAAAAAADw/xAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA8AAAAAAAEAAEAAAAIAgAAAAAAAMAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAAmP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAAC4/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAANj+//8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAAMwAAAAEAAAATv///xQAAACUAAAAlAAAAAAAAAOUAAAAAgAAACwAAAAEAAAAQP///wgAAAAQAAAABQAAAFZhbHVlAAAABAAAAG5hbWUAAAAAZP///wgAAABAAAAANAAAAHsiaGFuZGxlciI6Ii9hcGkvdjEvcXVlcnlfcmFuZ2UiLCJqb2IiOiJwcm9tZXRoZXVzIn0AAAAABgAAAGxhYmVscwAAAAAAAIr///8AAAIABQAAAFZhbHVlABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAACgCAABBUlJPVzE=

View File

@@ -0,0 +1,16 @@
{
"status": "success",
"data": {
"resultType": "matrix",
"result": [
{
"metric": { "handler": "/api/v1/query_range", "job": "prometheus" },
"values": [
[1641889530, "+Inf"],
[1641889531, "NaN"],
[1641889532, "-Inf"]
]
}
]
}
}

View File

@@ -0,0 +1,33 @@
{
"status" : "success",
"data" : {
"resultType" : "matrix",
"result" : [
{
"metric" : {
"__name__" : "up",
"job" : "prometheus",
"instance" : "localhost:9090"
},
"values" : [
[ 1435781430.781, "1" ],
[ 1435781445.781, "1" ],
[ 1435781460.781, "1" ]
]
},
{
"metric" : {
"__name__" : "up",
"job" : "node",
"instance" : "localhost:9091"
},
"values" : [
[ 1435781430.781, "0" ],
[ 1435781445.781, "0" ],
[ 1435781460.781, "1" ]
]
}
]
}
}

View File

@@ -0,0 +1,44 @@
{
"frames": [
{
"schema": {
"fields": [
{
"name": "__name__",
"type": "string",
"typeInfo": {
"frame": "string"
}
},
{
"name": "job",
"type": "string",
"typeInfo": {
"frame": "string"
}
},
{
"name": "instance",
"type": "string",
"typeInfo": {
"frame": "string"
}
}
]
},
"data": {
"values": [
[
"up","up","process_start_time_seconds"
],
[
"prometheus","node","prometheus"
],
[
"localhost:9090","localhost:9091","localhost:9090"
]
]
}
}
]
}

View File

@@ -0,0 +1,18 @@
🌟 This was machine generated. Do not edit. 🌟
Frame[0]
Name:
Dimensions: 3 Fields by 3 Rows
+----------------------------+----------------+----------------+
| Name: __name__ | Name: job | Name: instance |
| Labels: | Labels: | Labels: |
| Type: []string | Type: []string | Type: []string |
+----------------------------+----------------+----------------+
| up | prometheus | localhost:9090 |
| up | node | localhost:9091 |
| process_start_time_seconds | prometheus | localhost:9090 |
+----------------------------+----------------+----------------+
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=QVJST1cxAAD/////wAEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAFAAAAACAAAAKAAAAAQAAADM/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAOz+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAAAwAAANAAAABoAAAABAAAAE7///8UAAAAQAAAAEAAAAAAAAAFPAAAAAEAAAAEAAAAPP///wgAAAAUAAAACAAAAGluc3RhbmNlAAAAAAQAAABuYW1lAAAAAAAAAAA0////CAAAAGluc3RhbmNlAAAAAK7///8UAAAAOAAAADgAAAAAAAAFNAAAAAEAAAAEAAAAnP///wgAAAAMAAAAAwAAAGpvYgAEAAAAbmFtZQAAAAAAAAAAjP///wMAAABqb2IAAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEgAAABMAAAAAAAABUgAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAUAAAACAAAAF9fbmFtZV9fAAAAAAQAAABuYW1lAAAAAAAAAAAEAAQABAAAAAgAAABfX25hbWVfXwAAAAD/////GAEAABQAAAAAAAAADAAWABQAEwAMAAQADAAAAJgAAAAAAAAAFAAAAAAAAAMEAAoAGAAMAAgABAAKAAAAFAAAAKgAAAADAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAB4AAAAAAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAEAAAAAAAAABAAAAAAAAAABgAAAAAAAAAWAAAAAAAAAAAAAAAAAAAAFgAAAAAAAAAEAAAAAAAAABoAAAAAAAAACoAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAQAAAAeAAAAdXB1cHByb2Nlc3Nfc3RhcnRfdGltZV9zZWNvbmRzAAAAAAAACgAAAA4AAAAYAAAAcHJvbWV0aGV1c25vZGVwcm9tZXRoZXVzAAAAAA4AAAAcAAAAKgAAAGxvY2FsaG9zdDo5MDkwbG9jYWxob3N0OjkwOTFsb2NhbGhvc3Q6OTA5MAAAAAAAABAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA8AAAAAAAEAAEAAADQAQAAAAAAACABAAAAAAAAmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAFAAAAACAAAAKAAAAAQAAADM/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAOz+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAAAwAAANAAAABoAAAABAAAAE7///8UAAAAQAAAAEAAAAAAAAAFPAAAAAEAAAAEAAAAPP///wgAAAAUAAAACAAAAGluc3RhbmNlAAAAAAQAAABuYW1lAAAAAAAAAAA0////CAAAAGluc3RhbmNlAAAAAK7///8UAAAAOAAAADgAAAAAAAAFNAAAAAEAAAAEAAAAnP///wgAAAAMAAAAAwAAAGpvYgAEAAAAbmFtZQAAAAAAAAAAjP///wMAAABqb2IAAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEgAAABMAAAAAAAABUgAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAUAAAACAAAAF9fbmFtZV9fAAAAAAQAAABuYW1lAAAAAAAAAAAEAAQABAAAAAgAAABfX25hbWVfXwAAAADwAQAAQVJST1cx

View File

@@ -0,0 +1,21 @@
{
"status" : "success",
"data" : [
{
"__name__" : "up",
"job" : "prometheus",
"instance" : "localhost:9090"
},
{
"__name__" : "up",
"job" : "node",
"instance" : "localhost:9091"
},
{
"__name__" : "process_start_time_seconds",
"job" : "prometheus",
"instance" : "localhost:9090"
}
]
}

View File

@@ -0,0 +1,213 @@
{
"frames": [
{
"schema": {
"meta": {
"type": "timeseries-many"
},
"fields": [
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "up",
"type": "number",
"typeInfo": {
"frame": "float64"
},
"labels": {
"job": "prometheus",
"instance": "localhost:9090"
}
}
]
},
"data": {
"values": [
[
1435781451781
],
[
1
]
]
}
},
{
"schema": {
"meta": {
"type": "timeseries-many"
},
"fields": [
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "up",
"type": "number",
"typeInfo": {
"frame": "float64"
},
"labels": {
"job": "node",
"instance": "localhost:9100"
}
}
]
},
"data": {
"values": [
[
1435781451781
],
[
0
]
]
}
},
{
"schema": {
"meta": {
"type": "timeseries-many"
},
"fields": [
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "Value",
"type": "number",
"typeInfo": {
"frame": "float64"
},
"labels": {
"level": "error",
"location": "moon"
}
}
]
},
"data": {
"values": [
[
1645029699000
],
[
null
]
],
"entities": [
null,
{
"Inf": [
0
]
}
]
}
},
{
"schema": {
"meta": {
"type": "timeseries-many"
},
"fields": [
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "Value",
"type": "number",
"typeInfo": {
"frame": "float64"
},
"labels": {
"level": "info",
"location": "moon"
}
}
]
},
"data": {
"values": [
[
1645029699000
],
[
null
]
],
"entities": [
null,
{
"NegInf": [
0
]
}
]
}
},
{
"schema": {
"meta": {
"type": "timeseries-many"
},
"fields": [
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "Value",
"type": "number",
"typeInfo": {
"frame": "float64"
},
"labels": {
"level": "debug",
"location": "moon"
}
}
]
},
"data": {
"values": [
[
1645029699000
],
[
null
]
],
"entities": [
null,
{
"NaN": [
0
]
}
]
}
}
]
}

View File

@@ -0,0 +1,82 @@
🌟 This was machine generated. Do not edit. 🌟
Frame[0] {
"type": "timeseries-many"
}
Name:
Dimensions: 2 Fields by 1 Rows
+-----------------------------------+-------------------------------------------------+
| Name: Time | Name: up |
| Labels: | Labels: instance=localhost:9090, job=prometheus |
| Type: []time.Time | Type: []float64 |
+-----------------------------------+-------------------------------------------------+
| 2015-07-01 20:10:51.781 +0000 UTC | 1 |
+-----------------------------------+-------------------------------------------------+
Frame[1] {
"type": "timeseries-many"
}
Name:
Dimensions: 2 Fields by 1 Rows
+-----------------------------------+-------------------------------------------+
| Name: Time | Name: up |
| Labels: | Labels: instance=localhost:9100, job=node |
| Type: []time.Time | Type: []float64 |
+-----------------------------------+-------------------------------------------+
| 2015-07-01 20:10:51.781 +0000 UTC | 0 |
+-----------------------------------+-------------------------------------------+
Frame[2] {
"type": "timeseries-many"
}
Name:
Dimensions: 2 Fields by 1 Rows
+-------------------------------+------------------------------------+
| Name: Time | Name: Value |
| Labels: | Labels: level=error, location=moon |
| Type: []time.Time | Type: []float64 |
+-------------------------------+------------------------------------+
| 2022-02-16 16:41:39 +0000 UTC | +Inf |
+-------------------------------+------------------------------------+
Frame[3] {
"type": "timeseries-many"
}
Name:
Dimensions: 2 Fields by 1 Rows
+-------------------------------+-----------------------------------+
| Name: Time | Name: Value |
| Labels: | Labels: level=info, location=moon |
| Type: []time.Time | Type: []float64 |
+-------------------------------+-----------------------------------+
| 2022-02-16 16:41:39 +0000 UTC | -Inf |
+-------------------------------+-----------------------------------+
Frame[4] {
"type": "timeseries-many"
}
Name:
Dimensions: 2 Fields by 1 Rows
+-------------------------------+------------------------------------+
| Name: Time | Name: Value |
| Labels: | Labels: level=debug, location=moon |
| Type: []time.Time | Type: []float64 |
+-------------------------------+------------------------------------+
| 2022-02-16 16:41:39 +0000 UTC | NaN |
+-------------------------------+------------------------------------+
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=QVJST1cxAAD/////8AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAAoP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADA/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAOD+//8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAAMQAAAAEAAAAVv///xQAAACMAAAAjAAAAAAAAAOMAAAAAgAAACgAAAAEAAAASP///wgAAAAMAAAAAgAAAHVwAAAEAAAAbmFtZQAAAABo////CAAAADwAAAAwAAAAeyJpbnN0YW5jZSI6ImxvY2FsaG9zdDo5MDkwIiwiam9iIjoicHJvbWV0aGV1cyJ9AAAAAAYAAABsYWJlbHMAAAAAAACK////AAACAAIAAAB1cAAAAAASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAD/////uAAAABQAAAAAAAAADAAWABQAEwAMAAQADAAAABAAAAAAAAAAFAAAAAAAAAMEAAoAGAAMAAgABAAKAAAAFAAAAFgAAAABAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAABAS4CQn+vsEwAAAAAAAPA/EAAAAAwAFAASAAwACAAEAAwAAAAQAAAALAAAADwAAAAAAAQAAQAAAAACAAAAAAAAwAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAAjAAAAAMAAABMAAAAKAAAAAQAAACg/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAMD+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAA4P7//wgAAAAkAAAAGgAAAHsidHlwZSI6InRpbWVzZXJpZXMtbWFueSJ9AAAEAAAAbWV0YQAAAAACAAAAxAAAAAQAAABW////FAAAAIwAAACMAAAAAAAAA4wAAAACAAAAKAAAAAQAAABI////CAAAAAwAAAACAAAAdXAAAAQAAABuYW1lAAAAAGj///8IAAAAPAAAADAAAAB7Imluc3RhbmNlIjoibG9jYWxob3N0OjkwOTAiLCJqb2IiOiJwcm9tZXRoZXVzIn0AAAAABgAAAGxhYmVscwAAAAAAAIr///8AAAIAAgAAAHVwAAAAABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAACACAABBUlJPVzE=
FRAME=QVJST1cxAAD/////6AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAAqP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADI/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAOj+//8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAALwAAAAEAAAAXv///xQAAACEAAAAhAAAAAAAAAOEAAAAAgAAACgAAAAEAAAAUP///wgAAAAMAAAAAgAAAHVwAAAEAAAAbmFtZQAAAABw////CAAAADQAAAAqAAAAeyJpbnN0YW5jZSI6ImxvY2FsaG9zdDo5MTAwIiwiam9iIjoibm9kZSJ9AAAGAAAAbGFiZWxzAAAAAAAAiv///wAAAgACAAAAdXAAAAAAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAABEAAAATAAAAAAAAApMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAAAAA/////7gAAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAAAQAAAAAAAAABQAAAAAAAADBAAKABgADAAIAAQACgAAABQAAABYAAAAAQAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAQEuAkJ/r7BMAAAAAAAAAABAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA8AAAAAAAEAAEAAAD4AQAAAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAAqP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADI/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAOj+//8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAALwAAAAEAAAAXv///xQAAACEAAAAhAAAAAAAAAOEAAAAAgAAACgAAAAEAAAAUP///wgAAAAMAAAAAgAAAHVwAAAEAAAAbmFtZQAAAABw////CAAAADQAAAAqAAAAeyJpbnN0YW5jZSI6ImxvY2FsaG9zdDo5MTAwIiwiam9iIjoibm9kZSJ9AAAGAAAAbGFiZWxzAAAAAAAAiv///wAAAgACAAAAdXAAAAAAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAABEAAAATAAAAAAAAApMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAAAAAGAIAAEFSUk9XMQ==
FRAME=QVJST1cxAAD/////6AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAArP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADM/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAOz+//8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAALgAAAAEAAAAYv///xQAAACAAAAAgAAAAAAAAAOAAAAAAgAAACwAAAAEAAAAVP///wgAAAAQAAAABQAAAFZhbHVlAAAABAAAAG5hbWUAAAAAeP///wgAAAAsAAAAIwAAAHsibGV2ZWwiOiJlcnJvciIsImxvY2F0aW9uIjoibW9vbiJ9AAYAAABsYWJlbHMAAAAAAACK////AAACAAUAAABWYWx1ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAAAAAA/////7gAAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAAAQAAAAAAAAABQAAAAAAAADBAAKABgADAAIAAQACgAAABQAAABYAAAAAQAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAN7cpctR1BYAAAAAAADwfxAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA4AAAAAAAEAAEAAAD4AQAAAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAAjAAAAAMAAABMAAAAKAAAAAQAAACs/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAMz+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAA7P7//wgAAAAkAAAAGgAAAHsidHlwZSI6InRpbWVzZXJpZXMtbWFueSJ9AAAEAAAAbWV0YQAAAAACAAAAuAAAAAQAAABi////FAAAAIAAAACAAAAAAAAAA4AAAAACAAAALAAAAAQAAABU////CAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAAB4////CAAAACwAAAAjAAAAeyJsZXZlbCI6ImVycm9yIiwibG9jYXRpb24iOiJtb29uIn0ABgAAAGxhYmVscwAAAAAAAIr///8AAAIABQAAAFZhbHVlABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAABACAABBUlJPVzE=
FRAME=QVJST1cxAAD/////6AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAArP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADM/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAOz+//8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAALgAAAAEAAAAYv///xQAAACAAAAAgAAAAAAAAAOAAAAAAgAAACwAAAAEAAAAVP///wgAAAAQAAAABQAAAFZhbHVlAAAABAAAAG5hbWUAAAAAeP///wgAAAAsAAAAIgAAAHsibGV2ZWwiOiJpbmZvIiwibG9jYXRpb24iOiJtb29uIn0AAAYAAABsYWJlbHMAAAAAAACK////AAACAAUAAABWYWx1ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAAAAAA/////7gAAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAAAQAAAAAAAAABQAAAAAAAADBAAKABgADAAIAAQACgAAABQAAABYAAAAAQAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAN7cpctR1BYAAAAAAADw/xAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA4AAAAAAAEAAEAAAD4AQAAAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAAjAAAAAMAAABMAAAAKAAAAAQAAACs/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAMz+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAA7P7//wgAAAAkAAAAGgAAAHsidHlwZSI6InRpbWVzZXJpZXMtbWFueSJ9AAAEAAAAbWV0YQAAAAACAAAAuAAAAAQAAABi////FAAAAIAAAACAAAAAAAAAA4AAAAACAAAALAAAAAQAAABU////CAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAAB4////CAAAACwAAAAiAAAAeyJsZXZlbCI6ImluZm8iLCJsb2NhdGlvbiI6Im1vb24ifQAABgAAAGxhYmVscwAAAAAAAIr///8AAAIABQAAAFZhbHVlABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAABACAABBUlJPVzE=
FRAME=QVJST1cxAAD/////6AEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAArP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADM/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAOz+//8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAALgAAAAEAAAAYv///xQAAACAAAAAgAAAAAAAAAOAAAAAAgAAACwAAAAEAAAAVP///wgAAAAQAAAABQAAAFZhbHVlAAAABAAAAG5hbWUAAAAAeP///wgAAAAsAAAAIwAAAHsibGV2ZWwiOiJkZWJ1ZyIsImxvY2F0aW9uIjoibW9vbiJ9AAYAAABsYWJlbHMAAAAAAACK////AAACAAUAAABWYWx1ZQASABgAFAAAABMADAAAAAgABAASAAAAFAAAAEQAAABMAAAAAAAACkwAAAABAAAADAAAAAgADAAIAAQACAAAAAgAAAAQAAAABAAAAFRpbWUAAAAABAAAAG5hbWUAAAAAAAAAAAAABgAIAAYABgAAAAAAAwAEAAAAVGltZQAAAAAAAAAA/////7gAAAAUAAAAAAAAAAwAFgAUABMADAAEAAwAAAAQAAAAAAAAABQAAAAAAAADBAAKABgADAAIAAQACgAAABQAAABYAAAAAQAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAACAAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAN7cpctR1BYBAAAAAAD4fxAAAAAMABQAEgAMAAgABAAMAAAAEAAAACwAAAA4AAAAAAAEAAEAAAD4AQAAAAAAAMAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAACgAMAAAACAAEAAoAAAAIAAAAjAAAAAMAAABMAAAAKAAAAAQAAACs/v//CAAAAAwAAAAAAAAAAAAAAAUAAAByZWZJZAAAAMz+//8IAAAADAAAAAAAAAAAAAAABAAAAG5hbWUAAAAA7P7//wgAAAAkAAAAGgAAAHsidHlwZSI6InRpbWVzZXJpZXMtbWFueSJ9AAAEAAAAbWV0YQAAAAACAAAAuAAAAAQAAABi////FAAAAIAAAACAAAAAAAAAA4AAAAACAAAALAAAAAQAAABU////CAAAABAAAAAFAAAAVmFsdWUAAAAEAAAAbmFtZQAAAAB4////CAAAACwAAAAjAAAAeyJsZXZlbCI6ImRlYnVnIiwibG9jYXRpb24iOiJtb29uIn0ABgAAAGxhYmVscwAAAAAAAIr///8AAAIABQAAAFZhbHVlABIAGAAUAAAAEwAMAAAACAAEABIAAAAUAAAARAAAAEwAAAAAAAAKTAAAAAEAAAAMAAAACAAMAAgABAAIAAAACAAAABAAAAAEAAAAVGltZQAAAAAEAAAAbmFtZQAAAAAAAAAAAAAGAAgABgAGAAAAAAADAAQAAABUaW1lAAAAABACAABBUlJPVzE=

View File

@@ -0,0 +1,36 @@
{
"status" : "success",
"data" : {
"resultType" : "vector",
"result" : [
{
"metric" : {
"__name__" : "up",
"job" : "prometheus",
"instance" : "localhost:9090"
},
"value": [ 1435781451.781, "1" ]
},
{
"metric" : {
"__name__" : "up",
"job" : "node",
"instance" : "localhost:9100"
},
"value" : [ 1435781451.781, "0" ]
},
{
"metric": { "level": "error", "location": "moon"},
"value": [1645029699, "+Inf"]
},
{
"metric": { "level": "info", "location": "moon" },
"value": [1645029699, "-Inf"]
},
{
"metric": { "level": "debug", "location": "moon" },
"value": [1645029699, "NaN"]
}
]
}
}