iLogtail进行架构重构主要是因为原有架构存在以下关键问题:
- 输入输出与处理模块组合受限:C++原生高性能处理能力仅限于采集日志文件并投递至SLS的场景,无法与Golang插件的多样化处理能力组合使用。
- 代码耦合严重:C++主程序存在错综复杂的类间依赖关系,开发难度极大,社区贡献者几乎无人问津。
- 数据模型不通用:内部交互的LogGroup数据结构仅适用于Log,无法表达Metric和Trace,且绑定SLS导致向第三方存储投递时需额外格式转换。
- 商业版与开源版代码剥离困难:采用文件替换方式导致开源版存在大量无用空函数,开发联调不便。
这些问题严重制约了iLogtail的快速发展和开源社区生态建设。




