Tencent / nohost

基于 Whistle 实现的多账号多环境远程配置及抓包调试平台
https://nohost.pro
Other
1.4k stars 160 forks source link

无法使用autosave插件 #189

Closed linliyuan closed 1 year ago

linliyuan commented 1 year ago

本地测试截图如下,已经开启了autosave,设置了路径,同样设置在whistle是可以生效的,但是nohost会有问题 nohost版本 1.5.10 image image image

avwo commented 1 year ago

抓包看下请求有没有匹配规则

linliyuan commented 1 year ago

抓包看下请求有没有匹配规则

是可以抓包的,是否是我的安装方式不对呢? image

nohost的 whistle下可以看到autosave image

对应的账号下没有autosave image

avwo commented 1 year ago

master 没有抓包数据,要安装到账号下面:

n2 i whistle.autosave

https://nohost.pro/docs/developer/plugin

linliyuan commented 1 year ago

master 没有抓包数据,要安装到账号下面:

n2 i whistle.autosave

https://nohost.pro/docs/developer/plugin

试了一下可以了,之前应该是用了 npm i -g whistle.autosave 了。安装方式不对。

linliyuan commented 1 year ago

master 没有抓包数据,要安装到账号下面:

请问大佬,这个意思是nohost的情况下,全局的 Whistle是没有调resStatsServer的吗?为什么会没有抓包数据呢?在Whistle上设置的rule是生效的。 目前安装在账号下的话,需要多个账号都进行配置,比较麻烦,想全部记录的话,可以在全局的 Whistle上做插件开发吗?看到nohost的插件开发文档没有说明全局whistle跟账号whistle的区别,感到困惑。

avwo commented 1 year ago

性能因素,全局 Whistle 没有抓包数据

linliyuan commented 1 year ago

在本地试了一下,在nohost的全局whistle装的autosave又是可以保存日志的,但是线上的没有触发生效,有点疑惑。这样子全采集会导致性能影响很大吗?看到有一个问题是会并发去做写入,如果是都配同个地址是否存在资源竞争问题,导致写入覆盖等。

avwo commented 1 year ago

对性能影响很大,本地因为是用开发模式启动所以可以看到抓包数据,覆盖问题可以修改插件解决

linliyuan commented 1 year ago

其他的一些插件会有同样的问题吗?像鉴权之类的,想在全局做的话,是不是都有这个问题呢?有些场景是针对所有账号的,不想到每个账号都配置,容易操作失误,且覆盖不了默认账号。

avwo commented 1 year ago

插件里面可以读取到账号,可以给个占位符( 如:{account}) ,让每个账号创建一个目录,有空我看下,或者你可以试试提 pr

linliyuan commented 1 year ago

插件里面可以读取到账号,可以给个占位符( 如:{account}) ,让每个账号创建一个目录,有空我看下,或者你可以试试提 pr

能读取到账号,也是需要到每个账号下面做配置。像如果代理做鉴权的话,感觉是不是在公共进来的whistle上面做插件好一点。

avwo commented 1 year ago

晚上会发个版本解决冲突问题

linliyuan commented 1 year ago

晚上会发个版本解决冲突问题

我在想,如果是阻塞影响性能的插件,是否让这些插件开多一个线程去异步做插件操作,不影响主请求流程就好,就不需要到子账号的whistle上处理了。我体验感觉是插件在使用场景上,更多是对所有账号生效,而不是针对少数账号生效。

avwo commented 1 year ago

重新安装插件

linliyuan commented 1 year ago

重新安装插件

还是要安装到每个账号,然后到账号下的plugins开启吗?

avwo commented 1 year ago

对,或者你自己可以基于 autosave 实现一个固定目录并自动开启的新插件

linliyuan commented 1 year ago

嗯嗯,好的,那之前想问那种全局的插件有可能做的吗?想法上如果做鉴权是要全局都鉴权的。目前 n2 i whistle.xxxx 是安装到子账号的,想能否安装到主whistle做到全局鉴权。

avwo commented 1 year ago

说了全局一旦开启抓包性能会影响请求并发数

linliyuan commented 1 year ago

说了全局一旦开启抓包性能会影响请求并发数

之前看whistle上可以写一些请求头添加之类的规则,这种不能介入做鉴权控制吗?获取请求头做鉴权这样子也不能在master的whistle上使用插件去完成? 之前看有文章是介绍,master的whistle是有做https请求解析的。

image

avwo commented 1 year ago

鉴权不涉及请求响应内容可以在 master 进行,实现 auth 的 hook 即可,参考:https://github.com/whistle-plugins/whistle.proxyauth

linliyuan commented 1 year ago

11,感谢大佬解答