monitoring: fix metric value NaN

Signed-off-by: huanggze <loganhuang@yunify.com>
This commit is contained in:
huanggze
2020-05-18 21:38:52 +08:00
parent af341f6fbe
commit 14069b95f2
21 changed files with 1220 additions and 175 deletions

View File

@@ -50,9 +50,22 @@ func (w wrapper) Less(i, j int) bool {
p := w.MetricValues[i]
q := w.MetricValues[j]
if p.Sample.Value() == q.Sample.Value() {
// Place Nil to the tail.
if p.Sample == nil && q.Sample != nil {
return false
}
if p.Sample != nil && q.Sample == nil {
return true
}
// If both Samples are Nil or have the same metric value, sort by resource name
if p.Sample == q.Sample || p.Sample[1] == q.Sample[1] {
return p.Metadata[w.identifier] < q.Metadata[w.identifier]
}
// Place NaN to the tail (NaN takes precedence over Nil).
if math.IsNaN(p.Sample[1]) != math.IsNaN(q.Sample[1]) {
return !math.IsNaN(p.Sample[1])
}
switch w.order {
case OrderAscending:

View File

@@ -5,6 +5,7 @@ import (
"github.com/google/go-cmp/cmp"
"github.com/json-iterator/go"
"io/ioutil"
"math"
"testing"
)
@@ -34,8 +35,22 @@ func TestSort(t *testing.T) {
target: "node_memory_utilisation",
order: "desc",
identifier: "node",
raw: "faulty-node-metrics.json",
expected: "faulty-node-metrics-sorted.json",
raw: "faulty-node-metrics-1.json",
expected: "faulty-node-metrics-sorted-1.json",
},
{
target: "node_cpu_utilisation",
order: "asc",
identifier: "node",
raw: "faulty-node-metrics-2.json",
expected: "faulty-node-metrics-sorted-2.json",
},
{
target: "node_cpu_utilisation",
order: "asc",
identifier: "node",
raw: "faulty-node-metrics-3.json",
expected: "faulty-node-metrics-sorted-3.json",
},
{
target: "node_memory_utilisation",
@@ -61,7 +76,10 @@ func TestSort(t *testing.T) {
}
result := source.Sort(tt.target, tt.order, tt.identifier)
if diff := cmp.Diff(*result, *expected); diff != "" {
opt := cmp.Comparer(func(x, y float64) bool {
return (math.IsNaN(x) && math.IsNaN(y)) || x == y
})
if diff := cmp.Diff(*result, *expected, opt); diff != "" {
t.Fatalf("%T differ (-got, +want): %s", expected, diff)
}
})
@@ -102,7 +120,7 @@ func TestPage(t *testing.T) {
{
page: 1,
limit: 2,
raw: "faulty-node-metrics-sorted.json",
raw: "faulty-node-metrics-sorted-1.json",
expected: "faulty-node-metrics-paged.json",
},
}

View File

@@ -11,7 +11,7 @@
},
"value":[
1585658599.193,
0.42012898861983516
"0.42012898861983516"
]
},
{
@@ -20,7 +20,7 @@
},
"value":[
1585658599.193,
0.2588273152865106
"0.2588273152865106"
]
},
{
@@ -29,7 +29,7 @@
},
"value":[
1585658599.193,
0.29849334024542695
"0.29849334024542695"
]
}
]
@@ -46,7 +46,7 @@
},
"value":[
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
},
{
@@ -55,7 +55,7 @@
},
"value":[
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
},
{
@@ -64,7 +64,7 @@
},
"value":[
1585658599.195,
0.23637090535053928
"0.23637090535053928"
]
}
]

View File

@@ -11,7 +11,7 @@
},
"value": [
1585658599.193,
0.42012898861983516
"0.42012898861983516"
]
},
{
@@ -20,7 +20,7 @@
},
"value": [
1585658599.193,
0.2601006025131434
"0.2601006025131434"
]
},
{
@@ -29,7 +29,7 @@
},
"value": [
1585658599.193,
0.29849334024542695
"0.29849334024542695"
]
},
{
@@ -38,7 +38,7 @@
},
"value": [
1585658599.193,
0.2588273152865106
"0.2588273152865106"
]
}
]
@@ -55,7 +55,7 @@
},
"value": [
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
},
{
@@ -64,7 +64,7 @@
},
"value": [
1585658599.195,
0.1446648505469157
"0.1446648505469157"
]
},
{
@@ -73,7 +73,7 @@
},
"value": [
1585658599.195,
0.23637090535053928
"0.23637090535053928"
]
},
{
@@ -82,7 +82,7 @@
},
"value": [
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
}
]

View File

