plugin/trace: Fix zipkin json_v2 (#4180)

Automatically submitted.
This commit is contained in:
Bob 2020-11-10 20:03:14 +01:00 committed by GitHub
parent dd2a1bfc82
commit b7814204a4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 9 deletions

View file

@ -56,6 +56,8 @@ You can run Zipkin on a Docker host like this:
docker run -d -p 9411:9411 openzipkin/zipkin
```
:warning: The zipkin provider does not support the v1 API since coredns 1.7.1
## Examples
Use an alternative Zipkin address:

View file

@ -35,7 +35,9 @@ func traceParse(c *caddy.Controller) (*trace, error) {
)
cfg := dnsserver.GetConfig(c)
tr.serviceEndpoint = cfg.ListenHosts[0] + ":" + cfg.Port
if cfg.ListenHosts[0] != "" {
tr.serviceEndpoint = cfg.ListenHosts[0] + ":" + cfg.Port
}
for c.Next() { // trace
var err error
@ -115,7 +117,7 @@ func normalizeEndpoint(epType, ep string) (string, string, error) {
if epType == "zipkin" {
if !strings.Contains(ep, "http") {
ep = "http://" + ep + "/api/v1/spans"
ep = "http://" + ep + "/api/v2/spans"
}
}

View file

@ -16,17 +16,17 @@ func TestTraceParse(t *testing.T) {
clientServer bool
}{
// oks
{`trace`, false, "http://localhost:9411/api/v1/spans", 1, `coredns`, false},
{`trace localhost:1234`, false, "http://localhost:1234/api/v1/spans", 1, `coredns`, false},
{`trace`, false, "http://localhost:9411/api/v2/spans", 1, `coredns`, false},
{`trace localhost:1234`, false, "http://localhost:1234/api/v2/spans", 1, `coredns`, false},
{`trace http://localhost:1234/somewhere/else`, false, "http://localhost:1234/somewhere/else", 1, `coredns`, false},
{`trace zipkin localhost:1234`, false, "http://localhost:1234/api/v1/spans", 1, `coredns`, false},
{`trace zipkin localhost:1234`, false, "http://localhost:1234/api/v2/spans", 1, `coredns`, false},
{`trace datadog localhost`, false, "localhost", 1, `coredns`, false},
{`trace datadog http://localhost:8127`, false, "http://localhost:8127", 1, `coredns`, false},
{"trace datadog localhost {\n datadog_analytics_rate 0.1\n}", false, "localhost", 1, `coredns`, false},
{"trace {\n every 100\n}", false, "http://localhost:9411/api/v1/spans", 100, `coredns`, false},
{"trace {\n every 100\n service foobar\nclient_server\n}", false, "http://localhost:9411/api/v1/spans", 100, `foobar`, true},
{"trace {\n every 2\n client_server true\n}", false, "http://localhost:9411/api/v1/spans", 2, `coredns`, true},
{"trace {\n client_server false\n}", false, "http://localhost:9411/api/v1/spans", 1, `coredns`, false},
{"trace {\n every 100\n}", false, "http://localhost:9411/api/v2/spans", 100, `coredns`, false},
{"trace {\n every 100\n service foobar\nclient_server\n}", false, "http://localhost:9411/api/v2/spans", 100, `foobar`, true},
{"trace {\n every 2\n client_server true\n}", false, "http://localhost:9411/api/v2/spans", 2, `coredns`, true},
{"trace {\n client_server false\n}", false, "http://localhost:9411/api/v2/spans", 1, `coredns`, false},
// fails
{`trace footype localhost:4321`, true, "", 1, "", false},
{"trace {\n every 2\n client_server junk\n}", true, "", 1, "", false},
@ -47,6 +47,9 @@ func TestTraceParse(t *testing.T) {
continue
}
if "" != m.serviceEndpoint {
t.Errorf("Test %v: Expected serviceEndpoint to be '' but found: %s", i, m.serviceEndpoint)
}
if test.endpoint != m.Endpoint {
t.Errorf("Test %v: Expected endpoint %s but found: %s", i, test.endpoint, m.Endpoint)
}

View file

@ -84,6 +84,7 @@ func (t *trace) setupZipkin() error {
tracer, err := zipkin.NewTracer(
reporter,
zipkin.WithLocalEndpoint(recorder),
zipkin.WithSharedSpans(t.clientServer),
)
if err != nil {
return err