aws / aws-app-mesh-examples
Duplication

Places in code with 6 or more lines that are exactly the same.

Intro
  • For duplication, we look at places in code where there are 6 or more lines of code that are exactly the same.
  • Before duplication is calculated, the code is cleaned to remove empty lines, comments, and frequently duplicated constructs such as imports.
  • You should aim at having as little as possible (<5%) of duplicated code as high-level of duplication can lead to maintenance difficulties, poor factoring, and logical contradictions.
Learn more...
Duplication Overall
  • 81% duplication:
    • 44,835 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 36,696 duplicated lines
  • 18,369 duplicates
system81% (36,696 lines)
Duplication per Extension
yaml86% (27,853 lines)
go89% (3,623 lines)
yml58% (2,864 lines)
py67% (1,045 lines)
rb82% (577 lines)
cfg91% (387 lines)
toml95% (137 lines)
proto92% (132 lines)
tpl57% (60 lines)
js7% (18 lines)
Duplication per Component (primary)
walkthroughs/howto-metrics-extension-ecs93% (5,468 lines)
walkthroughs/howto-ecs-basics96% (2,627 lines)
walkthroughs/howto-mutual-tls-file-provided-by-acm83% (1,719 lines)
walkthroughs/howto-grpc99% (1,710 lines)
walkthroughs/howto-http-headers83% (1,322 lines)
walkthroughs/eks-app-mesh-cross-account-acm99% (1,141 lines)
walkthroughs/howto-timeout-policy83% (1,073 lines)
walkthroughs/howto-ingress-gateway96% (1,053 lines)
walkthroughs/howto-grpc-ingress-gateway92% (1,050 lines)
blogs/ecs-canary-deployments-pipeline46% (1,045 lines)
walkthroughs/howto-k8s-grpc100% (1,025 lines)
walkthroughs/howto-tls-file-provided90% (1,000 lines)
walkthroughs/howto-http294% (994 lines)
walkthroughs/eks-app-mesh-multi-account100% (933 lines)
walkthroughs/howto-circuit-breakers91% (913 lines)
walkthroughs/howto-match-and-rewrite-at-ingress97% (866 lines)
blogs/eks-canary-deployments-pipeline64% (862 lines)
blogs/ecs-ec2-crossvpc-with-tls55% (861 lines)
walkthroughs/tls-with-acm98% (811 lines)
walkthroughs/eks-getting-started89% (806 lines)
walkthroughs/howto-alb76% (758 lines)
walkthroughs/howto-cross-account81% (757 lines)
walkthroughs/howto-multiple-listeners79% (746 lines)
walkthroughs/howto-outlier-detection87% (728 lines)
walkthroughs/howto-mutual-tls-file-provided97% (708 lines)
walkthroughs/howto-http-retries96% (700 lines)
blogs/ecs-cross-account57% (678 lines)
blogs/cert-manager-tls83% (657 lines)
blogs/ecs-service-connectivity46% (602 lines)
blogs/eks-multi-account-spire58% (544 lines)
walkthroughs/howto-servicediscovery-cloudmap68% (536 lines)
blogs/eks-appmesh-connectivity44% (245 lines)
walkthroughs/howto-k8s-fargate91% (203 lines)
walkthroughs/howto-k8s-mtls-file-based92% (173 lines)
blogs/eks-bulkhead-pattern-circuit-breaker42% (160 lines)
walkthroughs/howto-k8s-tls-file-based96% (154 lines)
walkthroughs/howto-k8s-mtls-sds-based42% (147 lines)
walkthroughs/howto-k8s-outlier-detection100% (144 lines)
walkthroughs/fargate50% (129 lines)
walkthroughs/howto-k8s-http2100% (107 lines)
walkthroughs/howto-k8s-connection-pools96% (57 lines)
walkthroughs/howto-k8s-http-headers100% (54 lines)
walkthroughs/howto-k8s-tls-acm100% (54 lines)
walkthroughs/howto-k8s-egress100% (54 lines)
walkthroughs/howto-k8s-alb100% (54 lines)
walkthroughs/howto-k8s-cross-cluster100% (49 lines)
walkthroughs/howto-k8s-cloudmap100% (49 lines)
walkthroughs/howto-k8s-retry-policy83% (47 lines)
walkthroughs/howto-k8s-timeout-policy76% (39 lines)
walkthroughs/howto-k8s-grpc-ingress-v213% (28 lines)
walkthroughs/howto-k8s-ingress-gateway100% (20 lines)
walkthroughs/howto-k8s-http-ingress-v2100% (20 lines)
walkthroughs/eks7% (16 lines)