@@ -15,7 +15,7 @@
},
"value": [
1585658599.193,
0.42012898861983516
"0.42012898861983516"
]
},
{
@@ -24,7 +24,7 @@
},
"value": [
1585658599.193,
0.2601006025131434
"0.2601006025131434"
]
},
{
@@ -33,7 +33,7 @@
},
"value": [
1585658599.193,
0.29849334024542695
"0.29849334024542695"
]
},
{
@@ -42,7 +42,7 @@
},
"value": [
1585658599.193,
0.2588273152865106
"0.2588273152865106"
]
}
]
@@ -59,7 +59,7 @@
},
"value": [
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
},
{
@@ -68,7 +68,7 @@
},
"value": [
1585658599.195,
0.1446648505469157
"0.1446648505469157"
]
},
{
@@ -77,7 +77,7 @@
},
"value": [
1585658599.195,
0.23637090535053928
"0.23637090535053928"
]
},
{
@@ -86,7 +86,7 @@
},
"value": [
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
}
]

View File

@@ -0,0 +1,232 @@
{
"results": [
{
"metric_name": "node_cpu_utilisation",
"data": {
"resultType": "vector",
"result": [
{
"metric": {
"node": "i-2dazc1d6"
},
"value": [
1585658599.193,
"0.18095833333306172"
]
},
{
"metric": {
"node": "i-9jtsi522"
},
"value": [
1585658599.193,
"0.03250000000007276"
]
},
{
"metric": {
"node": "i-ezjb7gsk"
},
"value": [
1585658599.193,
"0.07443750000044626"
]
},
{
"metric": {
"node": "i-hgcoippu"
},
"value": [
1585658599.193,
"0.05066666666655995"
]
},
{
"metric": {
"node": "i-ircdnrao"
},
"value": [
1585658599.193,
"0.05210416666595847"
]
},
{
"metric": {
"node": "i-o13skypq"
},
"value": [
1585658599.193,
"0.07756249999996119"
]
},
{
"metric": {
"node": "i-tl1i71hr"
}
},
{
"metric": {
"node": "i-xfcxdn7z"
},
"value": [
1585658599.193,
"0.06745833333334303"
]
}
]
}
},
{
"metric_name": "node_disk_size_utilisation",
"data": {
"resultType": "vector",
"result": [
{
"metric": {
"node": "i-2dazc1d6"
},
"value": [
1585658599.193,
"0.42012898861983516"
]
},
{
"metric": {
"node": "i-9jtsi522"
},
"value": [
1585658599.193,
"0.2601006025131434"
]
},
{
"metric": {
"node": "i-ezjb7gsk"
},
"value": [
1585658599.193,
"0.29849334024542695"
]
},
{
"metric": {
"node": "i-hgcoippu"
},
"value": [
1585658599.193,
"0.2588273152865106"
]
},
{
"metric": {
"node": "i-ircdnrao"
},
"value": [
1585658599.193,
"0.21351118996831508"
]
},
{
"metric": {
"node": "i-o13skypq"
},
"value": [
1585658599.193,
"0.4329682466178235"
]
},
{
"metric": {
"node": "i-tl1i71hr"
}
},
{
"metric": {
"node": "i-xfcxdn7z"
},
"value": [
1585658599.193,
"0.35981263055856705"
]
}
]
}
},
{
"metric_name": "node_memory_utilisation",
"data": {
"resultType": "vector",
"result": [
{
"metric": {
"node": "i-2dazc1d6"
},
"value": [
1585658599.195,
"0.5286875837861773"
]
},
{
"metric": {
"node": "i-9jtsi522"
},
"value": [
1585658599.195,
"0.1446648505469157"
]
},
{
"metric": {
"node": "i-ezjb7gsk"
},
"value": [
1585658599.195,
"0.23637090535053928"
]
},
{
"metric": {
"node": "i-hgcoippu"
},
"value": [
1585658599.195,
"0.2497060264216553"
]
},
{
"metric": {
"node": "i-ircdnrao"
},
"value": [
1585658599.195,
"0.21291125105270192"
]
},
{
"metric": {
"node": "i-o13skypq"
},
"value": [
1585658599.195,
"0.823247832787681"
]
},
{
"metric": {
"node": "i-tl1i71hr"
}
},
{
"metric": {
"node": "i-xfcxdn7z"
},
"value": [
1585658599.195,
"0.40309723127991315"
]
}
]
}
}
]
}

View File

