File tree Expand file tree Collapse file tree 3 files changed +38
-4
lines changed Expand file tree Collapse file tree 3 files changed +38
-4
lines changed Original file line number Diff line number Diff line change @@ -29,7 +29,7 @@ const mockedPodMetrics: PodMetricsList = {
2929 } ,
3030 timestamp : '2021-09-26T11:57:21Z' ,
3131 window : '30s' ,
32- containers : [ { name : 'nginx' , usage : { cpu : '5000000n ' , memory : '3912Ki' } } ] ,
32+ containers : [ { name : 'nginx' , usage : { cpu : '50000000n ' , memory : '3912Ki' } } ] ,
3333 } ,
3434 {
3535 metadata : {
@@ -42,7 +42,7 @@ const mockedPodMetrics: PodMetricsList = {
4242 window : '30s' ,
4343 containers : [
4444 { name : 'nginx' , usage : { cpu : '0' , memory : '4012Ki' } } ,
45- { name : 'sidecar' , usage : { cpu : '140000000n ' , memory : '3012Ki' } } ,
45+ { name : 'sidecar' , usage : { cpu : '1400000000n ' , memory : '3012Ki' } } ,
4646 ] ,
4747 } ,
4848 ] ,
Original file line number Diff line number Diff line change @@ -28,9 +28,33 @@ export function quantityToScalar(quantity: string): number | bigint {
2828 }
2929 switch ( suffix ) {
3030 case 'n' :
31- return Number ( quantity . substr ( 0 , quantity . length - 1 ) ) . valueOf ( ) / 100_000_000.0 ;
31+ return Number ( quantity . substr ( 0 , quantity . length - 1 ) ) . valueOf ( ) / 1_000_000_000.0 ;
32+ case 'u' :
33+ return Number ( quantity . substr ( 0 , quantity . length - 1 ) ) . valueOf ( ) / 1_000_000.0 ;
3234 case 'm' :
3335 return Number ( quantity . substr ( 0 , quantity . length - 1 ) ) . valueOf ( ) / 1000.0 ;
36+ case 'k' :
37+ return BigInt ( quantity . substr ( 0 , quantity . length - 1 ) ) * BigInt ( 1000 ) ;
38+ case 'M' :
39+ return BigInt ( quantity . substr ( 0 , quantity . length - 1 ) ) * BigInt ( 1000 * 1000 ) ;
40+ case 'G' :
41+ return BigInt ( quantity . substr ( 0 , quantity . length - 1 ) ) * BigInt ( 1000 * 1000 * 1000 ) ;
42+ case 'T' :
43+ return (
44+ BigInt ( quantity . substr ( 0 , quantity . length - 1 ) ) * BigInt ( 1000 * 1000 * 1000 ) * BigInt ( 1000 )
45+ ) ;
46+ case 'P' :
47+ return (
48+ BigInt ( quantity . substr ( 0 , quantity . length - 1 ) ) *
49+ BigInt ( 1000 * 1000 * 1000 ) *
50+ BigInt ( 1000 * 1000 )
51+ ) ;
52+ case 'E' :
53+ return (
54+ BigInt ( quantity . substr ( 0 , quantity . length - 1 ) ) *
55+ BigInt ( 1000 * 1000 * 1000 ) *
56+ BigInt ( 1000 * 1000 * 1000 )
57+ ) ;
3458 case 'Ki' :
3559 return BigInt ( quantity . substr ( 0 , quantity . length - 2 ) ) * BigInt ( 1024 ) ;
3660 case 'Mi' :
Original file line number Diff line number Diff line change @@ -54,11 +54,21 @@ describe('Utils', () => {
5454 it ( 'should parse quantities' , ( ) => {
5555 expect ( quantityToScalar ( '' ) ) . to . equal ( 0 ) ;
5656
57+ expect ( quantityToScalar ( '2n' ) ) . to . equal ( 2 / 1_000_000_000 ) ;
58+ expect ( quantityToScalar ( '3u' ) ) . to . equal ( 3 / 1_000_000 ) ;
5759 expect ( quantityToScalar ( '100m' ) ) . to . equal ( 0.1 ) ;
60+ expect ( quantityToScalar ( '3k' ) ) . to . equal ( BigInt ( 3000 ) ) ;
61+ expect ( quantityToScalar ( '3M' ) ) . to . equal ( BigInt ( 3 * 1000 * 1000 ) ) ;
62+ expect ( quantityToScalar ( '3G' ) ) . to . equal ( BigInt ( 3 * 1000 * 1000 * 1000 ) ) ;
63+ expect ( quantityToScalar ( '5T' ) ) . to . equal ( BigInt ( 5 * 1000 * 1000 * 1000 ) * BigInt ( 1000 ) ) ;
64+ expect ( quantityToScalar ( '3P' ) ) . to . equal ( BigInt ( 3 * 1000 * 1000 * 1000 ) * BigInt ( 1000 * 1000 ) ) ;
65+ expect ( quantityToScalar ( '14E' ) ) . to . equal (
66+ BigInt ( 14 * 1000 * 1000 * 1000 ) * BigInt ( 1000 * 1000 * 1000 ) ,
67+ ) ;
68+
5869 expect ( quantityToScalar ( '0.2' ) ) . to . equal ( 0.2 ) ;
5970 expect ( quantityToScalar ( '1976m' ) ) . to . equal ( 1.976 ) ;
6071
61- expect ( quantityToScalar ( '1024' ) ) . to . equal ( 1024 ) ;
6272 expect ( quantityToScalar ( '1024' ) ) . to . equal ( 1024 ) ;
6373 expect ( quantityToScalar ( '10e3' ) ) . to . equal ( 10000 ) ;
6474
You can’t perform that action at this time.
0 commit comments