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