File Complexity Overall
  • There are 91 files with units, with 8,434 lines of code.
    • 0 very complex files (McCabe index sum 251+; 0 lines of code)
    • 0 complex files (McCabe index sum 126-250; 0 lines of code)
    • 3 medium complex files (McCabe index sum 51-125; 1,706 lines of code)
    • 8 slightly complex files (McCabe index sum 26-50; 1,551 lines of code)
    • 80 simple files (McCabe index sum 1-25; 5,177 lines of code)
  • 14 main files have no units (e.g. languages without unit analysis, or files without functions) and are not classified.
system0% | 0% | 20% | 18% | 61%
Legend:
251+
126-250
51-125
26-50
1-25


explore: grouped by folders | grouped by complexity
File Complexity per Extension
251+
126-250
51-125
26-50
1-25
java0% | 0% | 20% | 18% | 61%
File Complexity per Logical Decomposition
primary
251+
126-250
51-125
26-50
1-25
raigad0% | 0% | 20% | 18% | 60%
raigad-discovery-plugin0% | 0% | 0% | 0% | 100%
Most Complex Files (Top 50)

The McCabe index of a file grows with its size: per 100 lines tells a large but plain file from a dense one, and most complex unit whether the complexity sits in one unit or is spread over many.

File# lines# unitsMcCabe index
(sum)
per 100
lines
most complex
unit
RaigadConfiguration.java
in raigad/src/main/java/com/netflix/raigad/configuration
756 104 117 15 6
NodeIndicesStatsMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
648 86 114 18 10
JvmStatsMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
302 42 54 18 13
InstanceDataDAOCassandra.java
in raigad/src/main/java/com/netflix/raigad/identity
309 15 46 15 8
EstimatedHistogram.java
in raigad/src/main/java/com/netflix/raigad/monitoring
168 16 42 25 6
SystemUtils.java
in raigad/src/main/java/com/netflix/raigad/utils
230 10 41 18 7
ThreadPoolStatsMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
229 29 39 17 11
ElasticsearchIndexManager.java
in raigad/src/main/java/com/netflix/raigad/indexmanagement
152 12 31 20 7
AbstractConfigSource.java
in raigad/src/main/java/com/netflix/raigad/configuration
176 15 30 17 3
RestoreBackupManager.java
in raigad/src/main/java/com/netflix/raigad/backup
136 7 30 22 14
InstanceManager.java
in raigad/src/main/java/com/netflix/raigad/identity
151 10 28 19 10
AWSMembership.java
in raigad/src/main/java/com/netflix/raigad/aws
233 9 25 11 8
OsStatsMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
159 19 24 15 6
SnapshotBackupManager.java
in raigad/src/main/java/com/netflix/raigad/backup
154 11 24 16 6
AllCircuitBreakerStatsMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
136 13 23 17 11
HealthMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
128 10 23 18 14
UpdateTribeSecuritySettings.java
in raigad/src/main/java/com/netflix/raigad/aws
134 6 22 16 11
RaigadInstance.java
in raigad/src/main/java/com/netflix/raigad/identity
85 21 21 25 1
IndexMetadata.java
in raigad/src/main/java/com/netflix/raigad/indexmanagement
105 10 21 20 9
RaigadInstance.java
in raigad-discovery-plugin/src/main/java/com/netflix/raigad/discovery
82 21 21 26 1
StandardTuner.java
in raigad/src/main/java/com/netflix/raigad/defaultimpl
148 3 20 14 13
FsStatsMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
129 15 20 16 6
ProcessStatsMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
125 14 19 15 6
RaigadServer.java
in raigad/src/main/java/com/netflix/raigad/startup
146 5 19 13 15
ElasticsearchProcessMonitor.java
in raigad/src/main/java/com/netflix/raigad/utils
77 9 17 22 9
ElasticsearchProcessManager.java
in raigad/src/main/java/com/netflix/raigad/defaultimpl
90 6 17 19 4
ElasticsearchInstance.java
in raigad/src/main/java/com/netflix/raigad/defaultimpl
74 17 17 23 1
TransportStatsMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
117 12 17 15 6
CustomConfigSource.java
in raigad/src/main/java/com/netflix/raigad/configuration
69 16 16 23 1
CompositeConfigSource.java
in raigad/src/main/java/com/netflix/raigad/configuration
80 11 15 19 3
PropertiesConfigSource.java
in raigad/src/main/java/com/netflix/raigad/configuration
96 9 14 15 4
ElasticsearchUtils.java
in raigad/src/main/java/com/netflix/raigad/utils
118 6 14 12 5
RaigadScheduler.java
in raigad/src/main/java/com/netflix/raigad/scheduler
97 8 13 13 3
UpdateSecuritySettings.java
in raigad/src/main/java/com/netflix/raigad/aws
89 5 13 15 7
CassandraInstanceFactory.java
in raigad/src/main/java/com/netflix/raigad/identity
85 7 12 14 3
Task.java
in raigad/src/main/java/com/netflix/raigad/scheduler
83 7 12 14 5
HttpStatsMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
87 7 12 14 6
S3Repository.java
in raigad/src/main/java/com/netflix/raigad/backup
83 8 12 14 3
ElasticsearchAdmin.java
in raigad/src/main/java/com/netflix/raigad/resources
93 7 11 12 3
ElasticsearchConfig.java
in raigad/src/main/java/com/netflix/raigad/resources
104 4 11 11 4
BlockingSubmitThreadPoolExecutor.java
in raigad/src/main/java/com/netflix/raigad/scheduler
80 4 11 14 5
BoundedExponentialRetryCallable.java
in raigad/src/main/java/com/netflix/raigad/utils
54 3 11 20 9
S3RepositorySettingsParams.java
in raigad/src/main/java/com/netflix/raigad/backup
83 7 11 13 3
SecurityGroupAdmin.java
in raigad/src/main/java/com/netflix/raigad/resources
71 3 10 14 5
ElasticsearchTransportClient.java
in raigad/src/main/java/com/netflix/raigad/utils
70 6 10 14 3
RetriableCallable.java
in raigad/src/main/java/com/netflix/raigad/utils
49 5 10 20 6
NodeHealthMonitor.java
in raigad/src/main/java/com/netflix/raigad/monitoring
69 7 10 14 4
AbstractRepository.java
in raigad/src/main/java/com/netflix/raigad/backup
58 2 10 17 9
RaigadUnicastHostsProvider.java
in raigad-discovery-plugin/src/main/java/com/netflix/raigad/discovery
62 2 10 16 7
ClearCredential.java
in raigad/src/main/java/com/netflix/raigad/aws
65 5 9 14 5
About This Analysis
  • File complexity is the sum of the McCabe indexes (conditional complexity) of the units (methods, functions...) in a file.
  • Files are classified in five categories based on that sum: 1-25 (simple files), 26-50 (slightly complex files), 51-125 (medium complex files), 126-250 (complex files), 251+ (very complex files). The default bands are five times the unit complexity bands, as a file is a group of units.
  • Only main code files with units are classified. Files without units (languages without unit analysis, or files without functions) have no complexity to measure and are left out rather than counted as simple.
  • A very complex file holds many decisions, which often means it has too many responsibilities: a candidate to split, and a place where changes need more testing.
Learn more...