aws-observability / aws-otel-test-framework
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 260 units with 2,943 lines of code in units (18.4% of code).
    • 0 very long units (0 lines of code)
    • 8 long units (491 lines of code)
    • 27 medium size units (790 lines of code)
    • 53 small units (776 lines of code)
    • 172 very small units (886 lines of code)
0% | 16% | 26% | 26% | 30%
Legend:
101+
51-100
21-50
11-20
1-10
Unit Size per Extension
101+
51-100
21-50
11-20
1-10
java0% | 14% | 20% | 31% | 33%
go0% | 24% | 47% | 10% | 18%
py0% | 0% | 0% | 41% | 58%
Unit Size per Logical Component
primary logical decomposition
101+
51-100
21-50
11-20
1-10
validator/src0% | 12% | 23% | 36% | 26%
cmd/aotutil0% | 47% | 43% | 0% | 8%
trace-java-client/src0% | 17% | 15% | 27% | 40%
sample-apps/jaeger-zipkin-sample-app0% | 100% | 0% | 0% | 0%
sample-apps/prometheus0% | 0% | 49% | 25% | 25%
mocked_servers/grpc_trace0% | 0% | 54% | 21% | 23%
mocked_servers/grpc_metrics0% | 0% | 54% | 21% | 23%
mocked_servers/https0% | 0% | 48% | 0% | 51%
load-generator/src0% | 0% | 11% | 16% | 72%
sample-apps/statsd0% | 0% | 0% | 41% | 58%
sample-apps/jmx0% | 0% | 0% | 0% | 100%
Alternative Visuals
Longest Units
Top 20 longest units
Unit# linesMcCabe index# params
public void validate()
in validator/src/main/java/com/amazon/aoc/validators/PerformanceValidator.java
68 2 0
public IValidator launchValidator()
in validator/src/main/java/com/amazon/aoc/validators/ValidatorFactory.java
67 16 1
private Span createSpanForServiceRouteCall()
in trace-java-client/src/main/java/com/amazon/opentelemetry/trace/utils/TraceGenerator.java
67 12 4
func ssmCmd()
in cmd/aotutil/ssm.go
67 7 2
public static void main()
in sample-apps/jaeger-zipkin-sample-app/src/main/java/com/amazon/sampleapp/App.java
58 6 1
func()
in cmd/aotutil/efs.go
58 15 1
private List rollupMetric()
in validator/src/main/java/com/amazon/aoc/helpers/CWMetricHelper.java
53 8 1
func()
in cmd/aotutil/ec2.go
53 17 1
func registerMetrics()
in sample-apps/prometheus/main.go
44 2 1
public void validate()
in validator/src/main/java/com/amazon/aoc/validators/CWMetricValidator.java
41 8 0
public void validate()
in validator/src/main/java/com/amazon/aoc/validators/AlarmPullingValidator.java
40 5 0
public void validate()
in validator/src/main/java/com/amazon/aoc/validators/TraceValidator.java
38 5 0
private TreeMap generateMergedTagSets()
in trace-java-client/src/main/java/com/amazon/opentelemetry/trace/model/topology/ServiceTier.java
32 7 1
abstract List getExpectedMetrics()
in validator/src/main/java/com/amazon/aoc/validators/AbstractCWMetricsValidator.java
31 5 2
private void validate()
in validator/src/main/java/com/amazon/aoc/App.java
31 8 2
func()
in sample-apps/prometheus/metric_collector.go
30 3 1
func()
in sample-apps/prometheus/metric_collector.go
30 3 1
private void compareMetricLists()
in validator/src/main/java/com/amazon/aoc/validators/CWMetricValidator.java
30 6 2
func()
in cmd/aotutil/ssm.go
30 6 1
public SampleAppResponse callSampleApp()
in validator/src/main/java/com/amazon/aoc/callers/HttpCaller.java
29 3 0