@@ -0,0 +1,244 @@
{
"results": [
{
"metric_name": "node_cpu_utilisation",
"data": {
"resultType": "vector",
"result": [
{
"metric": {
"node": "i-2dazc1d6"
},
"value": [
1585658599.193,
"0.18095833333306172"
]
},
{
"metric": {
"node": "i-9jtsi522"
},
"value": [
1585658599.193,
"+Inf"
]
},
{
"metric": {
"node": "i-ezjb7gsk"
},
"value": [
1585658599.193,
"0.07443750000044626"
]
},
{
"metric": {
"node": "i-hgcoippu"
},
"value": [
1585658599.193,
"-Inf"
]
},
{
"metric": {
"node": "i-ircdnrao"
},
"value": [
1585658599.193,
"0.05210416666595847"
]
},
{
"metric": {
"node": "i-o13skypq"
},
"value": [
1585658599.193,
"0.07756249999996119"
]
},
{
"metric": {
"node": "i-tl1i71hr"
},
"value": [
1585658599.193,
"NaN"
]
},
{
"metric": {
"node": "i-xfcxdn7z"
},
"value": [
1585658599.193,
"0.06745833333334303"
]
}
]
}
},
{
"metric_name": "node_disk_size_utilisation",
"data": {
"resultType": "vector",
"result": [
{
"metric": {
"node": "i-2dazc1d6"
},
"value": [
1585658599.193,
"0.42012898861983516"
]
},
{
"metric": {
"node": "i-9jtsi522"
},
"value": [
1585658599.193,
"0.2601006025131434"
]
},
{
"metric": {
"node": "i-ezjb7gsk"
},
"value": [
1585658599.193,
"0.29849334024542695"
]
},
{
"metric": {
"node": "i-hgcoippu"
},
"value": [
1585658599.193,
"0.2588273152865106"
]
},
{
"metric": {
"node": "i-ircdnrao"
},
"value": [
1585658599.193,
"0.21351118996831508"
]
},
{
"metric": {
"node": "i-o13skypq"
},
"value": [
1585658599.193,
"0.4329682466178235"
]
},
{
"metric": {
"node": "i-tl1i71hr"
},
"value": [
1585658599.193,
"0.5286875837861773"
]
},
{
"metric": {
"node": "i-xfcxdn7z"
},
"value": [
1585658599.193,
"0.35981263055856705"
]
}
]
}
},
{
"metric_name": "node_memory_utilisation",
"data": {
"resultType": "vector",
"result": [
{
"metric": {
"node": "i-2dazc1d6"
},
"value": [
1585658599.195,
"0.5286875837861773"
]
},
{
"metric": {
"node": "i-9jtsi522"
},
"value": [
1585658599.195,
"0.1446648505469157"
]
},
{
"metric": {
"node": "i-ezjb7gsk"
},
"value": [
1585658599.195,
"0.23637090535053928"
]
},
{
"metric": {
"node": "i-hgcoippu"
},
"value": [
1585658599.195,
"0.2497060264216553"
]
},
{
"metric": {
"node": "i-ircdnrao"
},
"value": [
1585658599.195,
"0.21291125105270192"
]
},
{
"metric": {
"node": "i-o13skypq"
},
"value": [
1585658599.195,
"0.823247832787681"
]
},
{
"metric": {
"node": "i-tl1i71hr"
},
"value": [
1585658599.195,
"0.5286875837861773"
]
},
{
"metric": {
"node": "i-xfcxdn7z"
},
"value": [
1585658599.195,
"0.40309723127991315"
]
}
]
}
}
]
}

View File

@@ -15,7 +15,7 @@
},
"value":[
1585658599.193,
0.42012898861983516
"0.42012898861983516"
]
},
{
@@ -24,7 +24,7 @@
},
"value":[
1585658599.193,
0.2588273152865106
"0.2588273152865106"
]
}
]
@@ -41,7 +41,7 @@
},
"value":[
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
},
{
@@ -50,7 +50,7 @@
},
"value":[
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
}
]

View File

@@ -15,7 +15,7 @@
},
"value":[
1585658599.193,
0.42012898861983516
"0.42012898861983516"
]
},
{
@@ -24,7 +24,7 @@
},
"value":[
1585658599.193,
0.2588273152865106
"0.2588273152865106"
]
},
{
@@ -33,7 +33,7 @@
},
"value":[
1585658599.193,
0.29849334024542695
"0.29849334024542695"
]
},
{
@@ -42,7 +42,7 @@
},
"value":[
1585658599.193,
0.2601006025131434
"0.2601006025131434"
]
}
]
@@ -59,7 +59,7 @@
},
"value":[
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
},
{
@@ -68,7 +68,7 @@
},
"value":[
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
},
{
@@ -77,7 +77,7 @@
},
"value":[
1585658599.195,
0.23637090535053928
"0.23637090535053928"
]
},
{
@@ -86,7 +86,7 @@
},
"value":[
1585658599.195,
0.1446648505469157
"0.1446648505469157"
]
}
]

View File