Duplication Between Components (50+ lines)

G walkthroughs/howto-grpc-ingress-gateway walkthroughs/howto-grpc-ingress-gateway walkthroughs/howto-grpc walkthroughs/howto-grpc walkthroughs/howto-grpc-ingress-gateway--walkthroughs/howto-grpc 2530 walkthroughs/howto-k8s-grpc walkthroughs/howto-k8s-grpc walkthroughs/howto-grpc-ingress-gateway--walkthroughs/howto-k8s-grpc 1435 walkthroughs/howto-http2 walkthroughs/howto-http2 walkthroughs/howto-grpc-ingress-gateway--walkthroughs/howto-http2 1227 walkthroughs/howto-grpc--walkthroughs/howto-k8s-grpc 2050 walkthroughs/howto-grpc--walkthroughs/howto-http2 1532 walkthroughs/eks-app-mesh-cross-account-acm walkthroughs/eks-app-mesh-cross-account-acm walkthroughs/eks-app-mesh-multi-account walkthroughs/eks-app-mesh-multi-account walkthroughs/eks-app-mesh-cross-account-acm--walkthroughs/eks-app-mesh-multi-account 2021 walkthroughs/eks-getting-started walkthroughs/eks-getting-started walkthroughs/eks-app-mesh-cross-account-acm--walkthroughs/eks-getting-started 1267 walkthroughs/howto-alb walkthroughs/howto-alb walkthroughs/howto-ecs-basics walkthroughs/howto-ecs-basics walkthroughs/howto-alb--walkthroughs/howto-ecs-basics 2015 walkthroughs/howto-ecs-basics--walkthroughs/howto-grpc-ingress-gateway 1243 walkthroughs/howto-ecs-basics--walkthroughs/howto-grpc 1292 walkthroughs/howto-http-headers walkthroughs/howto-http-headers walkthroughs/howto-ecs-basics--walkthroughs/howto-http-headers 1702 walkthroughs/howto-http-retries walkthroughs/howto-http-retries walkthroughs/howto-ecs-basics--walkthroughs/howto-http-retries 1414 walkthroughs/howto-metrics-extension-ecs walkthroughs/howto-metrics-extension-ecs walkthroughs/howto-ecs-basics--walkthroughs/howto-metrics-extension-ecs 1809 walkthroughs/howto-timeout-policy walkthroughs/howto-timeout-policy walkthroughs/howto-ecs-basics--walkthroughs/howto-timeout-policy 1281 walkthroughs/howto-outlier-detection walkthroughs/howto-outlier-detection walkthroughs/howto-ecs-basics--walkthroughs/howto-outlier-detection 1414 walkthroughs/howto-ecs-basics--walkthroughs/howto-http2 1366 walkthroughs/howto-mutual-tls-file-provided-by-acm walkthroughs/howto-mutual-tls-file-provided-by-acm walkthroughs/howto-ecs-basics--walkthroughs/howto-mutual-tls-file-provided-by-acm 1218 walkthroughs/howto-servicediscovery-cloudmap walkthroughs/howto-servicediscovery-cloudmap walkthroughs/howto-ecs-basics--walkthroughs/howto-servicediscovery-cloudmap 1234 walkthroughs/howto-http-headers--walkthroughs/howto-http-retries 1944 walkthroughs/howto-http-headers--walkthroughs/howto-outlier-detection 1654 walkthroughs/howto-http-headers--walkthroughs/howto-http2 1310 walkthroughs/howto-ingress-gateway walkthroughs/howto-ingress-gateway walkthroughs/howto-ingress-gateway--walkthroughs/howto-timeout-policy 1799 walkthroughs/howto-tls-file-provided walkthroughs/howto-tls-file-provided walkthroughs/howto-ingress-gateway--walkthroughs/howto-tls-file-provided 1620 walkthroughs/tls-with-acm walkthroughs/tls-with-acm walkthroughs/howto-ingress-gateway--walkthroughs/tls-with-acm 1589 walkthroughs/howto-match-and-rewrite-at-ingress walkthroughs/howto-match-and-rewrite-at-ingress walkthroughs/howto-ingress-gateway--walkthroughs/howto-match-and-rewrite-at-ingress 1658 walkthroughs/howto-ingress-gateway--walkthroughs/howto-mutual-tls-file-provided-by-acm 1433 walkthroughs/howto-mutual-tls-file-provided walkthroughs/howto-mutual-tls-file-provided walkthroughs/howto-ingress-gateway--walkthroughs/howto-mutual-tls-file-provided 1290 walkthroughs/howto-multiple-listeners walkthroughs/howto-multiple-listeners walkthroughs/howto-ingress-gateway--walkthroughs/howto-multiple-listeners 1480 walkthroughs/howto-timeout-policy--walkthroughs/howto-tls-file-provided 1769 walkthroughs/howto-timeout-policy--walkthroughs/tls-with-acm 1766 walkthroughs/howto-tls-file-provided--walkthroughs/tls-with-acm 1634 walkthroughs/howto-circuit-breakers walkthroughs/howto-circuit-breakers walkthroughs/howto-circuit-breakers--walkthroughs/howto-ingress-gateway 1729 walkthroughs/howto-circuit-breakers--walkthroughs/howto-timeout-policy 1403 walkthroughs/howto-circuit-breakers--walkthroughs/howto-tls-file-provided 1324 walkthroughs/howto-circuit-breakers--walkthroughs/tls-with-acm 1247 walkthroughs/howto-circuit-breakers--walkthroughs/howto-match-and-rewrite-at-ingress 1718 walkthroughs/howto-circuit-breakers--walkthroughs/howto-mutual-tls-file-provided-by-acm 1237 walkthroughs/howto-circuit-breakers--walkthroughs/howto-multiple-listeners 1456 walkthroughs/howto-match-and-rewrite-at-ingress--walkthroughs/howto-timeout-policy 1377 walkthroughs/howto-match-and-rewrite-at-ingress--walkthroughs/howto-tls-file-provided 1261 walkthroughs/howto-match-and-rewrite-at-ingress--walkthroughs/howto-mutual-tls-file-provided-by-acm 1223 walkthroughs/howto-match-and-rewrite-at-ingress--walkthroughs/howto-multiple-listeners 1423 walkthroughs/howto-mutual-tls-file-provided-by-acm--walkthroughs/howto-timeout-policy 1358 walkthroughs/howto-mutual-tls-file-provided-by-acm--walkthroughs/howto-tls-file-provided 1308 walkthroughs/howto-mutual-tls-file-provided-by-acm--walkthroughs/tls-with-acm 1216 walkthroughs/howto-mutual-tls-file-provided-by-acm--walkthroughs/howto-mutual-tls-file-provided 1530 walkthroughs/howto-mutual-tls-file-provided--walkthroughs/howto-tls-file-provided 1332 walkthroughs/howto-multiple-listeners--walkthroughs/howto-timeout-policy 1274 walkthroughs/howto-cross-account walkthroughs/howto-cross-account walkthroughs/howto-cross-account--walkthroughs/howto-ecs-basics 1391 walkthroughs/howto-cross-account--walkthroughs/howto-http2 1273

