microsoft / envoy
File Size

The distribution of size of files (measured in lines of code).

Intro
  • File size measurements show the distribution of size of files.
  • Files are classified in four categories based on their size (lines of code): 1-100 (very small files), 101-200 (small files), 201-500 (medium size files), 501-1000 (long files), 1001+(very long files).
  • It is a good practice to keep files small. Long files may become "bloaters", code that have increased to such gargantuan proportions that they are hard to work with.
Learn more...
File Size Overall
  • There are 1,080 files with 99,940 lines of code.
    • 5 very long files (6,060 lines of code)
    • 16 long files (10,955 lines of code)
    • 97 medium size files (29,672 lines of codeclsfd_ftr_w_mp_ins)
    • 156 small files (21,706 lines of code)
    • 806 very small files (31,547 lines of code)
6% | 10% | 29% | 21% | 31%
Legend:
1001+
501-1000
201-500
101-200
1-100


explore: zoomable circles | sunburst | 3D view
File Size per Extension
1001+
501-1000
201-500
101-200
1-100
cc9% | 16% | 38% | 17% | 17%
proto11% | 0% | 28% | 25% | 33%
bzl0% | 48% | 12% | 33% | 5%
h0% | 3% | 16% | 26% | 54%
py0% | 0% | 38% | 20% | 40%
yaml0% | 0% | 46% | 28% | 24%
ps10% | 0% | 0% | 0% | 100%
el0% | 0% | 0% | 0% | 100%
File Size per Logical Decomposition
primary
1001+
501-1000
201-500
101-200
1-100
source/common9% | 17% | 31% | 19% | 22%
api/envoy11% | 0% | 28% | 25% | 33%
source/server16% | 13% | 30% | 18% | 21%
source/extensions0% | 4% | 30% | 25% | 39%
bazel0% | 68% | 0% | 27% | 4%
include/envoy0% | 0% | 10% | 15% | 74%
configs0% | 0% | 45% | 28% | 26%
tools0% | 0% | 36% | 14% | 49%
tools/protodoc0% | 0% | 80% | 0% | 19%
api/bazel0% | 0% | 65% | 34% | 0%
tools/envoy_collect0% | 0% | 0% | 100% | 0%
source/exe0% | 0% | 0% | 31% | 68%
restarter0% | 0% | 0% | 100% | 0%
api/tools0% | 0% | 0% | 0% | 100%
tools/deprecate_version0% | 0% | 0% | 0% | 100%
windows/setup0% | 0% | 0% | 0% | 100%
configs/original-dst-cluster0% | 0% | 0% | 0% | 100%
configs/freebind0% | 0% | 0% | 0% | 100%
ci0% | 0% | 0% | 0% | 100%
Longest Files (Top 50)
File# lines# units
config_schemas.cc
in source/common/json
1643 32
conn_manager_impl.cc
in source/common/http
1321 76
proto
route.proto
in api/envoy/api/v2/route
1038 -
admin.cc
in source/server/http
1032 48
upstream_impl.cc
in source/common/upstream
1026 32
cluster_manager_impl.cc
in source/common/upstream
897 31
config_impl.cc
in source/common/router
894 27
twitter_protocol_impl.cc
in source/extensions/filters/network/thrift_proxy
894 43
context_impl.cc
in source/common/ssl
892 25
router.cc
in source/common/router
858 45
listener_manager_impl.cc
in source/server
816 29
codec_impl.cc
in source/common/http/http2
730 43
json_loader.cc
in source/common/json
677 67
codec_impl.cc
in source/common/http/http1
571 46
health_checker_impl.cc
in source/common/upstream
553 26
repositories.bzl
in bazel
550 -
upstream_impl.h
in source/common/upstream
548 44
envoy_build_system.bzl
in bazel
542 -
config_impl.h
in source/common/router
524 42
tcp_proxy.cc
in source/common/tcp_proxy
507 32
conn_manager.cc
in source/extensions/filters/network/thrift_proxy
502 44
proto
cds.proto
in api/envoy/api/v2
500 -
compact_protocol_impl.cc
in source/extensions/filters/network/thrift_proxy
484 43
envoy_service_to_service_v2.template.yaml
in configs
482 -
header_map_impl.cc
in source/common/http
475 31
outlier_detection_impl.cc
in source/common/upstream
462 27
codec_impl.cc
in source/extensions/filters/network/mongo_proxy
462 24
lua_filter.cc
in source/extensions/filters/http/lua
461 30
bson_impl.cc
in source/extensions/filters/network/mongo_proxy
452 22
subset_lb.cc
in source/common/upstream
449 15
hessian_utils.cc
in source/extensions/filters/network/dubbo_proxy
443 16
connection_impl.cc
in source/common/network
425 30
utility.cc
in source/common/network
424 30
utility.cc
in source/common/common
422 31
access_log_formatter.cc
in source/common/access_log
408 17
load_balancer_impl.cc
in source/common/upstream
406 16
check_format.py
in tools
405 34
router_impl.cc
in source/extensions/filters/network/thrift_proxy/router
401 24
proto
config.proto
in api/envoy/config/filter/http/jwt_authn/v2alpha
398 -
thread_local_store.cc
in source/common/stats
395 26
server.cc
in source/server
393 16
utility.cc
in source/common/http
388 21
protodoc.py
in tools/protodoc
376 45
ssl_socket.cc
in source/common/ssl
372 30
codec_impl.cc
in source/extensions/filters/network/redis_proxy
368 12
json_transcoder_filter.cc
in source/extensions/filters/http/grpc_json_transcoder
367 15
filter_json.cc
in source/common/config
364 24
decoder.cc
in source/extensions/filters/network/thrift_proxy
360 23
hot_restart_impl.cc
in source/server
358 19
proto
http_connection_manager.proto
in api/envoy/config/filter/network/http_connection_manager/v2
355 -
Files With Most Units (Top 20)
File# lines# units
conn_manager_impl.cc
in source/common/http
1321 76
json_loader.cc
in source/common/json
677 67
zipkin_core_types.h
in source/extensions/tracers/zipkin
157 51
admin.cc
in source/server/http
1032 48
codec_impl.cc
in source/common/http/http1
571 46
router.cc
in source/common/router
858 45
auto_protocol_impl.h
in source/extensions/filters/network/thrift_proxy
144 45
protodoc.py
in tools/protodoc
376 45
upstream_impl.h
in source/common/upstream
548 44
conn_manager.cc
in source/extensions/filters/network/thrift_proxy
502 44
codec_impl.cc
in source/common/http/http2
730 43
compact_protocol_impl.cc
in source/extensions/filters/network/thrift_proxy
484 43
twitter_protocol_impl.cc
in source/extensions/filters/network/thrift_proxy
894 43
config_impl.h
in source/common/router
524 42
stream_info_impl.h
in source/common/stream_info
176 42
binary_protocol_impl.cc
in source/extensions/filters/network/thrift_proxy
318 42
thrift_object_impl.cc
in source/extensions/filters/network/thrift_proxy
312 40
async_client_impl.h
in source/common/http
299 39
codec_impl.h
in source/extensions/filters/network/mongo_proxy
212 38
options_impl.h
in source/server
123 34
Files With Long Lines (Top 15)

There are 15 files with lines longer than 120 characters. In total, there are 39 long lines.

File# lines# units# long lines
repository_locations.bzl
in bazel
194 - 9
extensions_build_config.bzl
in source/extensions
170 - 8
access_log_format_helper_v2.template.yaml
in configs
12 - 4
build_setup.ps1
in ci
16 - 3
workstation_setup.ps1
in windows/setup
42 - 3
proto
load_report.proto
in api/envoy/api/v2/endpoint
130 - 2
proto
thrift_proxy.proto
in api/envoy/config/filter/network/thrift_proxy/v2alpha1
94 - 2
proto
ext_authz.proto
in api/envoy/config/filter/http/ext_authz/v2alpha
109 - 1
proto
http_connection_manager.proto
in api/envoy/config/filter/network/http_connection_manager/v2
355 - 1
envoy_build_system.bzl
in bazel
542 - 1
repositories.bzl
in bazel
550 - 1
do_ci.ps1
in ci
17 - 1
envoy_double_proxy_v2.template.yaml
in configs
155 - 1
envoy_front_proxy_v2.template.yaml
in configs
144 - 1
filter.h
in source/extensions/filters/network/dubbo_proxy
98 4 1