GoogleCloudPlatform / opentelemetry-demo
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
txt
mod
csproj
properties
proto
gitattributes
ini
prettierignore
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.

main9082 LOC (19%) 169 files
test1493 LOC (3%) 45 files
generated14882 LOC (32%) 3 files
build and deployment465 LOC (1%) 8 files
other20018 LOC (43%) 48 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 ".*".
  • 169 files match defined criteria (9,082 LOC, 100.0% vs. main code):
    • 11 *.yaml files (2,470 LOC)
    • 66 *.ts files (1,571 LOC)
    • 31 *.tsx files (1,237 LOC)
    • 7 *.go files (895 LOC)
    • 8 *.cs files (449 LOC)
    • 4 *.java files (401 LOC)
    • 5 *.py files (400 LOC)
    • 9 *.rs files (305 LOC)
    • 2 *.proto files (278 LOC)
    • 7 *.js files (234 LOC)
    • 1 *.cpp files (221 LOC)
    • 6 *.php files (187 LOC)
    • 3 *.h files (143 LOC)
    • 2 *.kts files (75 LOC)
    • 1 *.kt files (67 LOC)
    • 1 *.toml files (37 LOC)
    • 1 *.erb files (37 LOC)
    • 1 *.rb files (35 LOC)
    • 2 *.xml files (26 LOC)
    • 1 *.css files (14 LOC)
  • " *.yaml" is biggest, containing 27.2% of LOC.
  • " *.css" is smallest, containing 0.15% of LOC.


*.yaml2470 LOC (27%) 11 files
*.ts1571 LOC (17%) 66 files
*.tsx1237 LOC (13%) 31 files
*.go895 LOC (9%) 7 files
*.cs449 LOC (4%) 8 files
*.java401 LOC (4%) 4 files
*.py400 LOC (4%) 5 files
*.rs305 LOC (3%) 9 files
*.proto278 LOC (3%) 2 files
*.js234 LOC (2%) 7 files
*.cpp221 LOC (2%) 1 file
*.php187 LOC (2%) 6 files
*.h143 LOC (1%) 3 files
*.kts75 LOC (<1%) 2 files
*.kt67 LOC (<1%) 1 file
*.toml37 LOC (<1%) 1 file
*.erb37 LOC (<1%) 1 file
*.rb35 LOC (<1%) 1 file
*.xml26 LOC (<1%) 2 files
*.css14 LOC (<1%) 1 file
Test Code
Used only for testing of the product. Normally not deployed in a production environment.
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*_test[.].*".
    • files with paths like ".*/[Tt]ests/.*".
    • files with paths like ".*[.][Tt]ests[.].*".
    • files with paths like ".*[.]tests[.].*".
    • files with paths like ".*/e2e/.*".
    • files with paths like ".*/[Tt]est/.*".
  • 45 files match defined criteria (1,493 LOC, 16.4% vs. main code):
    • 38 *.yaml files (978 LOC)
    • 1 *.go files (218 LOC)
    • 1 *.cs files (106 LOC)
    • 3 *.ts files (94 LOC)
    • 1 *.bash files (79 LOC)
    • 1 *.csproj files (18 LOC)
  • " *.yaml" is biggest, containing 65.51% of LOC.
  • " *.csproj" is smallest, containing 1.21% of LOC.


*.yaml978 LOC (65%) 38 files
*.go218 LOC (14%) 1 file
*.cs106 LOC (7%) 1 file
*.ts94 LOC (6%) 3 files
*.bash79 LOC (5%) 1 file
*.csproj18 LOC (1%) 1 file
Generated Code
Automatically generated files, not manually changed after generation.
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/package[-]lock[.]json".
  • 3 files match defined criteria (14,882 LOC, 163.9% vs. main code). All matches are in *.json files.


*.json14882 LOC (100%) 3 files
Build and Deployment Code
Source code used to configure or support build and deployment process.
csproj
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*/package[-]lock[.]json".
    • files with paths like ".*[.]gradle".
    • files with paths like ".*[.]bat".
    • files with paths like ".*[.]csproj".
    • files with paths like ".*/package[.]json".
    • files with paths like ".*[.]git[a-z]+".
    • files with paths like ".*/[.]gitignore".
    • files with paths like ".*/[.]gitattributes".
    • files with paths like ".*[.]sh".
  • 8 files match defined criteria (465 LOC, 5.1% vs. main code):
    • 2 *.sh files (148 LOC)
    • 2 *.bat files (142 LOC)
    • 2 *.gradle files (114 LOC)
    • 2 *.csproj files (61 LOC)
  • " *.sh" is biggest, containing 31.83% of LOC.
  • " *.csproj" is smallest, containing 13.12% of LOC.


*.sh148 LOC (31%) 2 files
*.bat142 LOC (30%) 2 files
*.gradle114 LOC (24%) 2 files
*.csproj61 LOC (13%) 2 files
Other Code
ini
mod
txt
properties
Explore:   circles  |  sunburst
  • The following criteria are used to filter files:
    • files with paths like ".*[.]json".
    • files with paths like ".*[.]md".
    • files with paths like ".*/README[.][a-z0-9]+".
    • files with paths like ".*/[.]dockerignore".
    • files with paths like ".*[.]ini".
    • files with paths like ".*/[Dd]emos?/.*".
    • files with paths like ".*[.]txt".
    • files with paths like ".*[.]properties".
    • files with paths like ".*/go[.]mod".
    • files with paths like ".*/[.]prettierignore".
    • files with paths like ".*[.]svg".
    • files with paths like ".*/[.]gitignore".
  • 48 files match defined criteria (20,018 LOC, 220.4% vs. main code):
    • 15 *.json files (17,519 LOC)
    • 21 *.md files (1,232 LOC)
    • 1 *.ini files (912 LOC)
    • 3 *.mod files (162 LOC)
    • 3 *.txt files (116 LOC)
    • 4 *.svg files (76 LOC)
    • 1 *.properties files (1 LOC)
  • " *.json" is biggest, containing 87.52% of LOC.
  • " *.properties" is smallest, containing 0% of LOC.


*.json17519 LOC (87%) 15 files
*.md1232 LOC (6%) 21 files
*.ini912 LOC (4%) 1 file
*.mod162 LOC (<1%) 3 files
*.txt116 LOC (<1%) 3 files
*.svg76 LOC (<1%) 4 files
*.properties1 LOC (<1%) 1 file
Analyzers
Info about analyzers used for source code examinations.


2025-05-04 16:01