in pkg/rules/nacos/service/nacos_go_client_service_setup.go [42:65]
func beforeNamingHttpProxyCloseClient(call api.CallContext, proxy *naming_http.NamingHttpProxy) {
if !experimental.NacosEnabler.Enable() {
return
}
t := reflect.ValueOf(proxy)
if t.Kind() == reflect.Ptr {
t = t.Elem()
} else {
return
}
beatReactorField := t.FieldByName("beatReactor")
if beatReactorField.IsValid() && beatReactorField.CanInterface() {
beatReactorInterface := beatReactorField.Interface()
beatReactor, ok := beatReactorInterface.(naming_http.BeatReactor)
if ok {
if reg, ok := beatReactor.OtelReg.(metric.Registration); ok {
err := reg.Unregister()
if err != nil {
log.Printf("failed to unregister metrics for beat reactor, %v", err)
}
}
}
}
}