return failure with CH class hits file or etcd, monitoring portis 9135

This commit is contained in:
Miek Gieben
2016-04-05 16:23:03 +01:00
parent 8892a1b490
commit e0c4f94d67
7 changed files with 9 additions and 6 deletions

View File

@@ -53,10 +53,10 @@ var directiveOrder = []directive{
// Directives that inject handlers (middleware)
{"prometheus", setup.Prometheus},
{"log", setup.Log},
{"chaos", setup.Chaos},
{"rewrite", setup.Rewrite},
{"loadbalance", setup.Loadbalance},
{"file", setup.File},
{"chaos", setup.Chaos},
{"secondary", setup.Secondary},
{"etcd", setup.Etcd},
{"proxy", setup.Proxy},

View File

@@ -9,7 +9,7 @@ import (
const (
path = "/metrics"
addr = "localhost:9153"
addr = "localhost:9135" // 9153 is occopied by bind_exporter
)
var once sync.Once

View File

@@ -1,6 +1,7 @@
package etcd
import (
"fmt"
"strings"
"github.com/miekg/coredns/middleware"
@@ -12,7 +13,7 @@ import (
func (e Etcd) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) {
state := middleware.State{W: w, Req: r}
if state.QClass() != dns.ClassINET {
return e.Next.ServeDNS(ctx, w, r)
return dns.RcodeServerFailure, fmt.Errorf("can only deal with ClassINET")
}
// We need to check stubzones first, because we may get a request for a zone we

View File

@@ -1,6 +1,7 @@
package file
import (
"fmt"
"io"
"log"
@@ -25,7 +26,7 @@ type (
func (f File) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) (int, error) {
state := middleware.State{W: w, Req: r}
if state.QClass() != dns.ClassINET {
return f.Next.ServeDNS(ctx, w, r)
return dns.RcodeServerFailure, fmt.Errorf("can only deal with ClassINET")
}
qname := state.Name()
zone := middleware.Zones(f.Zones.Names).Matches(qname)

View File

@@ -58,7 +58,7 @@ Transfer:
z.Tree = z1.Tree
*z.Expired = false
log.Printf("[INFO] Transfered: %s", z.name)
log.Printf("[INFO] Transferred: %s", z.name)
return nil
}

View File

@@ -25,6 +25,6 @@ prometheus
For each zone that you want to see metrics for.
It optionally takes an address where the metrics are exported, the default
is `localhost:9153`. The metrics path is fixed to `/metrics`.
is `localhost:9154`. The metrics path is fixed to `/metrics`.
## Examples

View File

@@ -39,6 +39,7 @@ func (m *Metrics) Start() error {
http.Handle(path, prometheus.Handler())
go func() {
// TODO(miek): Logging here?
fmt.Errorf("%s", http.ListenAndServe(m.Addr, nil))
}()
})