MCPcopy Create free account
hub / github.com/VictoriaMetrics/operator / newCollector

Function newCollector

internal/controller/operator/objects_stat.go:93–126  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

91}
92
93func newCollector() *objectCollector {
94 oc := &objectCollector{
95 objectsByController: map[string]sets.Set[string]{},
96 statusByObject: map[string]vmv1beta1.UpdateStatus{},
97 }
98 registeredObjects := []string{
99 "vmagent", "vmalert", "vmsingle", "vmcluster", "vmalertmanager", "vmauth", "vlogs", "vlsingle",
100 "vlcluster", "vmalertmanagerconfig", "vmrule", "vmuser", "vmservicescrape", "vmstaticscrape",
101 "vmnodescrape", "vmpodscrape", "vmprobe", "vmscrapeconfig", "vmanomaly", "vlagent",
102 "vtsingle", "vtcluster", "vmdistributed", "podmonitor", "prometheusrule", "servicemonitor",
103 "alertmanagerconfig", "probe", "scrapeconfig", "vmanomalyconfig",
104 }
105 for _, controller := range registeredObjects {
106 oc.objectsByController[controller] = sets.New[string]()
107 }
108 registry := metrics.Registry
109 instrumentMetric := func(controller string) prometheus.GaugeFunc {
110 g := prometheus.NewGaugeFunc(prometheus.GaugeOpts{
111 Name: "operator_controller_objects_count",
112 Help: "Number of exist CR objects by controller",
113 ConstLabels: map[string]string{"controller": controller},
114 },
115 func() float64 {
116 return oc.countByController(controller)
117 })
118 return g
119 }
120
121 for _, controller := range registeredObjects {
122 registry.MustRegister(instrumentMetric(controller))
123 }
124 registry.MustRegister(oc)
125 return oc
126}
127
128// registerObject registers given CR object name with namespace for controller
129func registerObjectByCollector(name, ns, controller string) {

Callers 3

RegisterObjectStatusFunction · 0.85

Calls 1

countByControllerMethod · 0.95

Tested by

no test coverage detected