1 | 'use strict'
|
2 |
|
3 | const debug = require('debug')('doctor')
|
4 |
|
5 | function issueCategory (issues) {
|
6 | debug('detected issues', issues)
|
7 | const memoryIssue = (issues.memory.external || issues.memory.rss ||
|
8 | issues.memory.heapTotal || issues.memory.heapUsed)
|
9 |
|
10 | let category = 'unknown'
|
11 |
|
12 | if (memoryIssue && !issues.cpu && !issues.handles) {
|
13 | category = 'gc'
|
14 | } else if (!memoryIssue && issues.delay && !issues.cpu && !issues.handles) {
|
15 | category = 'event-loop'
|
16 | } else if (!memoryIssue && !issues.delay && (issues.cpu || issues.handles)) {
|
17 | category = 'io'
|
18 | } else if (!memoryIssue && !issues.delay && !issues.cpu && !issues.handles) {
|
19 | category = 'none'
|
20 | }
|
21 |
|
22 | debug('category', category)
|
23 |
|
24 | return category
|
25 | }
|
26 | module.exports = issueCategory
|