Files that are both large and changed often are where bugs tend to cluster and where refactoring pays off first. Each file in the current tree is placed by its size and by the number of commits that changed it; its hotspot score is changes × √lines. Files without counted lines, such as binary files, are left out.
Each dot is a file; a bigger dot is a higher score. The dashed lines mark the median file size and the median number of changes, so the large files that change often are in the top right. Both axes are logarithmic. Showing the 2,000 highest-scoring of 5,553 files.
The files ranked by hotspot score: the larger a file is and the more often it changes, the higher it ranks. Authors is how many people have changed the file, bots aside, as on the Code Ownership page: a hotspot only one person has changed is also a bus-factor risk.
| File | Lines | Changes | Authors | Score | |
|---|---|---|---|---|---|
| docs/en/changes/changes.md | 79 | 1,093 | 101 | 9,714.8 | |
| pom.xml | 594 | 312 | 32 | 7,604.1 | |
| oap-server/server-starter/src/main/resources/application.yml | 910 | 251 | 45 | 7,571.7 | |
| .github/workflows/skywalking.yaml | 1,247 | 191 | 28 | 6,744.8 | |
| docs/en/setup/backend/configuration-vocabulary.md | 660 | 180 | 40 | 4,624.3 | |
| README.md | 73 | 474 | 24 | 4,049.9 | |
| docs/menu.yml | 568 | 168 | 26 | 4,003.9 | |
| oap-server-bom/pom.xml | 703 | 132 | 14 | 3,499.9 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java | 550 | 146 | 19 | 3,424.0 | |
| oap-server/server-starter/src/main/resources/component-libraries.yml | 958 | 106 | 56 | 3,280.9 |
| File | Lines | Changes | Authors | Score | |
|---|---|---|---|---|---|
| docs/en/changes/changes.md | 79 | 1,093 | 101 | 9,714.8 | |
| pom.xml | 594 | 312 | 32 | 7,604.1 | |
| oap-server/server-starter/src/main/resources/application.yml | 910 | 251 | 45 | 7,571.7 | |
| .github/workflows/skywalking.yaml | 1,247 | 191 | 28 | 6,744.8 | |
| docs/en/setup/backend/configuration-vocabulary.md | 660 | 180 | 40 | 4,624.3 | |
| README.md | 73 | 474 | 24 | 4,049.9 | |
| docs/menu.yml | 568 | 168 | 26 | 4,003.9 | |
| oap-server-bom/pom.xml | 703 | 132 | 14 | 3,499.9 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java | 550 | 146 | 19 | 3,424.0 | |
| oap-server/server-starter/src/main/resources/component-libraries.yml | 958 | 106 | 56 | 3,280.9 | |
| oap-server/server-starter/pom.xml | 443 | 121 | 21 | 2,546.8 | |
| oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/StorageModuleElasticsearchProvider.java | 394 | 91 | 18 | 1,806.3 | |
| oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetadataQueryEsDAO.java | 471 | 73 | 13 | 1,584.3 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/source/DefaultScopeDefine.java | 469 | 68 | 15 | 1,472.6 | |
| oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/MetadataRegistry.java | 1,111 | 44 | 5 | 1,466.6 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/StorageModels.java | 628 | 58 | 9 | 1,453.5 | |
| docs/en/setup/backend/backend-alarm.md | 573 | 56 | 25 | 1,340.5 | |
| oap-server/pom.xml | 123 | 119 | 19 | 1,319.8 | |
| oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRule.java | 681 | 47 | 16 | 1,226.5 | |
| oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/base/StorageEsInstaller.java | 436 | 57 | 11 | 1,190.2 | |
| oap-server/server-library/library-client/src/main/java/org/apache/skywalking/oap/server/library/client/elasticsearch/ElasticSearchClient.java | 483 | 54 | 15 | 1,186.8 | |
| oap-server/server-core/src/test/resources/component-libraries.yml | 770 | 42 | 20 | 1,165.5 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java | 347 | 62 | 17 | 1,154.9 | |
| oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIndexInstaller.java | 1,575 | 29 | 5 | 1,150.9 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsPersistentWorker.java | 438 | 53 | 10 | 1,109.2 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/Layer.java | 607 | 43 | 18 | 1,059.4 | |
| oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/RunningRuleTest.java | 967 | 33 | 11 | 1,026.2 | |
| oap-server/server-receiver-plugin/skywalking-mesh-receiver-plugin/src/main/java/org/apache/skywalking/aop/server/receiver/mesh/TelemetryDataDispatcher.java | 465 | 41 | 8 | 884.1 | |
| docs/en/concepts-and-designs/scope-definitions.md | 658 | 34 | 14 | 872.2 | |
| docs/en/setup/backend/storages/banyandb.md | 635 | 34 | 5 | 856.8 | |
| oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageProvider.java | 441 | 40 | 9 | 840.0 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/worker/MetricsStreamProcessor.java | 543 | 35 | 8 | 815.6 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModule.java | 195 | 58 | 9 | 809.9 | |
| oap-server/server-core/pom.xml | 169 | 60 | 10 | 780.0 | |
| docs/en/concepts-and-designs/mal.md | 433 | 37 | 13 | 769.9 | |
| oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/RulesReader.java | 500 | 34 | 19 | 760.3 | |
| docs/en/concepts-and-designs/lal.md | 848 | 26 | 9 | 757.1 | |
| docs/en/setup/backend/backend-setup.md | 184 | 55 | 8 | 746.1 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TraceQueryService.java | 519 | 32 | 9 | 729.0 | |
| oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageClient.java | 552 | 31 | 5 | 728.3 | |
| docs/en/api/metrics-query-expression.md | 708 | 27 | 6 | 718.4 | |
| oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/MetricsQueryEsDAO.java | 372 | 37 | 9 | 713.6 | |
| docs/en/setup/backend/grafana-instance.json | 7,899 | 8 | 6 | 711.0 | |
| oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/stream/AbstractBanyanDBDAO.java | 511 | 31 | 5 | 700.8 | |
| apm-dist/src/main/assembly/binary.xml | 136 | 59 | 14 | 688.1 | |
| docs/en/setup/backend/grafana-cluster.json | 7,363 | 8 | 6 | 686.5 | |
| oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/StorageModuleElasticsearchConfig.java | 188 | 50 | 14 | 685.6 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/segment/SegmentRecord.java | 169 | 52 | 10 | 676.0 | |
| oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/measure/BanyanDBMetadataQueryDAO.java | 437 | 31 | 6 | 648.0 | |
| docs/en/guides/How-to-release.md | 174 | 48 | 7 | 633.2 | |
| oap-server/server-receiver-plugin/skywalking-ebpf-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/ebpf/provider/handler/AccessLogServiceHandler.java | 966 | 20 | 4 | 621.6 | |
| docs/en/setup/backend/backend-cluster.md | 217 | 42 | 17 | 618.7 | |
| docs/en/concepts-and-designs/oal.md | 212 | 42 | 12 | 611.5 | |
| oap-server/server-storage-plugin/storage-banyandb-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBStorageConfig.java | 379 | 31 | 6 | 603.5 | |
| docs/README.md | 54 | 82 | 21 | 602.6 | |
| oap-server/server-query-plugin/promql-plugin/src/main/java/org/apache/skywalking/oap/query/promql/handler/PromQLApiHandler.java | 998 | 19 | 3 | 600.2 | |
| oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TopologyQueryEsDAO.java | 424 | 29 | 8 | 597.1 | |
| oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/GraphQLQueryProvider.java | 197 | 42 | 10 | 589.5 | |
| oap-server/server-storage-plugin/storage-elasticsearch-plugin/src/main/java/org/apache/skywalking/oap/server/storage/plugin/elasticsearch/query/TraceQueryEsDAO.java | 242 | 37 | 11 | 575.6 | |
| oap-server/server-receiver-plugin/pom.xml | 77 | 64 | 14 | 561.6 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/meter/function/avg/AvgHistogramPercentileFunction.java | 397 | 28 | 5 | 557.9 | |
| apm-protocol/apm-network/pom.xml | 114 | 52 | 8 | 555.2 | |
| apm-dist/pom.xml | 103 | 53 | 6 | 537.9 | |
| oap-server/server-receiver-plugin/receiver-proto/pom.xml | 194 | 38 | 6 | 529.3 | |
| docs/en/setup/backend/backend-storage.md | 38 | 84 | 24 | 517.8 | |
| oap-server/server-library/library-client/pom.xml | 101 | 51 | 7 | 512.5 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/alarm/AlarmRecord.java | 155 | 41 | 10 | 510.4 | |
| .licenserc.yaml | 158 | 40 | 9 | 502.8 | |
| oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/mqe/rt/MQEVisitor.java | 426 | 24 | 3 | 495.4 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/TopologyQueryService.java | 307 | 28 | 7 | 490.6 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/StorageModule.java | 122 | 44 | 9 | 486.0 | |
| oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/TopologyQuery.java | 322 | 27 | 8 | 484.5 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/annotation/BanyanDB.java | 366 | 25 | 5 | 478.3 | |
| oap-server/server-alarm-plugin/pom.xml | 93 | 49 | 6 | 472.5 | |
| test/e2e-v2/cases/storage/expected/config-dump.yml | 269 | 28 | 6 | 459.2 | |
| oap-server/server-tools/profile-exporter/tool-profile-snapshot-server-mock/src/main/java/org/apache/skywalking/oap/server/tool/profile/core/MockCoreModuleProvider.java | 263 | 28 | 7 | 454.1 | |
| oap-server/server-alarm-plugin/src/main/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandler.java | 260 | 28 | 13 | 451.5 | |
| oap-server/server-receiver-plugin/otel-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/otel/otlp/OpenTelemetryMetricRequestProcessor.java | 506 | 20 | 7 | 449.9 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/query/MetadataQueryService.java | 197 | 32 | 9 | 449.1 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/remote/client/GRPCRemoteClient.java | 263 | 27 | 8 | 437.9 | |
| oap-server/server-query-plugin/query-graphql-plugin/src/main/java/org/apache/skywalking/oap/query/graphql/resolver/AlarmQuery.java | 275 | 26 | 9 | 431.2 | |
| oap-server/server-query-plugin/query-graphql-plugin/pom.xml | 79 | 48 | 4 | 426.6 | |
| oap-server/oal-grammar/src/main/antlr4/org/apache/skywalking/oal/rt/grammar/OALParser.g4 | 216 | 29 | 13 | 426.2 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/PersistenceTimer.java | 179 | 31 | 6 | 414.8 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/zipkin/ZipkinSpanRecord.java | 322 | 23 | 5 | 412.7 | |
| oap-server/server-receiver-plugin/zipkin-receiver-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/zipkin/trace/SpanForward.java | 272 | 25 | 9 | 412.3 | |
| oap-server/server-receiver-plugin/envoy-metrics-receiver-plugin/pom.xml | 91 | 43 | 3 | 410.2 | |
| oap-server/mqe-rt/src/main/java/org/apache/skywalking/mqe/rt/MQEVisitorBase.java | 651 | 16 | 2 | 408.2 | |
| oap-server/server-starter/src/main/resources/bydb.yml | 370 | 21 | 5 | 403.9 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/query/IMetricsQueryDAO.java | 347 | 21 | 5 | 391.2 | |
| test/e2e-v2/script/docker-compose/base-compose.yml | 194 | 28 | 7 | 390.0 | |
| CLAUDE.md | 380 | 20 | 2 | 389.9 | |
| oap-server/server-library/library-util/pom.xml | 70 | 46 | 5 | 384.9 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/storage/model/ModelInstaller.java | 334 | 21 | 5 | 383.8 | |
| oap-server/server-storage-plugin/storage-banyandb-plugin/src/test/java/org/apache/skywalking/oap/server/storage/plugin/banyandb/BanyanDBIT.java | 1,022 | 12 | 3 | 383.6 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/analysis/manual/relation/service/ServiceRelationServerSideMetrics.java | 174 | 29 | 10 | 382.5 | |
| oap-server/server-alarm-plugin/src/test/java/org/apache/skywalking/oap/server/core/alarm/provider/NotifyHandlerTest.java | 301 | 22 | 11 | 381.7 | |
| oap-server/server-query-plugin/promql-plugin/src/main/java/org/apache/skywalking/oap/query/promql/rt/PromQLExprQueryVisitor.java | 642 | 15 | 4 | 380.1 | |
| oap-server/exporter/pom.xml | 89 | 40 | 5 | 377.4 | |
| oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/remote/client/RemoteClientManager.java | 294 | 22 | 7 | 377.2 |
How Apache SkyWalking compares with other open source projects from China →
How Apache SkyWalking ranks among open source projects from China by AI-assisted commits →
Generate this report for your own repository with gitstats-action · All Gallery reports
Publishes the report to GitHub Pages on every push to main: turn on Pages for the gh-pages branch.
# .github/workflows/gitstats.yml
name: GitStats Report
on:
push:
branches: [main]
permissions:
contents: write
jobs:
gitstats:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7
with:
fetch-depth: 0
- uses: shenxianpeng/gitstats-action@v1
with:
deploy-to-pages: true