@ -366,9 +366,9 @@ describe('Prometheus Result Transformer', () => {
const series = transformV2 ( response , options , { } ) ;
expect ( series . data [ 0 ] . fields . length ) . toEqual ( 4 ) ;
expect ( series . data [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 10 , 10 , 0 ] ) ;
expect ( series . data [ 0 ] . fields [ 2 ] . values . toArray ( ) ) . toEqual ( [ 10 , 0 , 30 ] ) ;
expect ( series . data [ 0 ] . fields [ 3 ] . values . toArray ( ) ) . toEqual ( [ 10 , 0 , 10 ] ) ;
expect ( series . data [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ 10 , 10 , 0 ] ) ;
expect ( series . data [ 0 ] . fields [ 2 ] . values ) . toEqual ( [ 10 , 0 , 30 ] ) ;
expect ( series . data [ 0 ] . fields [ 3 ] . values ) . toEqual ( [ 10 , 0 , 10 ] ) ;
expect ( series . data [ 0 ] . fields [ 1 ] . name ) . toEqual ( '1' ) ;
expect ( series . data [ 0 ] . fields [ 2 ] . name ) . toEqual ( '2' ) ;
expect ( series . data [ 0 ] . fields [ 3 ] . name ) . toEqual ( '+Inf' ) ;
@ -467,9 +467,9 @@ describe('Prometheus Result Transformer', () => {
const series = transformV2 ( response , options , { } ) ;
expect ( series . data [ 0 ] . fields . length ) . toEqual ( 4 ) ;
expect ( series . data [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 10 , 10 , 0 ] ) ;
expect ( series . data [ 0 ] . fields [ 2 ] . values . toArray ( ) ) . toEqual ( [ 10 , 0 , 30 ] ) ;
expect ( series . data [ 0 ] . fields [ 3 ] . values . toArray ( ) ) . toEqual ( [ 10 , 0 , 10 ] ) ;
expect ( series . data [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ 10 , 10 , 0 ] ) ;
expect ( series . data [ 0 ] . fields [ 2 ] . values ) . toEqual ( [ 10 , 0 , 30 ] ) ;
expect ( series . data [ 0 ] . fields [ 3 ] . values ) . toEqual ( [ 10 , 0 , 10 ] ) ;
} ) ;
it ( 'results with heatmap format and multiple histograms should be grouped and de-accumulated by non-le labels' , ( ) = > {
@ -600,17 +600,17 @@ describe('Prometheus Result Transformer', () => {
const series = transformV2 ( response , options , { } ) ;
expect ( series . data [ 0 ] . fields . length ) . toEqual ( 4 ) ;
expect ( series . data [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 10 , 10 , 0 ] ) ;
expect ( series . data [ 0 ] . fields [ 2 ] . values . toArray ( ) ) . toEqual ( [ 10 , 0 , 30 ] ) ;
expect ( series . data [ 0 ] . fields [ 3 ] . values . toArray ( ) ) . toEqual ( [ 10 , 0 , 10 ] ) ;
expect ( series . data [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ 10 , 10 , 0 ] ) ;
expect ( series . data [ 0 ] . fields [ 2 ] . values ) . toEqual ( [ 10 , 0 , 30 ] ) ;
expect ( series . data [ 0 ] . fields [ 3 ] . values ) . toEqual ( [ 10 , 0 , 10 ] ) ;
expect ( series . data [ 1 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 0 , 10 , 10 ] ) ;
expect ( series . data [ 1 ] . fields [ 2 ] . values . toArray ( ) ) . toEqual ( [ 20 , 0 , 30 ] ) ;
expect ( series . data [ 1 ] . fields [ 3 ] . values . toArray ( ) ) . toEqual ( [ 10 , 0 , 20 ] ) ;
expect ( series . data [ 1 ] . fields [ 1 ] . values ) . toEqual ( [ 0 , 10 , 10 ] ) ;
expect ( series . data [ 1 ] . fields [ 2 ] . values ) . toEqual ( [ 20 , 0 , 30 ] ) ;
expect ( series . data [ 1 ] . fields [ 3 ] . values ) . toEqual ( [ 10 , 0 , 20 ] ) ;
expect ( series . data [ 2 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 30 , 30 , 60 ] ) ;
expect ( series . data [ 2 ] . fields [ 2 ] . values . toArray ( ) ) . toEqual ( [ 0 , 10 , 0 ] ) ;
expect ( series . data [ 2 ] . fields [ 3 ] . values . toArray ( ) ) . toEqual ( [ 10 , 0 , 0 ] ) ;
expect ( series . data [ 2 ] . fields [ 1 ] . values ) . toEqual ( [ 30 , 30 , 60 ] ) ;
expect ( series . data [ 2 ] . fields [ 2 ] . values ) . toEqual ( [ 0 , 10 , 0 ] ) ;
expect ( series . data [ 2 ] . fields [ 3 ] . values ) . toEqual ( [ 10 , 0 , 0 ] ) ;
} ) ;
it ( 'Retains exemplar frames when data returned is a heatmap' , ( ) = > {
@ -667,14 +667,7 @@ describe('Prometheus Result Transformer', () => {
const series = transformV2 ( response , options , { } ) ;
expect ( series . data [ 0 ] . fields . length ) . toEqual ( 2 ) ;
expect ( series . data . length ) . toEqual ( 2 ) ;
expect ( series . data [ 1 ] . fields [ 2 ] . values . toArray ( ) ) . toEqual ( [
'hello' ,
'doctor' ,
'name' ,
'continue' ,
'yesterday' ,
'tomorrow' ,
] ) ;
expect ( series . data [ 1 ] . fields [ 2 ] . values ) . toEqual ( [ 'hello' , 'doctor' , 'name' , 'continue' , 'yesterday' , 'tomorrow' ] ) ;
expect ( series . data [ 1 ] . fields . length ) . toEqual ( 3 ) ;
} ) ;
@ -765,9 +758,9 @@ describe('Prometheus Result Transformer', () => {
expect ( tableDf . fields . length ) . toBe ( 4 ) ;
expect ( tableDf . fields [ 0 ] . name ) . toBe ( 'Time' ) ;
expect ( tableDf . fields [ 1 ] . name ) . toBe ( 'label1' ) ;
expect ( tableDf . fields [ 1 ] . values . get ( 0 ) ) . toBe ( 'value1' ) ;
expect ( tableDf . fields [ 1 ] . values [ 0 ] ) . toBe ( 'value1' ) ;
expect ( tableDf . fields [ 2 ] . name ) . toBe ( 'label2' ) ;
expect ( tableDf . fields [ 2 ] . values . get ( 0 ) ) . toBe ( 'value2' ) ;
expect ( tableDf . fields [ 2 ] . values [ 0 ] ) . toBe ( 'value2' ) ;
expect ( tableDf . fields [ 3 ] . name ) . toBe ( 'Value' ) ;
} ) ;
@ -789,9 +782,9 @@ describe('Prometheus Result Transformer', () => {
expect ( tableDf . fields . length ) . toBe ( 4 ) ;
expect ( tableDf . fields [ 0 ] . name ) . toBe ( 'Time' ) ;
expect ( tableDf . fields [ 1 ] . name ) . toBe ( 'label1' ) ;
expect ( tableDf . fields [ 1 ] . values . get ( 0 ) ) . toBe ( 'value1' ) ;
expect ( tableDf . fields [ 1 ] . values [ 0 ] ) . toBe ( 'value1' ) ;
expect ( tableDf . fields [ 2 ] . name ) . toBe ( 'label2' ) ;
expect ( tableDf . fields [ 2 ] . values . get ( 0 ) ) . toBe ( 'value2' ) ;
expect ( tableDf . fields [ 2 ] . values [ 0 ] ) . toBe ( 'value2' ) ;
expect ( tableDf . fields [ 3 ] . name ) . toBe ( 'Value' ) ;
} ) ;
@ -824,16 +817,16 @@ describe('Prometheus Result Transformer', () => {
expect ( transformedTableDataFrames [ 0 ] . fields . length ) . toBe ( 4 ) ;
expect ( transformedTableDataFrames [ 0 ] . fields [ 0 ] . name ) . toBe ( 'Time' ) ;
expect ( transformedTableDataFrames [ 0 ] . fields [ 1 ] . name ) . toBe ( 'label1' ) ;
expect ( transformedTableDataFrames [ 0 ] . fields [ 1 ] . values . get ( 0 ) ) . toBe ( value1 ) ;
expect ( transformedTableDataFrames [ 0 ] . fields [ 1 ] . values [ 0 ] ) . toBe ( value1 ) ;
expect ( transformedTableDataFrames [ 0 ] . fields [ 2 ] . name ) . toBe ( 'label2' ) ;
expect ( transformedTableDataFrames [ 0 ] . fields [ 2 ] . values . get ( 0 ) ) . toBe ( value2 ) ;
expect ( transformedTableDataFrames [ 0 ] . fields [ 2 ] . values [ 0 ] ) . toBe ( value2 ) ;
expect ( transformedTableDataFrames [ 0 ] . fields [ 3 ] . name ) . toBe ( 'Value #A' ) ;
// Expect the invalid/empty results not to throw an error and to return empty arrays
expect ( transformedTableDataFrames [ 1 ] . fields [ 1 ] . labels ) . toBe ( undefined ) ;
expect ( transformedTableDataFrames [ 1 ] . fields [ 1 ] . name ) . toBe ( 'Value #B' ) ;
expect ( transformedTableDataFrames [ 1 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ ] ) ;
expect ( transformedTableDataFrames [ 1 ] . fields [ 0 ] . values . toArray ( ) ) . toEqual ( [ ] ) ;
expect ( transformedTableDataFrames [ 1 ] . fields [ 1 ] . values ) . toEqual ( [ ] ) ;
expect ( transformedTableDataFrames [ 1 ] . fields [ 0 ] . values ) . toEqual ( [ ] ) ;
} ) ;
} ) ;
@ -901,22 +894,20 @@ describe('Prometheus Result Transformer', () => {
format : 'table' ,
} ,
} ) ;
expect ( result [ 0 ] . fields [ 0 ] . values . toArray ( ) ) . toEqual ( [
1443454528000 , 1443454530000 , 1443454529000 , 1443454531000 ,
] ) ;
expect ( result [ 0 ] . fields [ 0 ] . values ) . toEqual ( [ 1443454528000 , 1443454530000 , 1443454529000 , 1443454531000 ] ) ;
expect ( result [ 0 ] . fields [ 0 ] . name ) . toBe ( 'Time' ) ;
expect ( result [ 0 ] . fields [ 0 ] . type ) . toBe ( FieldType . time ) ;
expect ( result [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 'test' , 'test' , 'test2' , 'test2' ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ 'test' , 'test' , 'test2' , 'test2' ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . name ) . toBe ( '__name__' ) ;
expect ( result [ 0 ] . fields [ 1 ] . config . filterable ) . toBe ( true ) ;
expect ( result [ 0 ] . fields [ 1 ] . type ) . toBe ( FieldType . string ) ;
expect ( result [ 0 ] . fields [ 2 ] . values . toArray ( ) ) . toEqual ( [ '' , '' , 'localhost:8080' , 'localhost:8080' ] ) ;
expect ( result [ 0 ] . fields [ 2 ] . values ) . toEqual ( [ '' , '' , 'localhost:8080' , 'localhost:8080' ] ) ;
expect ( result [ 0 ] . fields [ 2 ] . name ) . toBe ( 'instance' ) ;
expect ( result [ 0 ] . fields [ 2 ] . type ) . toBe ( FieldType . string ) ;
expect ( result [ 0 ] . fields [ 3 ] . values . toArray ( ) ) . toEqual ( [ 'testjob' , 'testjob' , 'otherjob' , 'otherjob' ] ) ;
expect ( result [ 0 ] . fields [ 3 ] . values ) . toEqual ( [ 'testjob' , 'testjob' , 'otherjob' , 'otherjob' ] ) ;
expect ( result [ 0 ] . fields [ 3 ] . name ) . toBe ( 'job' ) ;
expect ( result [ 0 ] . fields [ 3 ] . type ) . toBe ( FieldType . string ) ;
expect ( result [ 0 ] . fields [ 4 ] . values . toArray ( ) ) . toEqual ( [ 3846 , 3848 , 3847 , 3849 ] ) ;
expect ( result [ 0 ] . fields [ 4 ] . values ) . toEqual ( [ 3846 , 3848 , 3847 , 3849 ] ) ;
expect ( result [ 0 ] . fields [ 4 ] . name ) . toEqual ( 'Value' ) ;
expect ( result [ 0 ] . fields [ 4 ] . type ) . toBe ( FieldType . number ) ;
expect ( result [ 0 ] . refId ) . toBe ( 'A' ) ;
@ -952,13 +943,13 @@ describe('Prometheus Result Transformer', () => {
it ( 'should return data frame' , ( ) = > {
const result = transform ( { data : response } as any , { . . . options , target : { format : 'table' } } ) ;
expect ( result [ 0 ] . fields [ 0 ] . values . toArray ( ) ) . toEqual ( [ 1443454528000 ] ) ;
expect ( result [ 0 ] . fields [ 0 ] . values ) . toEqual ( [ 1443454528000 ] ) ;
expect ( result [ 0 ] . fields [ 0 ] . name ) . toBe ( 'Time' ) ;
expect ( result [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 'test' ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ 'test' ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . name ) . toBe ( '__name__' ) ;
expect ( result [ 0 ] . fields [ 2 ] . values . toArray ( ) ) . toEqual ( [ 'testjob' ] ) ;
expect ( result [ 0 ] . fields [ 2 ] . values ) . toEqual ( [ 'testjob' ] ) ;
expect ( result [ 0 ] . fields [ 2 ] . name ) . toBe ( 'job' ) ;
expect ( result [ 0 ] . fields [ 3 ] . values . toArray ( ) ) . toEqual ( [ 3846 ] ) ;
expect ( result [ 0 ] . fields [ 3 ] . values ) . toEqual ( [ 3846 ] ) ;
expect ( result [ 0 ] . fields [ 3 ] . name ) . toEqual ( 'Value' ) ;
} ) ;
@ -976,7 +967,7 @@ describe('Prometheus Result Transformer', () => {
} ,
} ;
const result = transform ( { data : response } as any , { . . . options , target : { format : 'table' } } ) ;
expect ( result [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 102 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ 102 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . type ) . toEqual ( FieldType . number ) ;
} ) ;
} ) ;
@ -1046,10 +1037,10 @@ describe('Prometheus Result Transformer', () => {
] ) ;
const result = transform ( { data : response } as any , { query : options , target : options } as any ) ;
expect ( result [ 0 ] . fields [ 0 ] . values . toArray ( ) ) . toEqual ( [ 1445000010000 , 1445000020000 , 1445000030000 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 10 , 10 , 0 ] ) ;
expect ( result [ 0 ] . fields [ 2 ] . values . toArray ( ) ) . toEqual ( [ 10 , 0 , 30 ] ) ;
expect ( result [ 0 ] . fields [ 3 ] . values . toArray ( ) ) . toEqual ( [ 10 , 0 , 10 ] ) ;
expect ( result [ 0 ] . fields [ 0 ] . values ) . toEqual ( [ 1445000010000 , 1445000020000 , 1445000030000 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ 10 , 10 , 0 ] ) ;
expect ( result [ 0 ] . fields [ 2 ] . values ) . toEqual ( [ 10 , 0 , 30 ] ) ;
expect ( result [ 0 ] . fields [ 3 ] . values ) . toEqual ( [ 10 , 0 , 10 ] ) ;
} ) ;
it ( 'should handle missing datapoints' , ( ) = > {
@ -1078,9 +1069,9 @@ describe('Prometheus Result Transformer', () => {
} ,
] ) ;
const result = transform ( { data : response } as any , { query : options , target : options } as any ) ;
expect ( result [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 1 , 2 ] ) ;
expect ( result [ 0 ] . fields [ 2 ] . values . toArray ( ) ) . toEqual ( [ 1 , 3 , 1 ] ) ;
expect ( result [ 0 ] . fields [ 3 ] . values . toArray ( ) ) . toEqual ( [ 1 , 2 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ 1 , 2 ] ) ;
expect ( result [ 0 ] . fields [ 2 ] . values ) . toEqual ( [ 1 , 3 , 1 ] ) ;
expect ( result [ 0 ] . fields [ 3 ] . values ) . toEqual ( [ 1 , 2 ] ) ;
} ) ;
} ) ;
@ -1137,8 +1128,8 @@ describe('Prometheus Result Transformer', () => {
end : 2 ,
} ,
} ) ;
expect ( result [ 0 ] . fields [ 0 ] . values . toArray ( ) ) . toEqual ( [ 0 , 1000 , 2000 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ 10 , 10 , 0 ] ) ;
expect ( result [ 0 ] . fields [ 0 ] . values ) . toEqual ( [ 0 , 1000 , 2000 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ 10 , 10 , 0 ] ) ;
expect ( result [ 0 ] . name ) . toBe ( 'test{job="testjob"}' ) ;
} ) ;
@ -1148,8 +1139,8 @@ describe('Prometheus Result Transformer', () => {
query : { step : 1 , start : 0 , end : 2 } ,
} ) ;
expect ( result [ 0 ] . fields [ 0 ] . values . toArray ( ) ) . toEqual ( [ 0 , 1000 , 2000 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ null , 10 , 0 ] ) ;
expect ( result [ 0 ] . fields [ 0 ] . values ) . toEqual ( [ 0 , 1000 , 2000 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ null , 10 , 0 ] ) ;
} ) ;
it ( 'should use __name__ label as series name' , ( ) = > {
@ -1242,8 +1233,8 @@ describe('Prometheus Result Transformer', () => {
} ;
const result = transform ( { data : response } as any , { . . . options , query : { step : 2 , start : 0 , end : 8 } } ) ;
expect ( result [ 0 ] . fields [ 0 ] . values . toArray ( ) ) . toEqual ( [ 0 , 2000 , 4000 , 6000 , 8000 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ null , null , 10 , null , 10 ] ) ;
expect ( result [ 0 ] . fields [ 0 ] . values ) . toEqual ( [ 0 , 2000 , 4000 , 6000 , 8000 ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ null , null , 10 , null , 10 ] ) ;
} ) ;
} ) ;
@ -1262,7 +1253,7 @@ describe('Prometheus Result Transformer', () => {
. . . options ,
target : { format : 'table' } ,
} ) ;
expect ( result [ 0 ] . fields [ 1 ] . values . toArray ( ) ) . toEqual ( [ Number . POSITIVE_INFINITY ] ) ;
expect ( result [ 0 ] . fields [ 1 ] . values ) . toEqual ( [ Number . POSITIVE_INFINITY ] ) ;
} ) ;
} ) ;
@ -1290,7 +1281,7 @@ describe('Prometheus Result Transformer', () => {
. . . options ,
target : { format : 'table' } ,
} ) ;
expect ( result [ 0 ] . fields [ 3 ] . values . toArray ( ) ) . toEqual ( [ Number . POSITIVE_INFINITY , Number . NEGATIVE_INFINITY ] ) ;
expect ( result [ 0 ] . fields [ 3 ] . values ) . toEqual ( [ Number . POSITIVE_INFINITY , Number . NEGATIVE_INFINITY ] ) ;
} ) ;
} ) ;
} ) ;