opensearch-project / anomaly-detection
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
  • 9% duplication:
    • 27,295 cleaned lines of cleaned code (without empty lines, comments, and frequently duplicated constructs such as imports)
    • 2,622 duplicated lines
  • 459 duplicates
system9% (2,622 lines)
Duplication per Extension
java9% (2,622 lines)
Duplication per Component (primary)
src/main/java/org/opensearch/ad/model15% (667 lines)
src/main/java/org/opensearch/ad/transport9% (600 lines)
src/main/java/org/opensearch/ad/ratelimit24% (298 lines)
src/main/java/org/opensearch/ad/task6% (252 lines)
src/main/java/org/opensearch/ad/rest12% (219 lines)
src/main/java/org/opensearch/ad7% (177 lines)
src/main/java/org/opensearch/ad/feature13% (160 lines)
src/main/java/org/opensearch/ad/util7% (71 lines)
src/main/java/org/opensearch/ad/ml3% (67 lines)
src/main/java/org/opensearch/ad/settings8% (60 lines)
src/main/java/org/opensearch/ad/indices2% (20 lines)
src/main/java/org/opensearch/ad/caching2% (17 lines)
src/main/java/org/opensearch/ad/stats3% (8 lines)
src/main/java/org/opensearch/ad/cluster<1% (6 lines)
src/main/java/org/opensearch/ad/constant0% (0 lines)
src/main/java/org/opensearch/ad/dataprocessor0% (0 lines)
src/main/java/org/opensearch/ad/common0% (0 lines)
src/main/java/org/opensearch/ad/breaker0% (0 lines)
src/main/java/org/opensearch/ad/annotation0% (0 lines)
src/main/plugin-metadata0% (0 lines)
src/main/groovy/io/pry/gradle/offline_dependencies0% (0 lines)
ROOT0% (0 lines)

Duplication Between Components (50+ lines)

G src/main/java/org/opensearch/ad/model src/main/java/org/opensearch/ad/model src/main/java/org/opensearch/ad/transport src/main/java/org/opensearch/ad/transport src/main/java/org/opensearch/ad/model--src/main/java/org/opensearch/ad/transport 219 src/main/java/org/opensearch/ad/ml src/main/java/org/opensearch/ad/ml src/main/java/org/opensearch/ad/ml--src/main/java/org/opensearch/ad/model 102 src/main/java/org/opensearch/ad/feature src/main/java/org/opensearch/ad/feature src/main/java/org/opensearch/ad/feature--src/main/java/org/opensearch/ad/model 102 src/main/java/org/opensearch/ad/rest src/main/java/org/opensearch/ad/rest src/main/java/org/opensearch/ad/rest--src/main/java/org/opensearch/ad/transport 64 src/main/java/org/opensearch/ad/caching src/main/java/org/opensearch/ad/caching src/main/java/org/opensearch/ad/caching--src/main/java/org/opensearch/ad/model 58

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 459 duplicates...
Size#FoldersFilesLinesCode
24 x 2 src/main/java/org/opensearch/ad/model
src/main/java/org/opensearch/ad/model
ADEntityTaskProfile.java
ADTaskProfile.java
202:247 (11%)
382:427 (5%)
view
23 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
BatchWorker.java
SingleRequestWorker.java
60:82 (34%)
50:72 (39%)
view
22 x 2 src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
AnomalyResultResponse.java
RCFResultResponse.java
256:286 (8%)
176:207 (15%)
view
18 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
ColdEntityWorker.java
EntityColdStartWorker.java
75:92 (20%)
69:86 (26%)
view
18 x 2 src/main/java/org/opensearch/ad/model
src/main/java/org/opensearch/ad/model
ADEntityTaskProfile.java
ADTaskProfile.java
90:107 (8%)
293:310 (4%)
view
18 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
ConcurrentWorker.java
SingleRequestWorker.java
74:91 (26%)
37:54 (31%)
view
18 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
CheckpointWriteWorker.java
ResultWriteWorker.java
73:90 (12%)
72:89 (13%)
view
16 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
CheckpointReadWorker.java
ColdEntityWorker.java
107:122 (6%)
77:92 (17%)
view
16 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
EntityColdStartWorker.java
ResultWriteWorker.java
71:86 (23%)
74:89 (12%)
view
16 x 2 src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
AnomalyResultResponse.java
RCFResultResponse.java
150:172 (6%)
89:111 (11%)
view
16 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
CheckpointReadWorker.java
CheckpointWriteWorker.java
107:122 (6%)
75:90 (11%)
view
16 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
CheckpointReadWorker.java
EntityColdStartWorker.java
107:122 (6%)
71:86 (23%)
view
16 x 2 src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
DeleteModelRequest.java
RCFPollingRequest.java
54:74 (57%)
45:65 (61%)
view
16 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
BatchWorker.java
SingleRequestWorker.java
43:58 (24%)
34:49 (27%)
view
16 x 2 src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
DeleteModelRequest.java
StopDetectorRequest.java
54:74 (57%)
57:77 (41%)
view
16 x 2 src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
RCFPollingRequest.java
StopDetectorRequest.java
45:65 (61%)
57:77 (41%)
view
16 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
CheckpointWriteWorker.java
EntityColdStartWorker.java
75:90 (11%)
71:86 (23%)
view
16 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
CheckpointWriteWorker.java
ColdEntityWorker.java
75:90 (11%)
77:92 (17%)
view
16 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
ColdEntityWorker.java
ResultWriteWorker.java
77:92 (17%)
74:89 (12%)
view
16 x 2 src/main/java/org/opensearch/ad/ratelimit
src/main/java/org/opensearch/ad/ratelimit
CheckpointReadWorker.java
ResultWriteWorker.java
107:122 (6%)
74:89 (12%)
view
Duplicated Units
The list of top 5 duplicated units.
See data for all 5 unit duplicates...
Size#FoldersFilesLinesCode
8 x 2 src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
ADCancelTaskNodeRequest.java
ADCancelTaskRequest.java
26:34 
33:41 
view
6 x 3 src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
RCFPollingRequest.java
DeleteModelRequest.java
StopDetectorRequest.java
52:58 
61:67 
64:70 
view
6 x 3 src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
ADTaskProfileRequest.java
ADCancelTaskRequest.java
DeleteAnomalyDetectorRequest.java
41:47 
56:62 
50:56 
view
6 x 2 src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
ADCancelTaskNodeRequest.java
ADCancelTaskRequest.java
44:50 
65:71 
view
6 x 3 src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
src/main/java/org/opensearch/ad/transport
DeleteAnomalyDetectorRequest.java
ADTaskProfileRequest.java
ADCancelTaskRequest.java
50:56 
41:47 
56:62 
view