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 7,041 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 | |
|---|---|---|---|---|---|
| pom.xml | 1,163 | 432 | 84 | 14,732.4 | |
| client/src/main/java/com/alibaba/nacos/client/config/impl/ClientWorker.java | 1,824 | 175 | 59 | 7,474.0 | |
| ai/src/main/java/com/alibaba/nacos/ai/service/skills/SkillOperationServiceImpl.java | 2,320 | 77 | 11 | 3,708.8 | |
| client/src/main/java/com/alibaba/nacos/client/naming/NacosNamingService.java | 759 | 131 | 32 | 3,609.0 | |
| console-ui/src/locales/zh-CN.js | 1,586 | 90 | 34 | 3,584.2 | |
| console-ui/package-lock.json | 19,454 | 24 | 8 | 3,347.5 | |
| ai/src/test/java/com/alibaba/nacos/ai/service/skills/SkillOperationServiceImplTest.java | 3,391 | 56 | 12 | 3,261.0 | |
| console-ui/src/locales/en-US.js | 1,642 | 80 | 33 | 3,241.7 | |
| distribution/conf/application.properties | 575 | 135 | 35 | 3,237.2 | |
| common/src/main/java/com/alibaba/nacos/common/remote/client/RpcClient.java | 1,226 | 87 | 20 | 3,046.2 |
| File | Lines | Changes | Authors | Score | |
|---|---|---|---|---|---|
| pom.xml | 1,163 | 432 | 84 | 14,732.4 | |
| client/src/main/java/com/alibaba/nacos/client/config/impl/ClientWorker.java | 1,824 | 175 | 59 | 7,474.0 | |
| ai/src/main/java/com/alibaba/nacos/ai/service/skills/SkillOperationServiceImpl.java | 2,320 | 77 | 11 | 3,708.8 | |
| client/src/main/java/com/alibaba/nacos/client/naming/NacosNamingService.java | 759 | 131 | 32 | 3,609.0 | |
| console-ui/src/locales/zh-CN.js | 1,586 | 90 | 34 | 3,584.2 | |
| console-ui/package-lock.json | 19,454 | 24 | 8 | 3,347.5 | |
| ai/src/test/java/com/alibaba/nacos/ai/service/skills/SkillOperationServiceImplTest.java | 3,391 | 56 | 12 | 3,261.0 | |
| console-ui/src/locales/en-US.js | 1,642 | 80 | 33 | 3,241.7 | |
| distribution/conf/application.properties | 575 | 135 | 35 | 3,237.2 | |
| common/src/main/java/com/alibaba/nacos/common/remote/client/RpcClient.java | 1,226 | 87 | 20 | 3,046.2 | |
| client/pom.xml | 346 | 136 | 35 | 2,529.7 | |
| console-ui-next/src/locales/en-US.json | 1,666 | 61 | 14 | 2,489.8 | |
| console-ui-next/src/locales/zh-CN.json | 1,666 | 60 | 13 | 2,449.0 | |
| console/pom.xml | 277 | 138 | 34 | 2,296.8 | |
| core/src/main/java/com/alibaba/nacos/core/cluster/ServerMemberManager.java | 710 | 80 | 20 | 2,131.7 | |
| common/src/main/java/com/alibaba/nacos/common/remote/client/grpc/GrpcClient.java | 633 | 84 | 19 | 2,113.4 | |
| client/src/main/java/com/alibaba/nacos/client/config/NacosConfigService.java | 598 | 82 | 38 | 2,005.2 | |
| config/pom.xml | 215 | 134 | 37 | 1,964.8 | |
| core/pom.xml | 205 | 125 | 30 | 1,789.7 | |
| console-ui/src/pages/ConfigurationManagement/ConfigurationManagement/ConfigurationManagement.js | 1,524 | 43 | 26 | 1,678.7 | |
| config/src/main/java/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalConfigInfoPersistServiceImpl.java | 1,414 | 44 | 19 | 1,654.5 | |
| config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedConfigInfoPersistServiceImpl.java | 1,257 | 46 | 14 | 1,630.9 | |
| console-ui/src/pages/AI/NewMcpServer/NewMcpServer.js | 2,332 | 33 | 8 | 1,593.6 | |
| client/src/main/java/com/alibaba/nacos/client/config/impl/CacheData.java | 772 | 56 | 28 | 1,556.0 | |
| test/openapi-test/API_TEST_COVERAGE.md | 670 | 59 | 4 | 1,527.2 | |
| client/src/main/java/com/alibaba/nacos/client/naming/remote/gprc/NamingGrpcClientProxy.java | 610 | 61 | 21 | 1,506.6 | |
| api/pom.xml | 143 | 125 | 27 | 1,494.8 | |
| core/src/main/java/com/alibaba/nacos/core/distributed/raft/JRaftServer.java | 612 | 60 | 12 | 1,484.3 | |
| ai/src/main/java/com/alibaba/nacos/ai/service/agentspecs/AgentSpecOperationServiceImpl.java | 1,575 | 37 | 7 | 1,468.4 | |
| naming/pom.xml | 168 | 113 | 29 | 1,464.6 | |
| config/src/main/java/com/alibaba/nacos/config/server/service/dump/DumpService.java | 357 | 75 | 26 | 1,417.1 | |
| common/pom.xml | 131 | 123 | 27 | 1,407.8 | |
| api/src/main/java/com/alibaba/nacos/api/common/Constants.java | 385 | 69 | 31 | 1,353.9 | |
| distribution/bin/startup.sh | 341 | 70 | 33 | 1,292.6 | |
| naming/src/main/java/com/alibaba/nacos/naming/misc/UtilsAndCommons.java | 245 | 82 | 21 | 1,283.5 | |
| README.md | 256 | 80 | 32 | 1,280.0 | |
| distribution/pom.xml | 195 | 91 | 20 | 1,270.7 | |
| console-ui-next/src/pages/skillDetail/index.tsx | 1,742 | 30 | 6 | 1,252.1 | |
| distribution/conf/nacos-logback.xml | 799 | 43 | 17 | 1,215.5 | |
| config/src/main/java/com/alibaba/nacos/config/server/service/ConfigCacheService.java | 744 | 44 | 24 | 1,200.2 | |
| console-ui-next/package-lock.json | 9,806 | 12 | 4 | 1,188.3 | |
| client/src/main/java/com/alibaba/nacos/client/ai/remote/AiGrpcClient.java | 1,288 | 31 | 6 | 1,112.6 | |
| config/src/main/java/com/alibaba/nacos/config/server/service/notify/AsyncNotifyService.java | 379 | 57 | 22 | 1,109.7 | |
| config/src/main/java/com/alibaba/nacos/config/server/controller/ConfigServletInner.java | 381 | 54 | 30 | 1,054.0 | |
| test/java-sdk-test/src/test/java/com/alibaba/nacos/test/sdk/ai/AgentDiscoveryServiceJavaSdkITCase.java | 3,844 | 17 | 1 | 1,054.0 | |
| client/src/main/java/com/alibaba/nacos/client/ai/NacosAiService.java | 1,018 | 33 | 8 | 1,052.9 | |
| client/src/main/java/com/alibaba/nacos/client/naming/remote/http/NamingHttpClientProxy.java | 519 | 46 | 21 | 1,048.0 | |
| client/src/test/java/com/alibaba/nacos/client/naming/NacosNamingServiceTest.java | 1,471 | 27 | 15 | 1,035.5 | |
| client/src/main/java/com/alibaba/nacos/client/config/http/ServerHttpAgent.java | 307 | 59 | 22 | 1,033.8 | |
| config/src/test/java/com/alibaba/nacos/config/server/service/repository/extrnal/ExternalConfigInfoPersistServiceImplTest.java | 2,330 | 21 | 10 | 1,013.7 | |
| ai/src/test/java/com/alibaba/nacos/ai/service/agentspecs/AgentSpecOperationServiceImplTest.java | 1,711 | 24 | 6 | 992.7 | |
| ai/src/test/java/com/alibaba/nacos/ai/service/resource/AiResourceManagerTest.java | 2,997 | 18 | 5 | 985.4 | |
| config/src/main/java/com/alibaba/nacos/config/server/service/LongPollingService.java | 478 | 45 | 26 | 983.8 | |
| api/src/main/java/com/alibaba/nacos/api/naming/NamingService.java | 829 | 34 | 16 | 978.9 | |
| client/src/test/java/com/alibaba/nacos/client/ai/NacosAiServiceTest.java | 1,725 | 23 | 5 | 955.3 | |
| naming/src/main/java/com/alibaba/nacos/naming/misc/SwitchManager.java | 551 | 40 | 9 | 938.9 | |
| console-ui/src/pages/ConfigurationManagement/ConfigEditor/NewConfigEditor.js | 719 | 35 | 17 | 938.5 | |
| core/src/test/java/com/alibaba/nacos/core/plugin/PluginManagerTest.java | 1,965 | 21 | 3 | 930.9 | |
| core/src/main/java/com/alibaba/nacos/core/remote/ConnectionManager.java | 372 | 48 | 10 | 925.8 | |
| client/src/test/java/com/alibaba/nacos/client/config/impl/ClientWorkerTest.java | 1,349 | 25 | 19 | 918.2 | |
| console-ui/src/pages/AI/McpDetail/McpDetail.js | 1,565 | 23 | 4 | 909.9 | |
| ai/src/main/java/com/alibaba/nacos/ai/service/prompt/PromptOperationServiceImpl.java | 1,214 | 26 | 5 | 905.9 | |
| ai/src/main/java/com/alibaba/nacos/ai/constant/Constants.java | 443 | 42 | 10 | 884.0 | |
| naming/src/main/java/com/alibaba/nacos/naming/misc/SwitchDomain.java | 539 | 38 | 10 | 882.2 | |
| config/src/main/java/com/alibaba/nacos/config/server/utils/PropertyUtil.java | 417 | 43 | 17 | 878.1 | |
| client/src/test/java/com/alibaba/nacos/client/naming/remote/gprc/NamingGrpcClientProxyTest.java | 782 | 31 | 17 | 866.9 | |
| ai/src/main/java/com/alibaba/nacos/ai/service/resource/AiResourceManager.java | 1,728 | 20 | 6 | 831.4 | |
| common/src/main/java/com/alibaba/nacos/common/utils/StringUtils.java | 816 | 29 | 14 | 828.4 | |
| naming/src/main/java/com/alibaba/nacos/naming/web/DistroFilter.java | 167 | 64 | 20 | 827.1 | |
| console-ui-next/src/pages/agentSpecDetail/index.tsx | 1,677 | 20 | 5 | 819.0 | |
| bootstrap/src/main/resources/application.properties | 575 | 34 | 13 | 815.3 | |
| console-ui/src/pages/AI/McpDetail/ShowTools.js | 1,243 | 23 | 5 | 810.9 | |
| config/src/main/java/com/alibaba/nacos/config/server/remote/ConfigQueryRequestHandler.java | 280 | 47 | 15 | 786.5 | |
| config/src/test/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedConfigInfoPersistServiceImplTest.java | 1,638 | 19 | 12 | 769.0 | |
| test/java-sdk-test/JAVA_SDK_IT_COVERAGE.md | 480 | 35 | 5 | 766.8 | |
| common/src/test/java/com/alibaba/nacos/common/remote/client/RpcClientTest.java | 1,433 | 20 | 10 | 757.1 | |
| ai/src/main/java/com/alibaba/nacos/ai/utils/SkillZipParser.java | 1,294 | 21 | 10 | 755.4 | |
| ai/src/main/java/com/alibaba/nacos/ai/controller/SkillAdminController.java | 435 | 36 | 8 | 750.8 | |
| plugin/datasource/src/main/java/com/alibaba/nacos/plugin/datasource/mapper/ConfigInfoMapper.java | 565 | 31 | 15 | 736.9 | |
| api/src/main/java/com/alibaba/nacos/api/ai/AiService.java | 1,068 | 22 | 7 | 719.0 | |
| config/src/main/java/com/alibaba/nacos/config/server/controller/v3/ConfigControllerV3.java | 815 | 25 | 9 | 713.7 | |
| client/src/test/java/com/alibaba/nacos/client/config/NacosConfigServiceTest.java | 1,047 | 22 | 12 | 711.9 | |
| doc/agent-management-rad-design-draft.md | 2,219 | 15 | 1 | 706.6 | |
| core/src/main/java/com/alibaba/nacos/core/remote/grpc/GrpcBiStreamRequestAcceptor.java | 233 | 46 | 8 | 702.2 | |
| naming/src/main/java/com/alibaba/nacos/naming/core/InstanceOperatorClientImpl.java | 396 | 34 | 10 | 676.6 | |
| console/src/main/resources/META-INF/native-image/com.alibaba.nacos/nacos-console/reflect-config.json | 18,180 | 5 | 3 | 674.2 | |
| config/src/main/java/com/alibaba/nacos/config/server/service/capacity/GroupCapacityPersistService.java | 414 | 33 | 22 | 671.5 | |
| console-ui/src/pages/AI/PromptDetail/PromptDetail.js | 1,996 | 15 | 2 | 670.1 | |
| config/src/main/java/com/alibaba/nacos/config/server/constant/Constants.java | 360 | 35 | 19 | 664.1 | |
| test/openapi-test/CONSOLE_API_TEST_SCENARIOS.md | 208 | 46 | 4 | 663.4 | |
| test/pom.xml | 39 | 105 | 24 | 655.7 | |
| core/src/main/java/com/alibaba/nacos/core/remote/grpc/GrpcRequestAcceptor.java | 265 | 40 | 14 | 651.2 | |
| specs/en/ai/agent-api-spec.md | 956 | 21 | 1 | 649.3 | |
| example/pom.xml | 55 | 87 | 19 | 645.2 | |
| sys/src/main/java/com/alibaba/nacos/sys/env/EnvUtil.java | 525 | 28 | 17 | 641.6 | |
| console-ui-next/src/pages/promptDetail/index.tsx | 1,586 | 16 | 4 | 637.2 | |
| ai/src/test/java/com/alibaba/nacos/ai/service/prompt/PromptOperationServiceImplTest.java | 1,399 | 17 | 5 | 635.9 | |
| console-ui/src/pages/AI/NewSkill/NewSkill.js | 4,028 | 10 | 4 | 634.7 | |
| distribution/bin/startup.cmd | 239 | 41 | 27 | 633.8 | |
| cmdb/pom.xml | 91 | 66 | 14 | 629.6 |
How Nacos compares with other open source projects from China →
How Nacos 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