Bingchang Chen

Results 13 issues of Bingchang Chen

## 算法设计 限速插件基于令牌桶算法的设计: 1. 在获取令牌桶时,会根据距离上次填充的时间长度,向令牌桶中补充相应数量的令牌。 2. 如果无法获取到令牌(令牌桶中的数量小于等于0),那么该日志就会被丢弃掉。 ## 数据结构 ### 令牌桶 ``` type tokenBucket struct { mu sync.Mutex limit rate buckets sync.Map // GC thresholds and metrics gc struct {...

## Failed Unittest - [ ] AppConfigUnittest - [ ] ConfigMatchUnittest - [ ] ConfigUpdatorUnittest - [ ] QueueManagerUnittest - [ ] FileSystemUtilUnittest - [ ] TimeUtilUnittest (Failed in docker...

test

问题:在某些场景下,容器运行时比iLogtail启动要慢很多。原有的初始化重试时间不够长。 解决:如果容器运行时发现初始化失败,那么后续的发现逻辑也不应该执行。PR中启动了一个独立的goroutine一直重试初始化,直至以下两种情况下成立: 1. 用户指定使用Containerd,且Containerd初始化成功 2. 用户不指定使用Containerd,且任意一种运行时初始化成功

现有的拼接路径逻辑如下: 1. 如果 WINDOWS_DOCKER_INSTALL_PATH 为空 a. 如果文件路径没有盘位符,那么返回为空(Containerd的路径是没有盘位符的,符合,所以这里改动为了返回传入的filePath) b. 如果文件路径有盘位符,那么会用Logtail的挂载路径替换盘位符(Docker符合) 2. 如果 WINDOWS_DOCKER_INSTALL_PATH 不为空 a. 删除盘位符,并使用 WINDOWS_DOCKER_DATA_MOUNT_PATH 拼接

问题:每个单测用例,都需要静态链接复制一份unittest_base.a,导致整体编译结果达到了107GB。 解决方法:将公共部分unittest_base编译成动态链接库,整体编译结果缩小到了4.7GB。 通过cmake参数控制,是否引入SPL,`WITHOUTSPL`

# 修改内容 1. 开发了新的E2E框架:新版E2E通过行为驱动的方法,将E2E测试流程分为setup、trigger、verify和cleanup四个阶段的若干动作。如何添加新版测试用例可以参考e2e-test.md和e2e-test-step.md 2. 将现有的E2E测试用例迁移至新版,CI时间由30+分钟缩短至20+分钟。

test

documentation

## 背景 目前加载配置都是全量停止,全量重新加载和全量启动。这会造成一些没有变化的配置的重复加载。 ## 方案 修改了CGO接口,提供了新的Go流水线加载接口,命名与C++侧统一。 1. StopAll:用于进程退出 2. Stop:停止指定配置 3. Start:启动指定配置