Merge pull request #6884 from timmysilv/tracing-endpoint

jaeger-endpoint feature for non-agent trace collectors
This commit is contained in:
Kubernetes Prow Robot 2021-03-09 10:59:05 -08:00 committed by GitHub
commit c90d33c313
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 51 additions and 2 deletions

View file

@ -555,6 +555,9 @@ type Configuration struct {
// Default: 6831
JaegerCollectorPort int `json:"jaeger-collector-port"`
// JaegerEndpoint specifies the enpoint to use when uploading traces to a collector over TCP
JaegerEndpoint string `json:"jaeger-endpoint"`
// JaegerServiceName specifies the service name to use for any traces created
// Default: nginx
JaegerServiceName string `json:"jaeger-service-name"`

View file

@ -1039,6 +1039,7 @@ const jaegerTmpl = `{
"samplingServerURL": "{{ .JaegerSamplerHost }}:{{ .JaegerSamplerPort }}/sampling"
},
"reporter": {
"endpoint": "{{ .JaegerEndpoint }}",
"localAgentHostPort": "{{ .JaegerCollectorHost }}:{{ .JaegerCollectorPort }}"
},
"headers": {
@ -1068,7 +1069,7 @@ func createOpentracingCfg(cfg ngx_config.Configuration) error {
if err != nil {
return err
}
} else if cfg.JaegerCollectorHost != "" {
} else if cfg.JaegerCollectorHost != "" || cfg.JaegerEndpoint != "" {
tmpl, err = template.New("jaeger").Parse(jaegerTmpl)
if err != nil {
return err

View file

@ -1018,7 +1018,7 @@ func buildOpentracing(c interface{}, s interface{}) string {
buf.WriteString("opentracing_load_tracer /usr/local/lib64/libdd_opentracing.so /etc/nginx/opentracing.json;")
} else if cfg.ZipkinCollectorHost != "" {
buf.WriteString("opentracing_load_tracer /usr/local/lib/libzipkin_opentracing_plugin.so /etc/nginx/opentracing.json;")
} else if cfg.JaegerCollectorHost != "" {
} else if cfg.JaegerCollectorHost != "" || cfg.JaegerEndpoint != "" {
buf.WriteString("opentracing_load_tracer /usr/local/lib/libjaegertracing_plugin.so /etc/nginx/opentracing.json;")
}

View file

@ -1163,6 +1163,16 @@ func TestBuildOpenTracing(t *testing.T) {
t.Errorf("Expected '%v' but returned '%v'", expected, actual)
}
cfgNoHost := config.Configuration{
EnableOpentracing: true,
}
expected = "\r\n"
actual = buildOpentracing(cfgNoHost, []*ingress.Server{})
if expected != actual {
t.Errorf("Expected '%v' but returned '%v'", expected, actual)
}
cfgJaeger := config.Configuration{
EnableOpentracing: true,
JaegerCollectorHost: "jaeger-host.com",
@ -1196,6 +1206,17 @@ func TestBuildOpenTracing(t *testing.T) {
t.Errorf("Expected '%v' but returned '%v'", expected, actual)
}
cfgJaegerEndpoint := config.Configuration{
EnableOpentracing: true,
JaegerEndpoint: "http://jaeger-collector.com:14268/api/traces",
}
expected = "opentracing_load_tracer /usr/local/lib/libjaegertracing_plugin.so /etc/nginx/opentracing.json;\r\n"
actual = buildOpentracing(cfgJaegerEndpoint, []*ingress.Server{})
if expected != actual {
t.Errorf("Expected '%v' but returned '%v'", expected, actual)
}
cfgOpenTracing := config.Configuration{
EnableOpentracing: true,
DatadogCollectorHost: "datadog-host.com",