opensearch-project / data-prepper
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 1,067 units with 7,431 lines of code in units (55.6% of code).
    • 0 very complex units (0 lines of code)
    • 0 complex units (0 lines of code)
    • 5 medium complex units (213 lines of code)
    • 31 simple units (790 lines of code)
    • 1,031 very simple units (6,428 lines of code)
0% | 0% | 2% | 10% | 86%
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
java0% | 0% | 2% | 10% | 86%
Conditional Complexity per Logical Component
primary logical decomposition
51+
26-50
11-25
6-10
1-5
data-prepper-plugins/otel-trace-source0% | 0% | 25% | 6% | 67%
data-prepper-logstash-configuration/src0% | 0% | 10% | 0% | 89%
data-prepper-plugins/key-value-processor0% | 0% | 38% | 0% | 61%
research/zipkin-opensearch-to-otel0% | 0% | 18% | 49% | 31%
data-prepper-api/src0% | 0% | 2% | 2% | 94%
data-prepper-plugins/opensearch0% | 0% | 0% | 21% | 78%
data-prepper-core/src0% | 0% | 0% | 7% | 92%
data-prepper-plugins/otel-trace-raw-prepper0% | 0% | 0% | 16% | 83%
data-prepper-plugins/common0% | 0% | 0% | 14% | 85%
data-prepper-plugins/http-source0% | 0% | 0% | 28% | 71%
data-prepper-plugins/grok-prepper0% | 0% | 0% | 24% | 75%
data-prepper-plugins/peer-forwarder0% | 0% | 0% | 5% | 94%
data-prepper-plugins/service-map-stateful0% | 0% | 0% | 4% | 95%
data-prepper-plugins/otel-trace-group-prepper0% | 0% | 0% | 9% | 90%
e2e-test/trace0% | 0% | 0% | 0% | 100%
data-prepper-plugins/aggregate-processor0% | 0% | 0% | 0% | 100%
e2e-test/log0% | 0% | 0% | 0% | 100%
data-prepper-plugins/mapdb-prepper-state0% | 0% | 0% | 0% | 100%
data-prepper-benchmarks/service-map-stateful-benchmarks0% | 0% | 0% | 0% | 100%
data-prepper-plugins/blocking-buffer0% | 0% | 0% | 0% | 100%
data-prepper-plugins/armeria-common0% | 0% | 0% | 0% | 100%
data-prepper-benchmarks/mapdb-benchmarks0% | 0% | 0% | 0% | 100%
data-prepper-plugins/drop-events-processor0% | 0% | 0% | 0% | 100%
Most Complex Units
Top 20 most complex units
Unit# linesMcCabe index# params
private boolean isValidKey()
in data-prepper-api/src/main/java/com/amazon/dataprepper/model/event/JacksonEvent.java
24 20 1
public KeyValueProcessor()
in data-prepper-plugins/key-value-processor/src/main/java/com/amazon/dataprepper/plugins/processor/keyvalue/KeyValueProcessor.java
46 15 2
public Object visitAttribute()
in data-prepper-logstash-configuration/src/main/java/org/opensearch/dataprepper/logstash/parser/ModelConvertingLogstashVisitor.java
48 15 1
public static Integer extractStatusCodeFromTags()
in research/zipkin-opensearch-to-otel/src/main/java/com/amazon/dataprepper/research/zipkin/ZipkinOpenSearchToOtelPrepper.java
32 12 1
public void start()
in data-prepper-plugins/otel-trace-source/src/main/java/com/amazon/dataprepper/plugins/source/oteltrace/OTelTraceSource.java
63 11 1
private void handleRetry()
in data-prepper-plugins/opensearch/src/main/java/com/amazon/dataprepper/plugins/sink/opensearch/BulkRetryStrategy.java
38 10 4
public static Object convertAnyValue()
in data-prepper-plugins/otel-trace-raw-prepper/src/main/java/com/amazon/dataprepper/plugins/prepper/oteltrace/model/OTelProtoHelper.java
30 10 1
public Optional checkAndCreatePolicy()
in data-prepper-plugins/opensearch/src/main/java/com/amazon/dataprepper/plugins/sink/opensearch/index/IsmPolicyManagement.java
33 9 0
public void doOutput()
in data-prepper-plugins/opensearch/src/main/java/com/amazon/dataprepper/plugins/sink/opensearch/OpenSearchSink.java
28 9 1
private void matchAndMerge()
in data-prepper-plugins/grok-prepper/src/main/java/com/amazon/dataprepper/plugins/prepper/grok/GrokPrepper.java
30 9 1
public void start()
in data-prepper-plugins/http-source/src/main/java/com/amazon/dataprepper/plugins/source/loghttp/HTTPSource.java
51 8 1
private void determineIndexType()
in data-prepper-plugins/opensearch/src/main/java/com/amazon/dataprepper/plugins/sink/opensearch/index/IndexConfiguration.java
19 8 1
public boolean equals()
in data-prepper-plugins/service-map-stateful/src/main/java/com/amazon/dataprepper/plugins/prepper/ServiceMapRelationship.java
10 8 1
private List getTracesToFlushByGarbageCollection()
in data-prepper-plugins/otel-trace-raw-prepper/src/main/java/com/amazon/dataprepper/plugins/prepper/oteltrace/OTelTraceRawPrepper.java
41 8 0
public static Span sourceToSpan()
in research/zipkin-opensearch-to-otel/src/main/java/com/amazon/dataprepper/research/zipkin/ZipkinOpenSearchToOtelPrepper.java
37 8 1
public boolean equals()
in data-prepper-plugins/otel-trace-group-prepper/src/main/java/com/amazon/dataprepper/plugins/prepper/oteltracegroup/model/TraceGroup.java
9 7 1
public Certificate getCertificate()
in data-prepper-plugins/peer-forwarder/src/main/java/com/amazon/dataprepper/plugins/prepper/peerforwarder/certificate/acm/ACMCertificateProvider.java
26 7 0
public Certificate getCertificate()
in data-prepper-plugins/common/src/main/java/com/amazon/dataprepper/plugins/certificate/acm/ACMCertificateProvider.java
30 7 0
public static ConnectionConfiguration readConnectionConfiguration()
in data-prepper-plugins/opensearch/src/main/java/com/amazon/dataprepper/plugins/sink/opensearch/ConnectionConfiguration.java
37 7 1
private IndexConfiguration()
in data-prepper-plugins/opensearch/src/main/java/com/amazon/dataprepper/plugins/sink/opensearch/index/IndexConfiguration.java
30 7 1