diff options
Diffstat (limited to 'middleware/trace/setup.go')
-rw-r--r-- | middleware/trace/setup.go | 113 |
1 files changed, 0 insertions, 113 deletions
diff --git a/middleware/trace/setup.go b/middleware/trace/setup.go deleted file mode 100644 index 601472fee..000000000 --- a/middleware/trace/setup.go +++ /dev/null @@ -1,113 +0,0 @@ -package trace - -import ( - "fmt" - "strconv" - "strings" - - "github.com/coredns/coredns/core/dnsserver" - "github.com/coredns/coredns/middleware" - - "github.com/mholt/caddy" -) - -func init() { - caddy.RegisterPlugin("trace", caddy.Plugin{ - ServerType: "dns", - Action: setup, - }) -} - -func setup(c *caddy.Controller) error { - t, err := traceParse(c) - if err != nil { - return middleware.Error("trace", err) - } - - dnsserver.GetConfig(c).AddMiddleware(func(next middleware.Handler) middleware.Handler { - t.Next = next - return t - }) - - c.OnStartup(t.OnStartup) - - return nil -} - -func traceParse(c *caddy.Controller) (*trace, error) { - var ( - tr = &trace{Endpoint: defEP, EndpointType: defEpType, every: 1, serviceName: defServiceName} - err error - ) - - cfg := dnsserver.GetConfig(c) - tr.ServiceEndpoint = cfg.ListenHost + ":" + cfg.Port - for c.Next() { // trace - var err error - args := c.RemainingArgs() - switch len(args) { - case 0: - tr.Endpoint, err = normalizeEndpoint(tr.EndpointType, defEP) - case 1: - tr.Endpoint, err = normalizeEndpoint(defEpType, args[0]) - case 2: - tr.EndpointType = strings.ToLower(args[0]) - tr.Endpoint, err = normalizeEndpoint(tr.EndpointType, args[1]) - default: - err = c.ArgErr() - } - if err != nil { - return tr, err - } - for c.NextBlock() { - switch c.Val() { - case "every": - args := c.RemainingArgs() - if len(args) != 1 { - return nil, c.ArgErr() - } - tr.every, err = strconv.ParseUint(args[0], 10, 64) - if err != nil { - return nil, err - } - case "service": - args := c.RemainingArgs() - if len(args) != 1 { - return nil, c.ArgErr() - } - tr.serviceName = args[0] - case "client_server": - args := c.RemainingArgs() - if len(args) > 1 { - return nil, c.ArgErr() - } - tr.clientServer = true - if len(args) == 1 { - tr.clientServer, err = strconv.ParseBool(args[0]) - } - if err != nil { - return nil, err - } - } - } - } - return tr, err -} - -func normalizeEndpoint(epType, ep string) (string, error) { - switch epType { - case "zipkin": - if !strings.Contains(ep, "http") { - ep = "http://" + ep + "/api/v1/spans" - } - return ep, nil - default: - return "", fmt.Errorf("tracing endpoint type '%s' is not supported", epType) - } -} - -const ( - defEP = "localhost:9411" - defEpType = "zipkin" - defServiceName = "coredns" -) |