in server/action.go [307:399]
func (svcOpts *ServiceOptions) getUrlMap() url.Values {
srv := svcOpts.Service
app := svcOpts.applicationCompat
metrics := svcOpts.srvOpts.Metrics
tracing := svcOpts.srvOpts.Otel.TracingConfig
urlMap := url.Values{}
// first set user params
for k, v := range srv.Params {
urlMap.Set(k, v)
}
urlMap.Set(constant.InterfaceKey, srv.Interface)
urlMap.Set(constant.TimestampKey, strconv.FormatInt(time.Now().Unix(), 10))
urlMap.Set(constant.ClusterKey, srv.Cluster)
urlMap.Set(constant.LoadbalanceKey, srv.Loadbalance)
urlMap.Set(constant.WarmupKey, srv.Warmup)
urlMap.Set(constant.RetriesKey, srv.Retries)
if srv.Group != "" {
urlMap.Set(constant.GroupKey, srv.Group)
}
if srv.Version != "" {
urlMap.Set(constant.VersionKey, srv.Version)
}
urlMap.Set(constant.RegistryRoleKey, strconv.Itoa(common.PROVIDER))
urlMap.Set(constant.ReleaseKey, "dubbo-golang-"+constant.Version)
urlMap.Set(constant.SideKey, (common.RoleType(common.PROVIDER)).Role())
// todo: move
urlMap.Set(constant.SerializationKey, srv.Serialization)
// application config info
urlMap.Set(constant.ApplicationKey, app.Name)
urlMap.Set(constant.OrganizationKey, app.Organization)
urlMap.Set(constant.NameKey, app.Name)
urlMap.Set(constant.ModuleKey, app.Module)
urlMap.Set(constant.AppVersionKey, app.Version)
urlMap.Set(constant.OwnerKey, app.Owner)
urlMap.Set(constant.EnvironmentKey, app.Environment)
//filter
var filters string
if srv.Filter == "" {
filters = constant.DefaultServiceFilters
} else {
filters = srv.Filter
}
if svcOpts.adaptiveService {
filters += fmt.Sprintf(",%s", constant.AdaptiveServiceProviderFilterKey)
}
if metrics.Enable != nil && *metrics.Enable {
filters += fmt.Sprintf(",%s", constant.MetricsFilterKey)
}
if tracing.Enable != nil && *tracing.Enable {
filters += fmt.Sprintf(",%s", constant.OTELServerTraceKey)
}
urlMap.Set(constant.ServiceFilterKey, filters)
// filter special config
urlMap.Set(constant.AccessLogFilterKey, srv.AccessLog)
// tps limiter
urlMap.Set(constant.TPSLimitStrategyKey, srv.TpsLimitStrategy)
urlMap.Set(constant.TPSLimitIntervalKey, srv.TpsLimitInterval)
urlMap.Set(constant.TPSLimitRateKey, srv.TpsLimitRate)
urlMap.Set(constant.TPSLimiterKey, srv.TpsLimiter)
urlMap.Set(constant.TPSRejectedExecutionHandlerKey, srv.TpsLimitRejectedHandler)
urlMap.Set(constant.TracingConfigKey, srv.TracingKey)
// execute limit filter
urlMap.Set(constant.ExecuteLimitKey, srv.ExecuteLimit)
urlMap.Set(constant.ExecuteRejectedExecutionHandlerKey, srv.ExecuteLimitRejectedHandler)
// auth filter
urlMap.Set(constant.ServiceAuthKey, srv.Auth)
urlMap.Set(constant.ParameterSignatureEnableKey, srv.ParamSign)
// whether to needExport or not
urlMap.Set(constant.ExportKey, strconv.FormatBool(svcOpts.needExport))
urlMap.Set(constant.PIDKey, fmt.Sprintf("%d", os.Getpid()))
for _, v := range srv.Methods {
prefix := "methods." + v.Name + "."
urlMap.Set(prefix+constant.LoadbalanceKey, v.LoadBalance)
urlMap.Set(prefix+constant.RetriesKey, v.Retries)
urlMap.Set(prefix+constant.WeightKey, strconv.FormatInt(v.Weight, 10))
urlMap.Set(prefix+constant.TPSLimitStrategyKey, v.TpsLimitStrategy)
urlMap.Set(prefix+constant.TPSLimitIntervalKey, v.TpsLimitInterval)
urlMap.Set(prefix+constant.TPSLimitRateKey, v.TpsLimitRate)
urlMap.Set(constant.ExecuteLimitKey, v.ExecuteLimit)
urlMap.Set(constant.ExecuteRejectedExecutionHandlerKey, v.ExecuteLimitRejectedHandler)
}
return urlMap
}