mirror of
https://github.com/coredns/coredns.git
synced 2025-12-07 02:45:11 -05:00
Add tracing option (#487)
Adds a middleware to enable tracing with OpenTracing/OpenZipkin. Enabling tracing will have a large impact on performance so it is not advisable in production.
This commit is contained in:
43
middleware/trace/setup_test.go
Normal file
43
middleware/trace/setup_test.go
Normal file
@@ -0,0 +1,43 @@
|
||||
package trace
|
||||
|
||||
import (
|
||||
"testing"
|
||||
|
||||
"github.com/mholt/caddy"
|
||||
)
|
||||
|
||||
func TestTraceParse(t *testing.T) {
|
||||
tests := []struct {
|
||||
input string
|
||||
shouldErr bool
|
||||
endpoint string
|
||||
}{
|
||||
// oks
|
||||
{`trace`, false, "http://localhost:9411/api/v1/spans"},
|
||||
{`trace localhost:1234`, false, "http://localhost:1234/api/v1/spans"},
|
||||
{`trace http://localhost:1234/somewhere/else`, false, "http://localhost:1234/somewhere/else"},
|
||||
{`trace zipkin localhost:1234`, false, "http://localhost:1234/api/v1/spans"},
|
||||
{`trace zipkin http://localhost:1234/somewhere/else`, false, "http://localhost:1234/somewhere/else"},
|
||||
// fails
|
||||
{`trace footype localhost:4321`, true, ""},
|
||||
}
|
||||
for i, test := range tests {
|
||||
c := caddy.NewTestController("dns", test.input)
|
||||
m, err := traceParse(c)
|
||||
if test.shouldErr && err == nil {
|
||||
t.Errorf("Test %v: Expected error but found nil", i)
|
||||
continue
|
||||
} else if !test.shouldErr && err != nil {
|
||||
t.Errorf("Test %v: Expected no error but found error: %v", i, err)
|
||||
continue
|
||||
}
|
||||
|
||||
if test.shouldErr {
|
||||
continue
|
||||
}
|
||||
|
||||
if test.endpoint != m.Endpoint {
|
||||
t.Errorf("Test %v: Expected endpoint %s but found: %s", i, test.endpoint, m.Endpoint)
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user