alibaba / sentinel-golang

Sentinel Go enables reliability and resiliency for Go microservices
https://sentinelguard.io/
Apache License 2.0
2.76k stars 431 forks source link

可以支持自定义设置RT吗? #548

Open yejialiango opened 1 year ago

yejialiango commented 1 year ago

https://github.com/alibaba/sentinel-golang/blob/master/core/stat/stat_slot.go#L68

这个位置是直接设置了rt := util.CurrentTimeMillis() - ctx.StartTime(),调用方就算在前面通过 ctx.PutRT也没法生效,是不是应该通过rt := ctx.RT()获取,如果已经设置过了,就不用覆盖会好一些?

sczyh30 commented 1 year ago

咱们这边需要特殊设置的场景是怎样的呢,可否帮忙介绍一下

yejialiango commented 1 year ago

我这边用的是 mosn 框架作代理网关,按照mosn的流程,在响应结束后我们只能在 Filter 的 OnDestroy 流程执行 entry.Exit()退出,但是实际上响应是在 OnDestroy之前的,如果依赖entry.Exit()内部设置的RT,实际上会有偏差,下面草图是我们的场景: whiteboard_exported_image (2)