@@ -0,0 +1,235 @@
{
"results":[
{
"metric_name":"node_cpu_utilisation",
"data":{
"resultType":"vector",
"result":[
{
"metric":{
"node":"i-9jtsi522"
},
"value":[
1585658599.193,
"0.03250000000007276"
]
},
{
"metric":{
"node":"i-hgcoippu"
},
"value":[
1585658599.193,
"0.05066666666655995"
]
},
{
"metric":{
"node":"i-ircdnrao"
},
"value":[
1585658599.193,
"0.05210416666595847"
]
},
{
"metric":{
"node":"i-xfcxdn7z"
},
"value":[
1585658599.193,
"0.06745833333334303"
]
},
{
"metric":{
"node":"i-ezjb7gsk"
},
"value":[
1585658599.193,
"0.07443750000044626"
]
},
{
"metric":{
"node":"i-o13skypq"
},
"value":[
1585658599.193,
"0.07756249999996119"
]
},
{
"metric":{
"node":"i-2dazc1d6"
},
"value":[
1585658599.193,
"0.18095833333306172"
]
},
{
"metric":{
"node":"i-tl1i71hr"
}
}
]
}
},
{
"metric_name":"node_disk_size_utilisation",
"data":{
"resultType":"vector",
"result":[
{
"metric":{
"node":"i-9jtsi522"
},
"value":[
1585658599.193,
"0.2601006025131434"
]
},
{
"metric":{
"node":"i-hgcoippu"
},
"value":[
1585658599.193,
"0.2588273152865106"
]
},
{
"metric":{
"node":"i-ircdnrao"
},
"value":[
1585658599.193,
"0.21351118996831508"
]
},
{
"metric":{
"node":"i-xfcxdn7z"
},
"value":[
1585658599.193,
"0.35981263055856705"
]
},
{
"metric":{
"node":"i-ezjb7gsk"
},
"value":[
1585658599.193,
"0.29849334024542695"
]
},
{
"metric":{
"node":"i-o13skypq"
},
"value":[
1585658599.193,
"0.4329682466178235"
]
},
{
"metric":{
"node":"i-2dazc1d6"
},
"value":[
1585658599.193,
"0.42012898861983516"
]
},
{
"metric":{
"node":"i-tl1i71hr"
}
}
]
}
},
{
"metric_name":"node_memory_utilisation",
"data":{
"resultType":"vector",
"result":[
{
"metric":{
"node":"i-9jtsi522"
},
"value":[
1585658599.195,
"0.1446648505469157"
]
},
{
"metric":{
"node":"i-hgcoippu"
},
"value":[
1585658599.195,
"0.2497060264216553"
]
},
{
"metric":{
"node":"i-ircdnrao"
},
"value":[
1585658599.195,
"0.21291125105270192"
]
},
{
"metric":{
"node":"i-xfcxdn7z"
},
"value":[
1585658599.195,
"0.40309723127991315"
]
},
{
"metric":{
"node":"i-ezjb7gsk"
},
"value":[
1585658599.195,
"0.23637090535053928"
]
},
{
"metric":{
"node":"i-o13skypq"
},
"value":[
1585658599.195,
"0.823247832787681"
]
},
{
"metric":{
"node":"i-2dazc1d6"
},
"value":[
1585658599.195,
"0.5286875837861773"
]
},
{
"metric":{
"node":"i-tl1i71hr"
}
}
]
}
}
],
"page":1,
"total_page":1,
"total_item":8
}

View File

@@ -0,0 +1,247 @@
{
"results":[
{
"metric_name":"node_cpu_utilisation",
"data":{
"resultType":"vector",
"result":[
{
"metric":{
"node":"i-hgcoippu"
},
"value":[
1585658599.193,
"-Inf"
]
},
{
"metric":{
"node":"i-ircdnrao"
},
"value":[
1585658599.193,
"0.05210416666595847"
]
},
{
"metric":{
"node":"i-xfcxdn7z"
},
"value":[
1585658599.193,
"0.06745833333334303"
]
},
{
"metric":{
"node":"i-ezjb7gsk"
},
"value":[
1585658599.193,
"0.07443750000044626"
]
},
{
"metric":{
"node":"i-o13skypq"
},
"value":[
1585658599.193,
"0.07756249999996119"
]
},
{
"metric":{
"node":"i-2dazc1d6"
},
"value":[
1585658599.193,
"0.18095833333306172"
]
},
{
"metric":{
"node":"i-9jtsi522"
},
"value":[
1585658599.193,
"+Inf"
]
},
{
"metric":{
"node":"i-tl1i71hr"
},
"value":[
1585658599.193,
"NaN"
]
}
]
}
},
{
"metric_name":"node_disk_size_utilisation",
"data":{
"resultType":"vector",
"result":[
{
"metric":{
"node":"i-hgcoippu"
},
"value":[
1585658599.193,
"0.2588273152865106"
]
},
{
"metric":{
"node":"i-ircdnrao"
},
"value":[
1585658599.193,
"0.21351118996831508"
]
},
{
"metric":{
"node":"i-xfcxdn7z"
},
"value":[
1585658599.193,
"0.35981263055856705"
]
},
{
"metric":{
"node":"i-ezjb7gsk"
},
"value":[
1585658599.193,
"0.29849334024542695"
]
},
{
"metric":{
"node":"i-o13skypq"
},
"value":[
1585658599.193,
"0.4329682466178235"
]
},
{
"metric":{
"node":"i-2dazc1d6"
},
"value":[
1585658599.193,
"0.42012898861983516"
]
},
{
"metric":{
"node":"i-9jtsi522"
},
"value":[
1585658599.193,
"0.2601006025131434"
]
},
{
"metric":{
"node":"i-tl1i71hr"
},
"value":[
1585658599.193,
"0.5286875837861773"
]
}
]
}
},
{
"metric_name":"node_memory_utilisation",
"data":{
"resultType":"vector",
"result":[
{
"metric":{
"node":"i-hgcoippu"
},
"value":[
1585658599.195,
"0.2497060264216553"
]
},
{
"metric":{
"node":"i-ircdnrao"
},
"value":[
1585658599.195,
"0.21291125105270192"
]
},
{
"metric":{
"node":"i-xfcxdn7z"
},
"value":[
1585658599.195,
"0.40309723127991315"
]
},
{
"metric":{
"node":"i-ezjb7gsk"
},
"value":[
1585658599.195,
"0.23637090535053928"
]
},
{
"metric":{
"node":"i-o13skypq"
},
"value":[
1585658599.195,
"0.823247832787681"
]
},
{
"metric":{
"node":"i-2dazc1d6"
},
"value":[
1585658599.195,
"0.5286875837861773"
]
},
{
"metric":{
"node":"i-9jtsi522"
},
"value":[
1585658599.195,
"0.1446648505469157"
]
},
{
"metric":{
"node":"i-tl1i71hr"
},
"value":[
1585658599.195,
"0.5286875837861773"
]
}
]
}
}
],
"page":1,
"total_page":1,
"total_item":8
}

