aws-solutions / aws-limit-monitor
Unit Size

The distribution of size of units (measured in lines of code).

Intro
  • Unit size measurements show the distribution of size of units of code (methods, functions...).
  • Units are classified in four categories based on their size (lines of code): 1-20 (small units), 20-50 (medium size units), 51-100 (long units), 101+ (very long units).
  • You should aim at keeping units small (< 20 lines). Long units may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
Unit Size Overall
  • There are 77 units with 2,090 lines of code in units (80.5% of code).
    • 3 very long units (965 lines of code)
    • 1 long units (76 lines of code)
    • 18 medium size units (577 lines of code)
    • 19 small units (258 lines of code)
    • 36 very small units (214 lines of code)
46% | 3% | 27% | 12% | 10%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
ts100% | 0% | 0% | 0% | 0%
js9% | 6% | 46% | 20% | 17%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
source/lib100% | 0% | 0% | 0% | 0%
source/lambda/services/customhelper31% | 0% | 40% | 21% | 6%
source/lambda/services/slacknotify0% | 40% | 26% | 12% | 19%
source/lambda/services/servicequotaschecks0% | 0% | 69% | 15% | 14%
source/lambda/services/limitreport0% | 0% | 56% | 16% | 26%
source/lambda/resources/event-injector0% | 0% | 100% | 0% | 0%
source/lambda/services/tarefresh0% | 0% | 0% | 53% | 46%
source/lambda/resources/logger0% | 0% | 0% | 100% | 0%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
constructor()
in source/lib/limit-monitor-stack.ts
557 5 3
constructor()
in source/lib/limit-monitor-spoke-stack.ts
291 2 3
const respond = function()
in source/lambda/services/customhelper/lib/index.js
117 18 3
slackMessageBuilder()
in source/lambda/services/slacknotify/lib/slack-notify.js
76 7 1
async function createSSMParameter()
in source/lambda/services/customhelper/lib/index.js
50 2 3
let sendResponse = function()
in source/lambda/services/customhelper/lib/index.js
40 1 5
metricsHelper.prototype.sendAnonymousMetric = function()
in source/lambda/services/customhelper/lib/metrics-helper.js
37 2 2
updateTable()
in source/lambda/services/limitreport/lib/limit-report.js
37 2 2
sendMetrics()
in source/lambda/services/limitreport/lib/limit-report.js
37 3 2
metricsHelper.prototype.sendAnonymousMetric = function()
in source/lambda/services/limitreport/lib/metrics-helper.js
37 2 2
async getRegionsForServiceQuotas()
in source/lambda/services/servicequotaschecks/lib/service-quotas-checks.js
36 4 0
async performLimitCheck()
in source/lambda/services/servicequotaschecks/lib/service-quotas-checks.js
35 5 5
async getEC2InstanceTypes()
in source/lambda/services/servicequotaschecks/lib/service-quotas-checks.js
33 5 0
async pushEventToEventbridge()
in source/lambda/services/servicequotaschecks/lib/service-quotas-checks.js
32 2 7
StartTime: getUsageWindow()
in source/lambda/services/servicequotaschecks/lib/service-quotas-checks.js
30 1 0
EndTime: getUsageWindow()
in source/lambda/services/servicequotaschecks/lib/service-quotas-checks.js
29 1 0
async getServiceLimits()
in source/lambda/services/servicequotaschecks/lib/service-quotas-checks.js
28 4 3
postMessage()
in source/lambda/services/slacknotify/lib/slack-notify.js
27 2 3
let sendMetrics = function()
in source/lambda/services/customhelper/lib/index.js
23 2 3
removeMessage()
in source/lambda/services/limitreport/lib/limit-report.js
23 2 2