3
0
mirror of https://github.com/grafana/grafana.git synced 2025-02-25 18:55:37 -06:00

Converter: Add support for parsing prometheus string ()

This commit is contained in:
Todd Treece 2022-05-04 20:26:32 -04:00 committed by GitHub
parent 2d574f352c
commit 9529c35efa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 98 additions and 0 deletions

View File

@ -111,6 +111,8 @@ func readPrometheusData(iter *jsoniter.Iterator) *backend.DataResponse {
rsp = readMatrixOrVector(iter)
case "streams":
rsp = readStream(iter)
case "string":
rsp = readString(iter)
case "scalar":
rsp = readScalar(iter)
default:
@ -290,6 +292,33 @@ func readLabelsOrExemplars(iter *jsoniter.Iterator) (*data.Frame, [][2]string) {
return frame, pairs
}
func readString(iter *jsoniter.Iterator) *backend.DataResponse {
timeField := data.NewFieldFromFieldType(data.FieldTypeTime, 0)
timeField.Name = data.TimeSeriesTimeFieldName
valueField := data.NewFieldFromFieldType(data.FieldTypeString, 0)
valueField.Name = data.TimeSeriesValueFieldName
valueField.Labels = data.Labels{}
iter.ReadArray()
t := iter.ReadFloat64()
iter.ReadArray()
v := iter.ReadString()
iter.ReadArray()
tt := timeFromFloat(t)
timeField.Append(tt)
valueField.Append(v)
frame := data.NewFrame("", timeField, valueField)
frame.Meta = &data.FrameMeta{
Type: data.FrameTypeTimeSeriesMany,
}
return &backend.DataResponse{
Frames: []*data.Frame{frame},
}
}
func readScalar(iter *jsoniter.Iterator) *backend.DataResponse {
timeField := data.NewFieldFromFieldType(data.FieldTypeTime, 0)
timeField.Name = data.TimeSeriesTimeFieldName

View File

@ -19,6 +19,7 @@ func TestReadPromFrames(t *testing.T) {
"prom-matrix",
"prom-matrix-with-nans",
"prom-vector",
"prom-string",
"prom-scalar",
"prom-series",
"prom-warnings",

View File

@ -0,0 +1,40 @@
{
"frames": [
{
"schema": {
"meta": {
"type": "timeseries-many"
},
"fields": [
{
"name": "Time",
"type": "time",
"typeInfo": {
"frame": "time.Time"
}
},
{
"name": "Value",
"type": "string",
"typeInfo": {
"frame": "string"
},
"labels": {
}
}
]
},
"data": {
"values": [
[
1651680139104
],
[
"example"
]
]
}
}
]
}

View File

@ -0,0 +1,18 @@
🌟 This was machine generated. Do not edit. 🌟
Frame[0] {
"type": "timeseries-many"
}
Name:
Dimensions: 2 Fields by 1 Rows
+-----------------------------------+----------------+
| Name: Time | Name: Value |
| Labels: | Labels: |
| Type: []time.Time | Type: []string |
+-----------------------------------+----------------+
| 2022-05-04 16:02:19.104 +0000 UTC | example |
+-----------------------------------+----------------+
====== TEST DATA RESPONSE (arrow base64) ======
FRAME=QVJST1cxAAD/////yAEAABAAAAAAAAoADgAMAAsABAAKAAAAFAAAAAAAAAEEAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAAzP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADs/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAAz///8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAAJgAAAAEAAAAgv///xQAAABgAAAAZAAAAAAAAAVgAAAAAgAAACwAAAAEAAAAdP///wgAAAAQAAAABQAAAFZhbHVlAAAABAAAAG5hbWUAAAAAmP///wgAAAAMAAAAAgAAAHt9AAAGAAAAbGFiZWxzAAAAAAAABAAEAAQAAAAFAAAAVmFsdWUAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAABEAAAATAAAAAAAAApMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAAAAAAAAAAP/////IAAAAFAAAAAAAAAAMABYAFAATAAwABAAMAAAAGAAAAAAAAAAUAAAAAAAAAwQACgAYAAwACAAEAAoAAAAUAAAAaAAAAAEAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAAAAAAEAAAAAAAAAAHAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAmNzlVfLrFgAAAAAHAAAAZXhhbXBsZQAQAAAADAAUABIADAAIAAQADAAAABAAAAAsAAAAOAAAAAAABAABAAAA2AEAAAAAAADQAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAoADAAAAAgABAAKAAAACAAAAIwAAAADAAAATAAAACgAAAAEAAAAzP7//wgAAAAMAAAAAAAAAAAAAAAFAAAAcmVmSWQAAADs/v//CAAAAAwAAAAAAAAAAAAAAAQAAABuYW1lAAAAAAz///8IAAAAJAAAABoAAAB7InR5cGUiOiJ0aW1lc2VyaWVzLW1hbnkifQAABAAAAG1ldGEAAAAAAgAAAJgAAAAEAAAAgv///xQAAABgAAAAZAAAAAAAAAVgAAAAAgAAACwAAAAEAAAAdP///wgAAAAQAAAABQAAAFZhbHVlAAAABAAAAG5hbWUAAAAAmP///wgAAAAMAAAAAgAAAHt9AAAGAAAAbGFiZWxzAAAAAAAABAAEAAQAAAAFAAAAVmFsdWUAEgAYABQAAAATAAwAAAAIAAQAEgAAABQAAABEAAAATAAAAAAAAApMAAAAAQAAAAwAAAAIAAwACAAEAAgAAAAIAAAAEAAAAAQAAABUaW1lAAAAAAQAAABuYW1lAAAAAAAAAAAAAAYACAAGAAYAAAAAAAMABAAAAFRpbWUAAAAA8AEAAEFSUk9XMQ==

View File

@ -0,0 +1,10 @@
{
"status": "success",
"data": {
"resultType": "string",
"result": [
1651680139.104,
"example"
]
}
}