View File

@@ -22,7 +22,7 @@
},
"value": [
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
},
{
@@ -31,7 +31,7 @@
},
"value": [
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
},
{
@@ -40,7 +40,7 @@
},
"value": [
1585658599.195,
0.23637090535053928
"0.23637090535053928"
]
}
]

View File

@@ -17,7 +17,7 @@
},
"value": [
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
},
{
@@ -26,7 +26,7 @@
},
"value": [
1585658599.195,
0.23637090535053928
"0.23637090535053928"
]
},
{
@@ -35,7 +35,7 @@
},
"value": [
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
}
]

View File

@@ -11,7 +11,7 @@
},
"value":[
1585658599.193,
0.021645833333483702
"0.021645833333483702"
]
},
{
@@ -20,7 +20,7 @@
},
"value":[
1585658599.193,
0.03250000000007276
"0.03250000000007276"
]
},
{
@@ -29,7 +29,7 @@
},
"value":[
1585658599.193,
0.05066666666655995
"0.05066666666655995"
]
},
{
@@ -38,7 +38,7 @@
},
"value":[
1585658599.193,
0.05210416666595847
"0.05210416666595847"
]
},
{
@@ -47,7 +47,7 @@
},
"value":[
1585658599.193,
0.06745833333334303
"0.06745833333334303"
]
}
]
@@ -64,7 +64,7 @@
},
"value":[
1585658599.193,
0.3335848564534758
"0.3335848564534758"
]
},
{
@@ -73,7 +73,7 @@
},
"value":[
1585658599.193,
0.2601006025131434
"0.2601006025131434"
]
},
{
@@ -82,7 +82,7 @@
},
"value":[
1585658599.193,
0.2588273152865106
"0.2588273152865106"
]
},
{
@@ -91,7 +91,7 @@
},
"value":[
1585658599.193,
0.21351118996831508
"0.21351118996831508"
]
},
{
@@ -100,7 +100,7 @@
},
"value":[
1585658599.193,
0.35981263055856705
"0.35981263055856705"
]
}
]
@@ -117,7 +117,7 @@
},
"value":[
1585658599.195,
0.12824588180084573
"0.12824588180084573"
]
},
{
@@ -126,7 +126,7 @@
},
"value":[
1585658599.195,
0.1446648505469157
"0.1446648505469157"
]
},
{
@@ -135,7 +135,7 @@
},
"value":[
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
},
{
@@ -144,7 +144,7 @@
},
"value":[
1585658599.195,
0.21291125105270192
"0.21291125105270192"
]
},
{
@@ -153,7 +153,7 @@
},
"value":[
1585658599.195,
0.40309723127991315
"0.40309723127991315"
]
}
]

View File

@@ -11,7 +11,7 @@
},
"value":[
1585658599.193,
0.07443750000044626
"0.07443750000044626"
]
},
{
@@ -20,7 +20,7 @@
},
"value":[
1585658599.193,
0.07756249999996119
"0.07756249999996119"
]
},
{
@@ -29,7 +29,7 @@
},
"value":[
1585658599.193,
0.18095833333306172
"0.18095833333306172"
]
}
]
@@ -46,7 +46,7 @@
},
"value":[
1585658599.193,
0.29849334024542695
"0.29849334024542695"
]
},
{
@@ -55,7 +55,7 @@
},
"value":[
1585658599.193,
0.4329682466178235
"0.4329682466178235"
]
},
{
@@ -64,7 +64,7 @@
},
"value":[
1585658599.193,
0.42012898861983516
"0.42012898861983516"
]
}
]
@@ -81,7 +81,7 @@
},
"value":[
1585658599.195,
0.23637090535053928
"0.23637090535053928"
]
},
{
@@ -90,7 +90,7 @@
},
"value":[
1585658599.195,
0.823247832787681
"0.823247832787681"
]
},
{
@@ -99,7 +99,7 @@
},
"value":[
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
}
]

