MCPcopy
hub / github.com/prometheus/node_exporter / parseIpvsLabels

Method parseIpvsLabels

collector/ipvs_linux.go:203–230  ·  view source on GitHub ↗
(labelString string)

Source from the content-addressed store, hash-verified

201}
202
203func (c *ipvsCollector) parseIpvsLabels(labelString string) ([]string, error) {
204 labels := strings.Split(labelString, ",")
205 labelSet := make(map[string]bool, len(labels))
206 results := make([]string, 0, len(labels))
207 for _, label := range labels {
208 if label != "" {
209 labelSet[label] = true
210 }
211 }
212
213 for _, label := range fullIpvsBackendLabels {
214 if labelSet[label] {
215 results = append(results, label)
216 }
217 delete(labelSet, label)
218 }
219
220 if len(labelSet) > 0 {
221 keys := make([]string, 0, len(labelSet))
222 for label := range labelSet {
223 keys = append(keys, label)
224 }
225 sort.Strings(keys)
226 return nil, fmt.Errorf("unknown IPVS backend labels: %q", strings.Join(keys, ", "))
227 }
228
229 return results, nil
230}

Callers 1

newIPVSCollectorFunction · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected