master
go 53 lines 1.06 KB
Raw
1 // SPDX-License-Identifier: GPL-3.0-or-later
2
3 package vsphere
4
5 import (
6 "sort"
7 "strings"
8
9 "github.com/netdata/netdata/go/plugins/pkg/metrix"
10 rs "github.com/netdata/netdata/go/plugins/plugin/go.d/collector/vsphere/resources"
11 )
12
13 func resourceEnrichmentLabels(labels map[string]string) []metrix.Label {
14 if len(labels) == 0 {
15 return nil
16 }
17
18 keys := make([]string, 0, len(labels))
19 for key, value := range labels {
20 if key != "" && value != "" {
21 keys = append(keys, key)
22 }
23 }
24 if len(keys) == 0 {
25 return nil
26 }
27
28 sort.Strings(keys)
29
30 out := make([]metrix.Label, 0, len(keys))
31 for _, key := range keys {
32 out = append(out, metrix.Label{Key: key, Value: labels[key]})
33 }
34 return out
35 }
36
37 func getVMClusterName(vm *rs.VM) string {
38 if isStandaloneHostClusterID(vm.Hier.Cluster.ID) {
39 return ""
40 }
41 return vm.Hier.Cluster.Name
42 }
43
44 func getHostClusterName(host *rs.Host) string {
45 if isStandaloneHostClusterID(host.Hier.Cluster.ID) {
46 return ""
47 }
48 return host.Hier.Cluster.Name
49 }
50
51 func isStandaloneHostClusterID(id string) bool {
52 return strings.HasPrefix(id, "domain-s")
53 }