View File

@@ -11,7 +11,7 @@
},
"value":[
1585658599.193,
0.021645833333483702
"0.021645833333483702"
]
},
{
@@ -20,7 +20,7 @@
},
"value":[
1585658599.193,
0.03250000000007276
"0.03250000000007276"
]
},
{
@@ -29,7 +29,7 @@
},
"value":[
1585658599.193,
0.05066666666655995
"0.05066666666655995"
]
},
{
@@ -38,7 +38,7 @@
},
"value":[
1585658599.193,
0.05210416666595847
"0.05210416666595847"
]
},
{
@@ -47,7 +47,7 @@
},
"value":[
1585658599.193,
0.06745833333334303
"0.06745833333334303"
]
},
{
@@ -56,7 +56,7 @@
},
"value":[
1585658599.193,
0.07443750000044626
"0.07443750000044626"
]
},
{
@@ -65,7 +65,7 @@
},
"value":[
1585658599.193,
0.07756249999996119
"0.07756249999996119"
]
},
{
@@ -74,7 +74,7 @@
},
"value":[
1585658599.193,
0.18095833333306172
"0.18095833333306172"
]
}
]
@@ -91,7 +91,7 @@
},
"value":[
1585658599.193,
0.3335848564534758
"0.3335848564534758"
]
},
{
@@ -100,7 +100,7 @@
},
"value":[
1585658599.193,
0.2601006025131434
"0.2601006025131434"
]
},
{
@@ -109,7 +109,7 @@
},
"value":[
1585658599.193,
0.2588273152865106
"0.2588273152865106"
]
},
{
@@ -118,7 +118,7 @@
},
"value":[
1585658599.193,
0.21351118996831508
"0.21351118996831508"
]
},
{
@@ -127,7 +127,7 @@
},
"value":[
1585658599.193,
0.35981263055856705
"0.35981263055856705"
]
},
{
@@ -136,7 +136,7 @@
},
"value":[
1585658599.193,
0.29849334024542695
"0.29849334024542695"
]
},
{
@@ -145,7 +145,7 @@
},
"value":[
1585658599.193,
0.4329682466178235
"0.4329682466178235"
]
},
{
@@ -154,7 +154,7 @@
},
"value":[
1585658599.193,
0.42012898861983516
"0.42012898861983516"
]
}
]
@@ -171,7 +171,7 @@
},
"value":[
1585658599.195,
0.12824588180084573
"0.12824588180084573"
]
},
{
@@ -180,7 +180,7 @@
},
"value":[
1585658599.195,
0.1446648505469157
"0.1446648505469157"
]
},
{
@@ -189,7 +189,7 @@
},
"value":[
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
},
{
@@ -198,7 +198,7 @@
},
"value":[
1585658599.195,
0.21291125105270192
"0.21291125105270192"
]
},
{
@@ -207,7 +207,7 @@
},
"value":[
1585658599.195,
0.40309723127991315
"0.40309723127991315"
]
},
{
@@ -216,7 +216,7 @@
},
"value":[
1585658599.195,
0.23637090535053928
"0.23637090535053928"
]
},
{
@@ -225,7 +225,7 @@
},
"value":[
1585658599.195,
0.823247832787681
"0.823247832787681"
]
},
{
@@ -234,7 +234,7 @@
},
"value":[
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
}
]

View File

