func checkEmission(t *testing.T, coll string, h handler.Handler, expected bool) { m := metric.Metric{ Name: "test", Value: 1, Dimensions: map[string]string{"collector": coll}, } writeToHandlers([]handler.Handler{h}, m) _, ok := h.CollectorEndpoints()[coll] if !expected && ok { assert.Fail(t, fmt.Sprintf("Was not expecting a collector channel for %s", coll)) } if expected && !ok { assert.Fail(t, fmt.Sprintf("Was expecting a collector channel for %s", coll)) } }
func checkEmission(t *testing.T, coll string, h handler.Handler, expected bool) { m := metric.Metric{ Name: "test", Value: 1, Dimensions: map[string]string{"collector": coll}, } writeToHandlers([]handler.Handler{h}, m) select { case res := <-h.Channel(): if !expected { assert.Fail(t, fmt.Sprintf("Did not expect metric %s", res.Name)) } default: if expected { assert.Fail(t, "Was expecting the metric to go through") } } }
func canSendMetric(handler handler.Handler, metric metric.Metric) bool { // If the handler's whitelist is set, then only metrics from collectors in it will be emitted. If the same // collector is also in the blacklist, it will be skipped. // If the handler's whitelist is not set and its blacklist is not empty, only metrics from collectors not in // the blacklist will be emitted. value, _ := metric.GetDimensionValue("collector") isWhiteListed, _ := handler.IsCollectorWhiteListed(value) isBlackListed, _ := handler.IsCollectorBlackListed(value) // If the handler's whitelist is not nil and not empty, only the whitelisted collectors should be considered if handler.CollectorWhiteList() != nil && len(handler.CollectorWhiteList()) > 0 { if isWhiteListed && !isBlackListed { return true } return false } // If the handler's whitelist is nil, all collector except the ones in the blacklist are enabled if !isBlackListed { return true } return false }
func sendMetrics(handler handler.Handler, metrics []metric.Metric) { for _, m := range metrics { handler.Channel() <- m } }