func()

in pkg/allow/allow_labels.go [34:62]


func (a Labels) Allowed(metric string, labels, values []string) ([]string, []string) {
	allowedLabels, ok := a[metric]
	if !ok {
		var defaultsPresent bool
		for metricReg, lbls := range defaultMetricLabels {
			if metricReg.MatchString(metric) {
				allowedLabels = append(allowedLabels, lbls...)
				defaultsPresent = true
			}
		}

		if !defaultsPresent {
			return labels, values
		}
	}

	var finalLabels, finalValues []string
	labelSet := labelSet(allowedLabels)
	for _, allowedLabel := range labelSet {
		for i, label := range labels {
			if label == allowedLabel {
				finalLabels = append(finalLabels, label)
				finalValues = append(finalValues, values[i])
			}
		}
	}

	return finalLabels, finalValues
}