containerized-data-importer/tools/metricsdocs/metricsdocs.go
Aviv Litman 42ec627e35
Refactor recording-rules and alerts code (#3068)
* Refactor recording-rules and alerts code

Signed-off-by: avlitman <alitman@redhat.com>

* Remove promv1 from schema

Signed-off-by: avlitman <alitman@redhat.com>

---------

Signed-off-by: avlitman <alitman@redhat.com>
2024-02-18 16:05:42 +01:00

57 lines
1.4 KiB
Go

package main
import (
"fmt"
"github.com/machadovilaca/operator-observability/pkg/docs"
cdiMetrics "kubevirt.io/containerized-data-importer/pkg/monitoring/metrics/cdi-controller"
operatorMetrics "kubevirt.io/containerized-data-importer/pkg/monitoring/metrics/operator-controller"
"kubevirt.io/containerized-data-importer/pkg/monitoring/rules"
)
const tpl = `# Containerized Data Importer metrics
{{- range . }}
{{ $deprecatedVersion := "" -}}
{{- with index .ExtraFields "DeprecatedVersion" -}}
{{- $deprecatedVersion = printf " in %s" . -}}
{{- end -}}
{{- $stabilityLevel := "" -}}
{{- if and (.ExtraFields.StabilityLevel) (ne .ExtraFields.StabilityLevel "STABLE") -}}
{{- $stabilityLevel = printf "[%s%s] " .ExtraFields.StabilityLevel $deprecatedVersion -}}
{{- end -}}
### {{ .Name }}
{{ print $stabilityLevel }}{{ .Help }}. Type: {{ .Type -}}.
{{- end }}
## Developing new metrics
All metrics documented here are auto-generated and reflect exactly what is being
exposed. After developing new metrics or changing old ones please regenerate
this document.
`
func main() {
err := operatorMetrics.SetupMetrics()
if err != nil {
panic(err)
}
err = cdiMetrics.SetupMetrics()
if err != nil {
panic(err)
}
if err := rules.SetupRules("test"); err != nil {
panic(err)
}
docsString := docs.BuildMetricsDocsWithCustomTemplate(operatorMetrics.ListMetrics(), rules.ListRecordingRules(), tpl)
fmt.Print(docsString)
}