aws / aws-app-mesh-examples
Conditional Complexity

The distribution of complexity of units (measured with McCabe index).

Intro
  • Conditional complexity (also called cyclomatic complexity) is a term used to measure the complexity of software. The term refers to the number of possible paths through a program function. A higher value ofter means higher maintenance and testing costs (infosecinstitute.com).
  • Conditional complexity is calculated by counting all conditions in the program that can affect the execution path (e.g. if statement, loops, switches, and/or operators, try and catch blocks...).
  • Conditional complexity is measured at the unit level (methods, functions...).
  • Units are classified in four categories based on the measured McCabe index: 1-5 (simple units), 6-10 (medium complex units), 11-25 (complex units), 26+ (very complex units).
Learn more...
Conditional Complexity Overall
  • There are 811 units with 5,502 lines of code in units (11.8% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 4 medium complex units (376 lines of code)
    • 15 simple units (751 lines of code)
    • 792 very simple units (4,375 lines of code)
0% | 0% | 6% | 13% | 79%
Legend:
51+
26-50
11-25
6-10
1-5
Alternative Visuals
Conditional Complexity per Extension
51+
26-50
11-25
6-10
1-5
go0% | 0% | 5% | 17% | 77%
py0% | 0% | 15% | 2% | 81%
rb0% | 0% | 0% | 0% | 100%
js0% | 0% | 0% | 0% | 100%
ts0% | 0% | 0% | 0% | 100%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
blogs/ecs-canary-deployments-pipeline0% | 0% | 26% | 0% | 73%
walkthroughs/howto-k8s-grpc0% | 0% | 11% | 0% | 88%
walkthroughs/howto-grpc0% | 0% | 11% | 0% | 88%
walkthroughs/howto-k8s-http20% | 0% | 0% | 100% | 0%
walkthroughs/howto-http20% | 0% | 0% | 100% | 0%
walkthroughs/howto-circuit-breakers0% | 0% | 0% | 97% | 2%
walkthroughs/howto-match-and-rewrite-at-ingress0% | 0% | 0% | 100% | 0%
walkthroughs/howto-k8s-connection-pools0% | 0% | 0% | 100% | 0%
walkthroughs/howto-k8s-grpc-ingress-v20% | 0% | 0% | 28% | 71%
walkthroughs/howto-outlier-detection0% | 0% | 0% | 29% | 70%
walkthroughs/howto-k8s-outlier-detection0% | 0% | 0% | 29% | 70%
walkthroughs/howto-metrics-extension-ecs0% | 0% | 0% | 45% | 54%
walkthroughs/howto-timeout-policy0% | 0% | 0% | 14% | 85%
walkthroughs/howto-k8s-fargate0% | 0% | 0% | 15% | 84%
walkthroughs/howto-ecs-basics0% | 0% | 0% | 15% | 84%
walkthroughs/howto-grpc-ingress-gateway0% | 0% | 0% | 0% | 100%
blogs/ecs-service-connectivity0% | 0% | 0% | 0% | 100%
walkthroughs/eks-getting-started0% | 0% | 0% | 0% | 100%
blogs/eks-canary-deployments-pipeline0% | 0% | 0% | 0% | 100%
walkthroughs/howto-multiple-listeners0% | 0% | 0% | 0% | 100%
walkthroughs/tls-with-acm0% | 0% | 0% | 0% | 100%
walkthroughs/howto-ingress-gateway0% | 0% | 0% | 0% | 100%
walkthroughs/howto-tls-file-provided0% | 0% | 0% | 0% | 100%
walkthroughs/howto-http-retries0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-retry-policy0% | 0% | 0% | 0% | 100%
blogs/eks-bulkhead-pattern-circuit-breaker0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-alb0% | 0% | 0% | 0% | 100%
walkthroughs/howto-http-headers0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-tls-acm0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-http-headers0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-tls-file-based0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-mtls-sds-based0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-mtls-file-based0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-egress0% | 0% | 0% | 0% | 100%
walkthroughs/howto-mutual-tls-file-provided-by-acm0% | 0% | 0% | 0% | 100%
walkthroughs/howto-mutual-tls-file-provided0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-timeout-policy0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-cloudmap0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-cross-cluster0% | 0% | 0% | 0% | 100%
walkthroughs/howto-alb0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-ingress-gateway0% | 0% | 0% | 0% | 100%
walkthroughs/howto-k8s-http-ingress-v20% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
def main()
in blogs/ecs-canary-deployments-pipeline/setup/scripts/delete_blog_contents.py
65 23 0
func main()
in walkthroughs/howto-k8s-grpc/color_client/main.go
102 14 0
func main()
in walkthroughs/howto-grpc/color_client/main.go
102 14 0
def lambda_handler()
in blogs/ecs-canary-deployments-pipeline/shared_stack/lambda_functions/start_canary/main.py
107 11 2
func main()
in walkthroughs/howto-circuit-breakers/src/colorteller/main.go
68 9 0
def wrk()
in walkthroughs/howto-circuit-breakers/src/wrktool/wrk.py
29 9 0
func main()
in walkthroughs/howto-k8s-http2/color_server/main.go
66 9 0
func main()
in walkthroughs/howto-match-and-rewrite-at-ingress/src/colorteller/main.go
68 9 0
func main()
in walkthroughs/howto-http2/color_server/main.go
66 9 0
func file_input_input_proto_init()
in walkthroughs/howto-k8s-grpc-ingress-v2/greeter/input/input.pb.go
49 9 0
func main()
in walkthroughs/howto-k8s-connection-pools/colorapp/main.go
68 9 0
func main()
in walkthroughs/howto-k8s-http2/color_client/main.go
60 8 0
func main()
in walkthroughs/howto-http2/color_client/main.go
60 8 0
func main()
in walkthroughs/howto-metrics-extension-ecs/src/djapp/djapp.go
40 8 0
func getColorFromColorTeller()
in walkthroughs/howto-timeout-policy/src/colorgateway/main.go
31 7 1
func getColorFromColorTeller()
in walkthroughs/howto-k8s-fargate/src/feapp/main.go
25 6 1
func updateStats()
in walkthroughs/howto-outlier-detection/src/frontend-app/main.go
48 6 2
func updateStats()
in walkthroughs/howto-k8s-outlier-detection/feapp/main.go
48 6 2
func getColorFromColorTeller()
in walkthroughs/howto-ecs-basics/src/feapp/main.go
25 6 1
func main()
in walkthroughs/howto-k8s-grpc/color_server/main.go
24 5 0