Skip to content

Commit

Permalink
Refactor metrics
Browse files Browse the repository at this point in the history
Signed-off-by: João Vilaça <jvilaca@redhat.com>
  • Loading branch information
machadovilaca committed Oct 25, 2023
1 parent f71ba8d commit 730f179
Show file tree
Hide file tree
Showing 7 changed files with 34 additions and 227 deletions.
12 changes: 12 additions & 0 deletions docs/metrics.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,23 @@
# Cluster Network Addons Operator Metrics

### kubevirt_cnao_cr_kubemacpool_aggregated
Total count of KubeMacPool manager pods deployed by CNAO CR. Type: Gauge.

### kubevirt_cnao_cr_kubemacpool_deployed
KubeMacpool is deployed by CNAO CR. Type: Gauge.

### kubevirt_cnao_cr_ready
CNAO CR Ready. Type: Gauge.

### kubevirt_cnao_kubemacpool_duplicate_macs
Total count of duplicate KubeMacPool MAC addresses. Type: Gauge.

### kubevirt_cnao_kubemacpool_manager_up
Total count of running KubeMacPool manager pods. Type: Gauge.

### kubevirt_cnao_operator_up
Total count of running CNAO operators. Type: Gauge.

## Developing new metrics

All metrics documented here are auto-generated and reflect exactly what is being
Expand Down
29 changes: 14 additions & 15 deletions tools/metrics-parser/metrics_parser.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,12 @@ import (
"strings"
"text/template"

"github.com/machadovilaca/operator-observability/pkg/operatormetrics"
"github.com/prometheus/client_golang/prometheus"
"gopkg.in/yaml.v3"

"github.com/kubevirt/cluster-network-addons-operator/pkg/monitoring"

"sigs.k8s.io/controller-tools/pkg/markers"
)

func MetricsOptsToMetricList(Metrics map[monitoring.MetricsKey]monitoring.MetricsOpts, result MetricList) MetricList {
for _, opts := range Metrics {
result = append(result, MetricDescriptionToMetric(opts))
}
return result
}

type PrometheusCR struct {
Spec struct {
Groups []struct {
Expand Down Expand Up @@ -111,19 +103,26 @@ func ParseTemplateFile() []byte {
}

type Metric struct {
operatormetrics.Metric

Name string
Description string
MType string
}

func MetricDescriptionToMetric(rrd monitoring.MetricsOpts) Metric {
return Metric{
Name: rrd.Name,
Description: rrd.Help,
MType: rrd.Type,
func (m Metric) getCollector() prometheus.Collector { return nil }

func (m Metric) GetOpts() operatormetrics.MetricOpts {
return operatormetrics.MetricOpts{
Name: m.Name,
Help: m.Description,
}
}

func (m Metric) GetType() operatormetrics.MetricType {
return operatormetrics.MetricType(m.MType)
}

func (m Metric) WriteOut() {
fmt.Println("###", m.Name)

Expand Down
9 changes: 8 additions & 1 deletion tools/metricsdocs/metricsdocs.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ import (
"github.com/machadovilaca/operator-observability/pkg/docs"

"github.com/kubevirt/cluster-network-addons-operator/pkg/monitoring/metrics"
metricsparser "github.com/kubevirt/cluster-network-addons-operator/tools/metrics-parser"
)

const tpl = `# Cluster Network Addons Operator Metrics
Expand Down Expand Up @@ -40,6 +41,12 @@ func main() {
panic(err)
}

docsString := docs.BuildMetricsDocsWithCustomTemplate(metrics.ListMetrics(), nil, tpl)
metricsList := metrics.ListMetrics()

for _, metric := range metricsparser.ReadFromPrometheusCR() {
metricsList = append(metricsList, metric)
}

docsString := docs.BuildMetricsDocsWithCustomTemplate(metricsList, nil, tpl)
fmt.Print(docsString)
}
13 changes: 0 additions & 13 deletions tools/metricsdocs/metricsdocs_suite_test.go

This file was deleted.

105 changes: 0 additions & 105 deletions tools/metricsdocs/metricsdocs_test.go

This file was deleted.

56 changes: 0 additions & 56 deletions tools/prom-metrics-collector/metrics_collector.go

This file was deleted.

37 changes: 0 additions & 37 deletions tools/prom-metrics-collector/metrics_json_generator.go

This file was deleted.

0 comments on commit 730f179

Please sign in to comment.