@@ -11,7 +11,7 @@
},
"value":[
1585658599.193,
0.07756249999996119
"0.07756249999996119"
]
},
{
@@ -20,7 +20,7 @@
},
"value":[
1585658599.193,
0.18095833333306172
"0.18095833333306172"
]
},
{
@@ -29,7 +29,7 @@
},
"value":[
1585658599.193,
0.06745833333334303
"0.06745833333334303"
]
},
{
@@ -38,7 +38,7 @@
},
"value":[
1585658599.193,
0.05066666666655995
"0.05066666666655995"
]
},
{
@@ -47,7 +47,7 @@
},
"value":[
1585658599.193,
0.07443750000044626
"0.07443750000044626"
]
},
{
@@ -56,7 +56,7 @@
},
"value":[
1585658599.193,
0.05210416666595847
"0.05210416666595847"
]
},
{
@@ -65,7 +65,7 @@
},
"value":[
1585658599.193,
0.03250000000007276
"0.03250000000007276"
]
},
{
@@ -74,7 +74,7 @@
},
"value":[
1585658599.193,
0.021645833333483702
"0.021645833333483702"
]
}
]
@@ -91,7 +91,7 @@
},
"value":[
1585658599.193,
0.4329682466178235
"0.4329682466178235"
]
},
{
@@ -100,7 +100,7 @@
},
"value":[
1585658599.193,
0.42012898861983516
"0.42012898861983516"
]
},
{
@@ -109,7 +109,7 @@
},
"value":[
1585658599.193,
0.35981263055856705
"0.35981263055856705"
]
},
{
@@ -118,7 +118,7 @@
},
"value":[
1585658599.193,
0.2588273152865106
"0.2588273152865106"
]
},
{
@@ -127,7 +127,7 @@
},
"value":[
1585658599.193,
0.29849334024542695
"0.29849334024542695"
]
},
{
@@ -136,7 +136,7 @@
},
"value":[
1585658599.193,
0.21351118996831508
"0.21351118996831508"
]
},
{
@@ -145,7 +145,7 @@
},
"value":[
1585658599.193,
0.2601006025131434
"0.2601006025131434"
]
},
{
@@ -154,7 +154,7 @@
},
"value":[
1585658599.193,
0.3335848564534758
"0.3335848564534758"
]
}
]
@@ -171,7 +171,7 @@
},
"value":[
1585658599.195,
0.823247832787681
"0.823247832787681"
]
},
{
@@ -180,7 +180,7 @@
},
"value":[
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
},
{
@@ -189,7 +189,7 @@
},
"value":[
1585658599.195,
0.40309723127991315
"0.40309723127991315"
]
},
{
@@ -198,7 +198,7 @@
},
"value":[
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
},
{
@@ -207,7 +207,7 @@
},
"value":[
1585658599.195,
0.23637090535053928
"0.23637090535053928"
]
},
{
@@ -216,7 +216,7 @@
},
"value":[
1585658599.195,
0.21291125105270192
"0.21291125105270192"
]
},
{
@@ -225,7 +225,7 @@
},
"value":[
1585658599.195,
0.1446648505469157
"0.1446648505469157"
]
},
{
@@ -234,7 +234,7 @@
},
"value":[
1585658599.195,
0.12824588180084573
"0.12824588180084573"
]
}
]

View File

@@ -11,7 +11,7 @@
},
"value": [
1585658599.193,
0.18095833333306172
"0.18095833333306172"
]
},
{
@@ -20,7 +20,7 @@
},
"value": [
1585658599.193,
0.03250000000007276
"0.03250000000007276"
]
},
{
@@ -29,7 +29,7 @@
},
"value": [
1585658599.193,
0.07443750000044626
"0.07443750000044626"
]
},
{
@@ -38,7 +38,7 @@
},
"value": [
1585658599.193,
0.05066666666655995
"0.05066666666655995"
]
},
{
@@ -47,7 +47,7 @@
},
"value": [
1585658599.193,
0.05210416666595847
"0.05210416666595847"
]
},
{
@@ -56,7 +56,7 @@
},
"value": [
1585658599.193,
0.07756249999996119
"0.07756249999996119"
]
},
{
@@ -65,7 +65,7 @@
},
"value": [
1585658599.193,
0.021645833333483702
"0.021645833333483702"
]
},
{
@@ -74,7 +74,7 @@
},
"value": [
1585658599.193,
0.06745833333334303
"0.06745833333334303"
]
}
]
@@ -91,7 +91,7 @@
},
"value": [
1585658599.193,
0.42012898861983516
"0.42012898861983516"
]
},
{
@@ -100,7 +100,7 @@
},
"value": [
1585658599.193,
0.2601006025131434
"0.2601006025131434"
]
},
{
@@ -109,7 +109,7 @@
},
"value": [
1585658599.193,
0.29849334024542695
"0.29849334024542695"
]
},
{
@@ -118,7 +118,7 @@
},
"value": [
1585658599.193,
0.2588273152865106
"0.2588273152865106"
]
},
{
@@ -127,7 +127,7 @@
},
"value": [
1585658599.193,
0.21351118996831508
"0.21351118996831508"
]
},
{
@@ -136,7 +136,7 @@
},
"value": [
1585658599.193,
0.4329682466178235
"0.4329682466178235"
]
},
{
@@ -145,7 +145,7 @@
},
"value": [
1585658599.193,
0.3335848564534758
"0.3335848564534758"
]
},
{
@@ -154,7 +154,7 @@
},
"value": [
1585658599.193,
0.35981263055856705
"0.35981263055856705"
]
}
]
@@ -171,7 +171,7 @@
},
"value": [
1585658599.195,
0.5286875837861773
"0.5286875837861773"
]
},
{
@@ -180,7 +180,7 @@
},
"value": [
1585658599.195,
0.1446648505469157
"0.1446648505469157"
]
},
{
@@ -189,7 +189,7 @@
},
"value": [
1585658599.195,
0.23637090535053928
"0.23637090535053928"
]
},
{
@@ -198,7 +198,7 @@
},
"value": [
1585658599.195,
0.2497060264216553
"0.2497060264216553"
]
},
{
@@ -207,7 +207,7 @@
},
"value": [
1585658599.195,
0.21291125105270192
"0.21291125105270192"
]
},
{
@@ -216,7 +216,7 @@
},
"value": [
1585658599.195,
0.823247832787681
"0.823247832787681"
]
},
{
@@ -225,7 +225,7 @@
},
"value": [
1585658599.195,
0.12824588180084573
"0.12824588180084573"
]
},
{
@@ -234,7 +234,7 @@
},
"value": [
1585658599.195,
0.40309723127991315
"0.40309723127991315"
]
}
]

