plugin/trace : make zipkin HTTP reporter more configurable using Corefile (#5460)

* plugin/trace : make zipkin HTTP reporter more configurable using Corefile

Signed-off-by: Ondřej Benkovský <ondrej.benkovsky@jamf.com>
This commit is contained in:
Ondřej Benkovský
2022-07-08 13:20:19 +02:00
committed by GitHub
parent 83adb8fa22
commit abc5ac8017
4 changed files with 105 additions and 33 deletions

View File

@@ -4,6 +4,7 @@ import (
"fmt"
"strconv"
"strings"
"time"
"github.com/coredns/caddy"
"github.com/coredns/coredns/core/dnsserver"
@@ -100,6 +101,33 @@ func traceParse(c *caddy.Controller) (*trace, error) {
if tr.datadogAnalyticsRate > 1 || tr.datadogAnalyticsRate < 0 {
return nil, fmt.Errorf("datadog analytics rate must be between 0 and 1, '%f' is not supported", tr.datadogAnalyticsRate)
}
case "zipkin_max_backlog_size":
args := c.RemainingArgs()
if len(args) != 1 {
return nil, c.ArgErr()
}
tr.zipkinMaxBacklogSize, err = strconv.Atoi(args[0])
if err != nil {
return nil, err
}
case "zipkin_max_batch_size":
args := c.RemainingArgs()
if len(args) != 1 {
return nil, c.ArgErr()
}
tr.zipkinMaxBatchSize, err = strconv.Atoi(args[0])
if err != nil {
return nil, err
}
case "zipkin_max_batch_interval":
args := c.RemainingArgs()
if len(args) != 1 {
return nil, c.ArgErr()
}
tr.zipkinMaxBatchInterval, err = time.ParseDuration(args[0])
if err != nil {
return nil, err
}
}
}
}