偶尔会读取不到日志

版本0.24

agent显示的报错为
E0802 16:20:25.329154 6 client.go:361] pipe copy to websocket: http2: response body closed
E0802 16:20:25.329178 6 client.go:303] Error doing 6d03cb37-6535-46e7-bb80-4e378a0865d3 for ws://xxxxx/websocket?group=cluster:20&processor=agent&secret_key=devops_ws&key=cluster:20&clusterId=20&token=ab3e6147-1614-4103-861e-5a4dbde1ccb3&version=0.22.8, backing off 1m0s: http2: response body closed

这个错误偶尔会发生,暂时没有搞清楚如何发生的,想来请问一下,是二进制缓存区给太大了吗,现在是102410244。应该如何解决这个问题呢

我估计是给太小了,缓存区放不下,然后崩了。你得看看devops的缓冲区是怎样的

有一个帖子说是加一个环境变量。WEBSOCKET_BUFFER_MAXBINARYMESSAGESIZE: 8388608
这个我已经加了,但是感觉没有作用。都加到810241024了。而且如果是因为缓存区崩了的话,报错应该不是这种response body closed 被强行断开的感觉。
所以才来请求帮助!很困扰,每次我重启agent就可以看到日志了,但是重启agent毕竟治标不治本!


之前是这样的4M.我都拉到8M了,没理由还不够啊

没看懂go,不知道什么报错才会显示pipe copy to websocket: http2: response body closed
=。= 而且如果是缓存区太小的话,那按理来说应该不会所有的pod都看不到日志,某些输出多的日志看不到我可以理解的,但是刚起的pod怎么会看不到日志。。
应该是一个websocket请求,返回一段二进制日志数据,那刚创建的pod应该体量不大的

老大能找到问题吗

老师我这边修改了大小,变大一倍了都还有这个问题,只能通过重启agent的pod来解决,但是这么操作始终治标不治本,能否看一下原因呢

我们这边复现不了你的问题。所以只能升级到1.0版本看会不会继续出现类似的情况

啊。直接从0.24版本升级到1.0吗。。这变更跨度太大了吧。也没办法根据这个报错来定位问题吗

从这上面报错只能推断出可能是缓冲区造成的问题,但是我们已经没有0.24环境了,也复现不了。升级的话不能跨版本升级,必须是0.24->0.25>1.0

好的,我这边再检查一下缓冲区或者websocket的时长

通过检查发现,agent连2021/10/18 00:09:52 [INFO] get command: cluster:6.env:test-migrate.envId:67/resource_status_sync这种devops发来的请求都收不到了。也就是agent没有办法输出get command 之类的日志信息。
只有send response key env:
请问什么时候才可能会输出不了 get command:的日志呢

所有类型的command都没有输出?

是的。所有常规的 get command 的都不输出,就很离奇

get command不输出说明websocket连接有问题。排查下websocket这一块的网络

排查过了。那个集群上ws://XXX.com是通的。而且重启agent就好了。所以和网络dns什么的应该没有关系。我就在思考会不会是devops端发送的时候,是根据redis里的那个browker分组推送的,是不是没更新或者没找到正确的地址。所以没推送到