func NewServer()

in pkg/monitoring/server.go [68:90]


func NewServer(metricServers []config.MetricServer, port int, failureThreshold int) *Server {
	if failureThreshold == 0 {
		failureThreshold = defaultFailureThreshold
	}
	clientSuccesses := NewCounters()
	for _, clientCfg := range metricServers {
		if clientCfg.MetricTypes.HasType(config.CustomMetricType) {
			clientSuccesses.CustomMetrics[clientCfg.Name] = 0
		}
		if clientCfg.MetricTypes.HasType(config.ExternalMetricType) {
			clientSuccesses.ExternalMetrics[clientCfg.Name] = 0
		}
	}
	return &Server{
		logger:           log.ForPackage("monitoring"),
		lock:             sync.RWMutex{},
		metricServers:    metricServers,
		monitoringPort:   port,
		clientFailures:   NewCounters(),
		clientSuccesses:  clientSuccesses,
		failureThreshold: failureThreshold,
	}
}