Opentracing layer generator improvement (#14206)
Этот коммит содержится в:
коммит произвёл
GitHub
родитель
e276a2bf57
Коммит
c0fc6c13d5
@@ -108,7 +108,7 @@ func extractMethodMetadata(method *ast.Field, src []byte) methodData {
|
||||
for paramName := range paramsToTrace {
|
||||
found := false
|
||||
for _, param := range params {
|
||||
if param.Name == paramName {
|
||||
if param.Name == paramName || strings.HasPrefix(paramName, param.Name+".") {
|
||||
found = true
|
||||
break
|
||||
}
|
||||
@@ -218,6 +218,17 @@ func generateLayer(name, templateFile string) ([]byte, error) {
|
||||
}
|
||||
return ""
|
||||
},
|
||||
"shouldTrace": func(params map[string]bool, param string) string {
|
||||
if _, ok := params[param]; ok {
|
||||
return fmt.Sprintf(`span.SetTag("%s", %s)`, param, param)
|
||||
}
|
||||
for pName := range params {
|
||||
if strings.HasPrefix(pName, param+".") {
|
||||
return fmt.Sprintf(`span.SetTag("%s", %s)`, pName, pName)
|
||||
}
|
||||
}
|
||||
return ""
|
||||
},
|
||||
"joinParams": func(params []methodParam) string {
|
||||
paramsNames := []string{}
|
||||
for _, param := range params {
|
||||
|
||||
@@ -58,9 +58,7 @@ func (a *{{$.Name}}) {{$index}}({{$element.Params | joinParamsWithType}}) {{$ele
|
||||
a.ctx = origCtx
|
||||
}()
|
||||
{{range $paramIdx, $param := $element.Params}}
|
||||
{{if index $element.ParamsToTrace $param.Name}}
|
||||
span.SetTag("{{$param.Name}}", {{$param.Name}})
|
||||
{{end}}
|
||||
{{ shouldTrace $element.ParamsToTrace $param.Name }}
|
||||
{{end}}
|
||||
defer span.Finish()
|
||||
{{- if $element.Results | len | eq 0}}
|
||||
|
||||
Ссылка в новой задаче
Block a user