api/internal/endpoint/handler/dns/mock/register.go
Peter Kurfer d70ba748f5 Introduce Lifecycle for every endpoint and manage listeners in the renamed Orchestrator
- merge packages to get a more concise layout because plugins are no more and therefore there's not a lot to be exported
- fix test logger
- rework config parsing to be easier and more transparent
- remove unnecessary APIs because dynamic endpoint handling is rather a won't implement
2021-02-10 20:26:45 +00:00

54 lines
1 KiB
Go

package mock
import (
"github.com/prometheus/client_golang/prometheus"
"gitlab.com/inetmock/inetmock/internal/endpoint"
"gitlab.com/inetmock/inetmock/pkg/metrics"
)
const (
name = "dns_mock"
)
var (
handlerNameLblName = "handler_name"
totalHandledRequestsCounter *prometheus.CounterVec
unhandledRequestsCounter *prometheus.CounterVec
requestDurationHistogram *prometheus.HistogramVec
)
func AddDNSMock(registry endpoint.HandlerRegistry) (err error) {
if totalHandledRequestsCounter, err = metrics.Counter(
name,
"handled_requests_total",
"",
handlerNameLblName,
); err != nil {
return
}
if unhandledRequestsCounter, err = metrics.Counter(
name,
"unhandled_requests_total",
"",
handlerNameLblName,
); err != nil {
return
}
if requestDurationHistogram, err = metrics.Histogram(
name,
"request_duration",
"",
nil,
handlerNameLblName,
); err != nil {
return
}
registry.RegisterHandler(name, func() endpoint.ProtocolHandler {
return &dnsHandler{}
})
return
}