apache / skywalking
Source Code Overview

Analysis scope, overview of main, test, generated, deployment, build, and other code.

Source Code Analysis Scope
Files includes and excluded from analyses
proto
txt
lua
properties
mod
tpl
gitmodules
cmd
ini
Overview of Analyzed Files
Basic stats on analyzed files
Intro
For analysis purposes we separate files in scope into several categories: main, test, generated, deployment and build, and other.

  • The main category contains all manually created source code files that are being used in the production.
  • Files in the main category are used as input for other analyses: logical decomposition, concerns, duplication, file size, unit size, and conditional complexity.
  • Test source code files are used only for testing of the product. These files are normally not deployed to production.
  • Build and deployment source code files are used to configure or support build and deployment process.
  • Generated source code files are automatically generated files that have not been manually changed after generation.
  • While a source code folder may contain a number of files, we are primarily interested in the source code files that are being written and maintained by developers.
  • Files containing binaries, documentation, or third-party libraries, for instance, are excluded from analysis. The exception are third-party libraries that have been changed by developers.

main109947 LOC (49%) 1,941 files
test41249 LOC (18%) 644 files
generated0 LOC (0%) 0 files
build and deployment5273 LOC (2%) 102 files
other63834 LOC (28%) 184 files
Main Code
All manually created or maintained source code that defines logic of the product that is run in a production environment.
proto
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*".
  • 1941 files match defined criteria (109,947 LOC, 100.0% vs. main code):
    • 1,782 *.java files (99,842 LOC)
    • 42 *.proto files (5,495 LOC)
    • 85 *.yaml files (3,228 LOC)
    • 8 *.g4 files (662 LOC)
    • 11 *.xml files (482 LOC)
    • 13 *.ftl files (238 LOC)
  • " *.java" is biggest, containing 90.81% of LOC.
  • " *.ftl" is smallest, containing 0.22% of LOC.


*.java99842 LOC (90%) 1,782 files
*.proto5495 LOC (4%) 42 files
*.yaml3228 LOC (2%) 85 files
*.g4662 LOC (<1%) 8 files
*.xml482 LOC (<1%) 11 files
*.ftl238 LOC (<1%) 13 files
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
proto
lua
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/[Tt]est/.*".
    • files with paths like ".*[-]test[-].*".
    • files with paths like ".*/e2e/.*".
    • files with paths like ".*/mock[a-zA-Z0-9_\- ]+/.*".
    • files with paths like ".*/test[.].*".
  • 644 files match defined criteria (41,249 LOC, 37.5% vs. main code):
    • 322 *.java files (26,977 LOC)
    • 237 *.yaml files (10,313 LOC)
    • 9 *.proto files (1,383 LOC)
    • 33 *.xml files (1,317 LOC)
    • 6 *.lua files (410 LOC)
    • 6 *.sql files (254 LOC)
    • 16 *.sh files (235 LOC)
    • 5 *.go files (144 LOC)
    • 5 *.py files (121 LOC)
    • 2 *.php files (35 LOC)
    • 1 *.js files (31 LOC)
    • 2 *.ts files (29 LOC)
  • " *.java" is biggest, containing 65.4% of LOC.
  • " *.ts" is smallest, containing 0.07% of LOC.


*.java26977 LOC (65%) 322 files
*.yaml10313 LOC (25%) 237 files
*.proto1383 LOC (3%) 9 files
*.xml1317 LOC (3%) 33 files
*.lua410 LOC (<1%) 6 files
*.sql254 LOC (<1%) 6 files
*.sh235 LOC (<1%) 16 files
*.go144 LOC (<1%) 5 files
*.py121 LOC (<1%) 5 files
*.php35 LOC (<1%) 2 files
*.js31 LOC (<1%) 1 file
*.ts29 LOC (<1%) 2 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/pom[.]xml".
    • files with paths like ".*[.]sh".
    • files with paths like ".*[.]bat".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]gitmodules".
    • files with paths like ".*/docker[-]compose[.]yaml".
  • 102 files match defined criteria (5,273 LOC, 4.8% vs. main code):
    • 95 *.xml files (5,055 LOC)
    • 7 *.sh files (218 LOC)
  • " *.xml" is biggest, containing 95.87% of LOC.
  • " *.sh" is smallest, containing 4.13% of LOC.


*.xml5055 LOC (95%) 95 files
*.sh218 LOC (4%) 7 files
Other Code
txt
mod
properties
tpl
ini
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*[.]txt".
    • files with paths like ".*/LICENSE[.][a-z0-9]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/[Ee]xamples/.*".
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/go[.]mod".
  • 184 files match defined criteria (63,834 LOC, 58.1% vs. main code):
    • 145 *.json files (61,211 LOC)
    • 28 *.txt files (2,292 LOC)
    • 5 *.md files (139 LOC)
    • 2 *.mod files (89 LOC)
    • 2 *.properties files (48 LOC)
    • 1 *.tpl files (32 LOC)
    • 1 *.ini files (23 LOC)
  • " *.json" is biggest, containing 95.89% of LOC.
  • " *.ini" is smallest, containing 0.04% of LOC.


*.json61211 LOC (95%) 145 files
*.txt2292 LOC (3%) 28 files
*.md139 LOC (<1%) 5 files
*.mod89 LOC (<1%) 2 files
*.properties48 LOC (<1%) 2 files
*.tpl32 LOC (<1%) 1 file
*.ini23 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-07 15:56