View File

@@ -17,23 +17,23 @@
"values":[
[
1585743925,
1.123456
"1.123456"
],
[
1585744045,
1.123456
"1.123456"
],
[
1585744165,
1.123456
"1.123456"
],
[
1585744285,
1.123456
"1.123456"
],
[
1585744405,
1.123456
"1.123456"
]
]
},
@@ -50,23 +50,23 @@
"values":[
[
1585743925,
1.123456
"1.123456"
],
[
1585744045,
1.123456
"1.123456"
],
[
1585744165,
1.123456
"1.123456"
],
[
1585744285,
1.123456
"1.123456"
],
[
1585744405,
1.123456
"1.123456"
]
]
},
@@ -83,23 +83,23 @@
"values":[
[
1585743925,
1.123456
"1.123456"
],
[
1585744045,
1.123456
"1.123456"
],
[
1585744165,
1.123456
"1.123456"
],
[
1585744285,
1.123456
"1.123456"
],
[
1585744405,
1.123456
"1.123456"
]
]
},
@@ -116,23 +116,23 @@
"values":[
[
1585743925,
1.123456
"1.123456"
],
[
1585744045,
1.123456
"1.123456"
],
[
1585744165,
1.123456
"1.123456"
],
[
1585744285,
1.123456
"1.123456"
],
[
1585744405,
1.123456
"1.123456"
]
]
},
@@ -149,23 +149,23 @@
"values":[
[
1585743925,
1.123456
"1.123456"
],
[
1585744045,
1.123456
"1.123456"
],
[
1585744165,
1.123456
"1.123456"
],
[
1585744285,
1.123456
"1.123456"
],
[
1585744405,
1.123456
"1.123456"
]
]
},
@@ -182,23 +182,23 @@
"values":[
[
1585743925,
1.123456
"1.123456"
],
[
1585744045,
1.123456
"1.123456"
],
[
1585744165,
1.123456
"1.123456"
],
[
1585744285,
1.123456
"1.123456"
],
[
1585744405,
1.123456
"1.123456"
]
]
}

View File

@@ -16,7 +16,7 @@
},
"value":[
1585743854.077,
1.123456
"1.123456"
]
},
{
@@ -31,7 +31,7 @@
},
"value":[
1585743854.077,
1.123456
"1.123456"
]
},
{
@@ -46,7 +46,7 @@
},
"value":[
1585743854.077,
1.123456
"1.123456"
]
},
{
@@ -61,7 +61,7 @@
},
"value":[
1585743854.077,
1.123456
"1.123456"
]
}
]

View File

@@ -1,5 +1,12 @@
package monitoring
import (
"errors"
"fmt"
"github.com/json-iterator/go"
"strconv"
)
const (
MetricTypeMatrix = "matrix"
MetricTypeVector = "vector"
@@ -22,6 +29,8 @@ type MetricData struct {
MetricValues []MetricValue `json:"result,omitempty" description:"metric data including labels, time series and values"`
}
// The first element is the timestamp, the second is the metric value.
// eg, [1585658599.195, 0.528]
type Point [2]float64
type MetricValue struct {
@@ -40,3 +49,50 @@ func (p Point) Timestamp() float64 {
func (p Point) Value() float64 {
return p[1]
}
// MarshalJSON implements json.Marshaler. It will be called when writing JSON to HTTP response
// Inspired by prometheus/client_golang
func (p Point) MarshalJSON() ([]byte, error) {
t, err := jsoniter.Marshal(p.Timestamp())
if err != nil {
return nil, err
}
v, err := jsoniter.Marshal(strconv.FormatFloat(p.Value(), 'f', -1, 64))
if err != nil {
return nil, err
}
return []byte(fmt.Sprintf("[%s,%s]", t, v)), nil
}
// UnmarshalJSON implements json.Unmarshaler. This is for unmarshaling test data.
func (p *Point) UnmarshalJSON(b []byte) error {
var v []interface{}
if err := jsoniter.Unmarshal(b, &v); err != nil {
return err
}
if v == nil {
return nil
}
if len(v) != 2 {
return errors.New("unsupported array length")
}
ts, ok := v[0].(float64)
if !ok {
return errors.New("failed to unmarshal [timestamp]")
}
valstr, ok := v[1].(string)
if !ok {
return errors.New("failed to unmarshal [value]")
}
valf, err := strconv.ParseFloat(valstr, 64)
if err != nil {
return err
}
p[0] = ts
p[1] = valf
return nil
}