Download: SVG DOT (open online Graphviz editor)

Open 3D force graph...

Show more details on duplication between components...
Longest Duplicates
The list of 20 longest duplicates.
See data for all 18,369 duplicates...
Size#FoldersFilesLinesCode
561 x 2 walkthroughs/howto-metrics-extension-ecs/deploy
walkthroughs/howto-metrics-extension-ecs/deploy
djapp-v3.yaml
djapp-v4.yaml
597:1178 (51%)
602:1183 (51%)
view
481 x 2 walkthroughs/howto-metrics-extension-ecs/deploy
walkthroughs/howto-metrics-extension-ecs/deploy
djapp-v3.yaml
djapp-v4.yaml
1:552 (44%)
1:552 (44%)
view
458 x 2 walkthroughs/howto-metrics-extension-ecs/deploy
walkthroughs/howto-metrics-extension-ecs/deploy
djapp-v1.yaml
djapp-v2.yaml
1:526 (43%)
1:526 (43%)
view
444 x 2 walkthroughs/howto-ecs-basics/deploy
walkthroughs/howto-ecs-basics/deploy
2-meshify.yaml
3-routing.yaml
1:495 (62%)
1:495 (48%)
view
419 x 2 walkthroughs/howto-grpc/color_client/color
walkthroughs/howto-k8s-grpc/color_client/color
color.pb.go
color.pb.go
17:647 (100%)
17:647 (100%)
view
419 x 2 walkthroughs/howto-k8s-grpc/color_client/color
walkthroughs/howto-k8s-grpc/color_server/color
color.pb.go
color.pb.go
17:647 (100%)
17:647 (100%)
view
419 x 2 walkthroughs/howto-grpc/color_client/color
walkthroughs/howto-grpc/color_server/color
color.pb.go
color.pb.go
17:647 (100%)
17:647 (100%)
view
419 x 2 walkthroughs/howto-grpc-...eway/color_server/color
walkthroughs/howto-grpc/color_server/color
color.pb.go
color.pb.go
17:647 (100%)
17:647 (100%)
view
419 x 2 walkthroughs/howto-grpc-...eway/color_server/color
walkthroughs/howto-k8s-grpc/color_client/color
color.pb.go
color.pb.go
17:647 (100%)
17:647 (100%)
view
419 x 2 walkthroughs/howto-grpc/color_server/color
walkthroughs/howto-k8s-grpc/color_client/color
color.pb.go
color.pb.go
17:647 (100%)
17:647 (100%)
view
419 x 2 walkthroughs/howto-grpc-...eway/color_server/color
walkthroughs/howto-grpc/color_client/color
color.pb.go
color.pb.go
17:647 (100%)
17:647 (100%)
view
419 x 2 walkthroughs/howto-grpc/color_client/color
walkthroughs/howto-k8s-grpc/color_server/color
color.pb.go
color.pb.go
17:647 (100%)
17:647 (100%)
view
419 x 2 walkthroughs/howto-grpc-...eway/color_server/color
walkthroughs/howto-k8s-grpc/color_server/color
color.pb.go
color.pb.go
17:647 (100%)
17:647 (100%)
view
419 x 2 walkthroughs/howto-grpc/color_server/color
walkthroughs/howto-k8s-grpc/color_server/color
color.pb.go
color.pb.go
17:647 (100%)
17:647 (100%)
view
404 x 2 walkthroughs/howto-metrics-extension-ecs/deploy
walkthroughs/howto-metrics-extension-ecs/deploy
djapp-v1.yaml
djapp-v5.yaml
1:472 (38%)
1:472 (34%)
view
404 x 2 walkthroughs/howto-metrics-extension-ecs/deploy
walkthroughs/howto-metrics-extension-ecs/deploy
djapp-v2.yaml
djapp-v5.yaml
1:472 (38%)
1:472 (34%)
view
310 x 2 walkthroughs/eks-app-mes...ount-acm/infrastructure
walkthroughs/eks-app-mes...-account/infrastructure
infrastructure_backend.yaml
infrastructure_backend.yaml
1:358 (100%)
1:376 (100%)
view
294 x 2 walkthroughs/howto-http-headers
walkthroughs/howto-http-retries
app.yaml
app.yaml
424:732 (22%)
127:435 (63%)
view
280 x 2 walkthroughs/howto-metrics-extension-ecs/deploy
walkthroughs/howto-metrics-extension-ecs/deploy
djapp-v2.yaml
djapp-v3.yaml
1:334 (26%)
1:334 (25%)
view
280 x 2 walkthroughs/howto-metrics-extension-ecs/deploy
walkthroughs/howto-metrics-extension-ecs/deploy
djapp-v1.yaml
djapp-v3.yaml
1:334 (26%)
1:334 (25%)
view
Duplicated Units
The list of top 20 duplicated units.
See data for all 43 unit duplicates...
Size#FoldersFilesLinesCode
101 x 2 walkthroughs/howto-k8s-grpc/color_client
walkthroughs/howto-grpc/color_client
main.go
main.go
30:140 
30:140 
view
67 x 2 walkthroughs/howto-circu...reakers/src/colorteller
walkthroughs/howto-match...ingress/src/colorteller
main.go
main.go
21:94 
21:94 
view
65 x 2 walkthroughs/howto-k8s-http2/color_server
walkthroughs/howto-http2/color_server
main.go
main.go
20:91 
20:91 
view
59 x 2 walkthroughs/howto-k8s-http2/color_client
walkthroughs/howto-http2/color_client
main.go
main.go
15:79 
15:79 
view
47 x 2 walkthroughs/howto-outli...ection/src/frontend-app
walkthroughs/howto-k8s-outlier-detection/feapp
main.go
main.go
46:94 
46:94 
view
32 x 2 walkthroughs/eks-getting...lb-appserver-v2/modules
blogs/ecs-service-connec.../yelb-appserver/modules
restaurantsdbupdate.rb
restaurantsdbupdate.rb
4:37 
4:37 
view
30 x 2 walkthroughs/eks-getting...lb-appserver-v2/modules
blogs/ecs-service-connec.../yelb-appserver/modules
pageviews.rb
pageviews.rb
3:34 
3:34 
view
24 x 2 walkthroughs/howto-k8s-fargate/src/feapp
walkthroughs/howto-ecs-basics/src/feapp
main.go
main.go
126:155 
126:155 
view
23 x 2 walkthroughs/howto-k8s-grpc/color_server
walkthroughs/howto-grpc/color_server
main.go
main.go
62:85 
62:85 
view
23 x 2 walkthroughs/eks-getting...lb-appserver-v2/modules
blogs/ecs-service-connec.../yelb-appserver/modules
restaurantsdbread.rb
restaurantsdbread.rb
4:28 
4:28 
view
21 x 7 walkthroughs/howto-k8s-alb/feapp
walkthroughs/howto-k8s-tls-acm/feapp
walkthroughs/howto-k8s-http-headers/feapp
walkthroughs/howto-k8s-tls-file-based/feapp
walkthroughs/howto-k8s-mtls-sds-based/feapp
walkthroughs/howto-k8s-mtls-file-based/feapp
walkthroughs/howto-k8s-egress/feapp
serve.py
serve.py
serve.py
serve.py
serve.py
serve.py
serve.py
0:0 
0:0 
0:0 
0:0 
0:0 
0:0 
0:0 
view
16 x 5 walkthroughs/howto-k8s-grpc/color_client/color
walkthroughs/howto-k8s-grpc/color_server/color
walkthroughs/howto-grpc-...eway/color_server/color
walkthroughs/howto-grpc/color_client/color
walkthroughs/howto-grpc/color_server/color
color.pb.go
color.pb.go
color.pb.go
color.pb.go
color.pb.go
553:569 
553:569 
553:569 
553:569 
553:569 
view
16 x 5 walkthroughs/howto-k8s-grpc/color_client/color
walkthroughs/howto-k8s-grpc/color_server/color
walkthroughs/howto-grpc-...eway/color_server/color
walkthroughs/howto-grpc/color_client/color
walkthroughs/howto-grpc/color_server/color
color.pb.go
color.pb.go
color.pb.go
color.pb.go
color.pb.go
571:587 
571:587 
571:587 
571:587 
571:587 
view
16 x 5 walkthroughs/howto-k8s-grpc/color_client/color
walkthroughs/howto-k8s-grpc/color_server/color
walkthroughs/howto-grpc-...eway/color_server/color
walkthroughs/howto-grpc/color_client/color
walkthroughs/howto-grpc/color_server/color
color.pb.go
color.pb.go
color.pb.go
color.pb.go
color.pb.go
589:605 
589:605 
589:605 
589:605 
589:605 
view
16 x 5 walkthroughs/howto-k8s-grpc/color_client/color
walkthroughs/howto-k8s-grpc/color_server/color
walkthroughs/howto-grpc-...eway/color_server/color
walkthroughs/howto-grpc/color_client/color
walkthroughs/howto-grpc/color_server/color
color.pb.go
color.pb.go
color.pb.go
color.pb.go
color.pb.go
607:623 
607:623 
607:623 
607:623 
607:623 
view
16 x 2 walkthroughs/howto-k8s-fargate/src/feapp
walkthroughs/howto-ecs-basics/src/feapp
main.go
main.go
63:81 
63:81 
view
15 x 2 walkthroughs/howto-k8s-fargate/src/feapp
walkthroughs/howto-ecs-basics/src/feapp
main.go
main.go
92:110 
92:110 
view
15 x 2 walkthroughs/howto-outli...ection/src/frontend-app
walkthroughs/howto-k8s-outlier-detection/feapp
main.go
main.go
116:131 
116:131 
view
14 x 2 walkthroughs/howto-outli...ection/src/frontend-app
walkthroughs/howto-k8s-outlier-detection/feapp
main.go
main.go
96:110 
96:110 
view
12 x 2 walkthroughs/howto-k8s-fargate/src/feapp
walkthroughs/howto-ecs-basics/src/feapp
main.go
main.go
164:180 
164:180 
view