Opentracing layer generator improvement (#14206)

Этот коммит содержится в:
Eli Yukelzon
2020-04-02 11:33:43 +03:00
коммит произвёл GitHub
родитель e276a2bf57
Коммит c0fc6c13d5
2 изменённых файлов: 13 добавлений и 4 удалений

Просмотреть файл

@@ -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}}