Update opentracing configuration (#2676)
This commit is contained in:
parent
18418157dc
commit
df76d4b481
6 changed files with 84 additions and 62 deletions
|
|
@ -31,6 +31,7 @@ import (
|
|||
"strings"
|
||||
"sync"
|
||||
"syscall"
|
||||
"text/template"
|
||||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
|
|
@ -593,11 +594,17 @@ func (n *NGINXController) OnUpdate(ingressCfg ingress.Configuration) error {
|
|||
}
|
||||
|
||||
content, err := n.t.Write(tc)
|
||||
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if cfg.EnableOpentracing {
|
||||
err := createOpentracingCfg(cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
||||
err = n.testTemplate(content)
|
||||
if err != nil {
|
||||
return err
|
||||
|
|
@ -779,3 +786,47 @@ func configureDynamically(pcfg *ingress.Configuration, port int) error {
|
|||
|
||||
return nil
|
||||
}
|
||||
|
||||
const zipkinTmpl = `{
|
||||
"service_name": "{{ .ZipkinServiceName }}",
|
||||
"collector_host": "{{ .ZipkinCollectorHost }}",
|
||||
"collector_port": {{ .ZipkinCollectorPort }}
|
||||
}`
|
||||
|
||||
const jaegerTmpl = `{
|
||||
"service_name": "{{ .JaegerServiceName }}",
|
||||
"sampler": {
|
||||
"type": "{{ .JaegerSamplerType }}",
|
||||
"param": {{ .JaegerSamplerParam }}
|
||||
},
|
||||
"reporter": {
|
||||
"localAgentHostPort": "{{ .JaegerCollectorHost }}:{{ .JaegerCollectorPort }}"
|
||||
}
|
||||
}`
|
||||
|
||||
func createOpentracingCfg(cfg ngx_config.Configuration) error {
|
||||
var tmpl *template.Template
|
||||
var err error
|
||||
|
||||
if cfg.ZipkinCollectorHost != "" {
|
||||
tmpl, err = template.New("zipkin").Parse(zipkinTmpl)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else if cfg.JaegerCollectorHost != "" {
|
||||
tmpl, err = template.New("jarger").Parse(jaegerTmpl)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
tmpl, _ = template.New("empty").Parse("{}")
|
||||
}
|
||||
|
||||
tmplBuf := bytes.NewBuffer(make([]byte, 0))
|
||||
err = tmpl.Execute(tmplBuf, cfg)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
return ioutil.WriteFile("/etc/nginx/opentracing.json", tmplBuf.Bytes(), file.ReadWriteByUser)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -151,7 +151,6 @@ var (
|
|||
"isValidClientBodyBufferSize": isValidClientBodyBufferSize,
|
||||
"buildForwardedFor": buildForwardedFor,
|
||||
"buildAuthSignURL": buildAuthSignURL,
|
||||
"buildOpentracingLoad": buildOpentracingLoad,
|
||||
"buildOpentracing": buildOpentracing,
|
||||
"proxySetHeader": proxySetHeader,
|
||||
"buildInfluxDB": buildInfluxDB,
|
||||
|
|
@ -841,31 +840,6 @@ func randomString() string {
|
|||
return string(b)
|
||||
}
|
||||
|
||||
func buildOpentracingLoad(input interface{}) string {
|
||||
cfg, ok := input.(config.Configuration)
|
||||
if !ok {
|
||||
glog.Errorf("expected a 'config.Configuration' type but %T was returned", input)
|
||||
return ""
|
||||
}
|
||||
|
||||
if !cfg.EnableOpentracing {
|
||||
return ""
|
||||
}
|
||||
|
||||
buf := bytes.NewBufferString("load_module /etc/nginx/modules/ngx_http_opentracing_module.so;")
|
||||
buf.WriteString("\r\n")
|
||||
|
||||
if cfg.ZipkinCollectorHost != "" {
|
||||
buf.WriteString("load_module /etc/nginx/modules/ngx_http_zipkin_module.so;")
|
||||
} else if cfg.JaegerCollectorHost != "" {
|
||||
buf.WriteString("load_module /etc/nginx/modules/ngx_http_jaeger_module.so;")
|
||||
}
|
||||
|
||||
buf.WriteString("\r\n")
|
||||
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
func buildOpentracing(input interface{}) string {
|
||||
cfg, ok := input.(config.Configuration)
|
||||
if !ok {
|
||||
|
|
@ -878,24 +852,14 @@ func buildOpentracing(input interface{}) string {
|
|||
}
|
||||
|
||||
buf := bytes.NewBufferString("")
|
||||
|
||||
if cfg.ZipkinCollectorHost != "" {
|
||||
buf.WriteString(fmt.Sprintf("zipkin_collector_host %v;", cfg.ZipkinCollectorHost))
|
||||
buf.WriteString("\r\n")
|
||||
buf.WriteString(fmt.Sprintf("zipkin_collector_port %v;", cfg.ZipkinCollectorPort))
|
||||
buf.WriteString("\r\n")
|
||||
buf.WriteString(fmt.Sprintf("zipkin_service_name %v;", cfg.ZipkinServiceName))
|
||||
buf.WriteString("opentracing_load_tracer /usr/local/lib/libzipkin_opentracing.so /etc/nginx/opentracing.json;")
|
||||
} else if cfg.JaegerCollectorHost != "" {
|
||||
buf.WriteString(fmt.Sprintf("jaeger_reporter_local_agent_host_port %v:%v;", cfg.JaegerCollectorHost, cfg.JaegerCollectorPort))
|
||||
buf.WriteString("\r\n")
|
||||
buf.WriteString(fmt.Sprintf("jaeger_service_name %v;", cfg.JaegerServiceName))
|
||||
buf.WriteString("\r\n")
|
||||
buf.WriteString(fmt.Sprintf("jaeger_sampler_type %v;", cfg.JaegerSamplerType))
|
||||
buf.WriteString("\r\n")
|
||||
buf.WriteString(fmt.Sprintf("jaeger_sampler_param %v;", cfg.JaegerSamplerParam))
|
||||
buf.WriteString("opentracing_load_tracer /usr/local/lib/libjaegertracing.so /etc/nginx/opentracing.json;")
|
||||
}
|
||||
|
||||
buf.WriteString("\r\n")
|
||||
|
||||
return buf.String()
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue