123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package example
- import (
- "github.com/coredns/coredns/core/dnsserver"
- "github.com/coredns/coredns/plugin"
- "github.com/coredns/coredns/plugin/metrics"
- "github.com/mholt/caddy"
- )
- func init() {
- caddy.RegisterPlugin("example", caddy.Plugin{
- ServerType: "dns",
- Action: setup,
- })
- }
- func setup(c *caddy.Controller) error {
- c.Next()
- if c.NextArg() {
-
-
-
- return plugin.Error("example", c.ArgErr())
- }
-
-
-
- c.OnStartup(func() error {
- once.Do(func() {
- m := dnsserver.GetConfig(c).Handler("prometheus")
- if m == nil {
- return
- }
- if x, ok := m.(*metrics.Metrics); ok {
- x.MustRegister(requestCount)
- }
- })
- return nil
- })
-
- dnsserver.GetConfig(c).AddPlugin(func(next plugin.Handler) plugin.Handler {
- return Example{Next: next}
- })
-
- return nil
- }
|