func NewBroker() *Broker { b := &Broker{ make(map[string]map[string]chan *Message), metrics.NewCounter(), metrics.NewCounter(), } return b }
//Initialize metrics.Counters objects, used to collect HTTP statuses func (agent *Agent) initStatusCounters() { httpStatuses := []int{ http.StatusContinue, http.StatusSwitchingProtocols, http.StatusOK, http.StatusCreated, http.StatusAccepted, http.StatusNonAuthoritativeInfo, http.StatusNoContent, http.StatusResetContent, http.StatusPartialContent, http.StatusMultipleChoices, http.StatusMovedPermanently, http.StatusFound, http.StatusSeeOther, http.StatusNotModified, http.StatusUseProxy, http.StatusTemporaryRedirect, http.StatusBadRequest, http.StatusUnauthorized, http.StatusPaymentRequired, http.StatusForbidden, http.StatusNotFound, http.StatusMethodNotAllowed, http.StatusNotAcceptable, http.StatusProxyAuthRequired, http.StatusRequestTimeout, http.StatusConflict, http.StatusGone, http.StatusLengthRequired, http.StatusPreconditionFailed, http.StatusRequestEntityTooLarge, http.StatusRequestURITooLong, http.StatusUnsupportedMediaType, http.StatusRequestedRangeNotSatisfiable, http.StatusExpectationFailed, http.StatusTeapot, http.StatusInternalServerError, http.StatusNotImplemented, http.StatusBadGateway, http.StatusServiceUnavailable, http.StatusGatewayTimeout, http.StatusHTTPVersionNotSupported, } agent.HTTPStatusCounters = make(map[int]metrics.Counter, len(httpStatuses)) for _, statusCode := range httpStatuses { agent.HTTPStatusCounters[statusCode] = metrics.NewCounter() } }