1818 */
1919
2020import mockFs from 'mock-fs' ;
21+ import { loggerMock } from '@kbn/logging/target/mocks' ;
2122import { OsCgroupMetricsCollector } from './cgroup' ;
2223
2324describe ( 'OsCgroupMetricsCollector' , ( ) => {
@@ -30,8 +31,10 @@ describe('OsCgroupMetricsCollector', () => {
3031 } ,
3132 } ) ;
3233
33- const collector = new OsCgroupMetricsCollector ( { } ) ;
34+ const logger = loggerMock . create ( ) ;
35+ const collector = new OsCgroupMetricsCollector ( { logger } ) ;
3436 expect ( await collector . collect ( ) ) . toEqual ( { } ) ;
37+ expect ( logger . error ) . not . toHaveBeenCalled ( ) ;
3538 } ) ;
3639
3740 it ( 'collects default cgroup data' , async ( ) => {
@@ -51,7 +54,7 @@ throttled_time 666
5154 ` ,
5255 } ) ;
5356
54- const collector = new OsCgroupMetricsCollector ( { } ) ;
57+ const collector = new OsCgroupMetricsCollector ( { logger : loggerMock . create ( ) } ) ;
5558 expect ( await collector . collect ( ) ) . toMatchInlineSnapshot ( `
5659 Object {
5760 "cpu": Object {
@@ -90,6 +93,7 @@ throttled_time 666
9093 } ) ;
9194
9295 const collector = new OsCgroupMetricsCollector ( {
96+ logger : loggerMock . create ( ) ,
9397 cpuAcctPath : 'xxcustomcpuacctxx' ,
9498 cpuPath : 'xxcustomcpuxx' ,
9599 } ) ;
@@ -112,4 +116,23 @@ throttled_time 666
112116 }
113117 ` ) ;
114118 } ) ;
119+
120+ it ( 'returns empty object and logs error on an EACCES error' , async ( ) => {
121+ mockFs ( {
122+ '/proc/self/cgroup' : `
123+ 123:memory:/groupname
124+ 123:cpu:/groupname
125+ 123:cpuacct:/groupname
126+ ` ,
127+ '/sys/fs/cgroup' : mockFs . directory ( { mode : parseInt ( '0000' , 8 ) } ) ,
128+ } ) ;
129+
130+ const logger = loggerMock . create ( ) ;
131+
132+ const collector = new OsCgroupMetricsCollector ( { logger } ) ;
133+ expect ( await collector . collect ( ) ) . toEqual ( { } ) ;
134+ expect ( logger . error ) . toHaveBeenCalledWith (
135+ "cgroup metrics could not be read due to error: [Error: EACCES, permission denied '/sys/fs/cgroup/cpuacct/groupname/cpuacct.usage']"
136+ ) ;
137+ } ) ;
115138} ) ;
0 commit comments