diff --git a/pkg/metricsmd/config.go b/pkg/metricsmd/config.go index 6b1312f..cb1eac7 100644 --- a/pkg/metricsmd/config.go +++ b/pkg/metricsmd/config.go @@ -25,4 +25,5 @@ type Config struct { LabelOverrides []LabelOverrides InitMetrics func(target string, reg *prometheus.Registry, log *slog.Logger) error AutogeneratedComment bool + HeadingLevel int // must be between 0 and 4 } diff --git a/pkg/metricsmd/generate.go b/pkg/metricsmd/generate.go index 54f706e..5dfe919 100644 --- a/pkg/metricsmd/generate.go +++ b/pkg/metricsmd/generate.go @@ -24,7 +24,11 @@ func Generate(reg *prometheus.Registry, w io.Writer, config *Config) error { for _, metric := range metricsFamilies { // Include the metric name and help text. - io.WriteString(w, fmt.Sprintf("## `%s`\n\n", metric.GetName())) + h := "##" + for i := 0; i < config.HeadingLevel; i++ { + h += "#" + } + io.WriteString(w, fmt.Sprintf("%s `%s`\n\n", h, metric.GetName())) io.WriteString(w, fmt.Sprintf("%s\n\n", metric.GetHelp())) // The rest is generating a list of label names and values diff --git a/pkg/metricsmd/print.go b/pkg/metricsmd/print.go index 278cb08..cb0e6ee 100644 --- a/pkg/metricsmd/print.go +++ b/pkg/metricsmd/print.go @@ -50,7 +50,11 @@ func NewCmd(vp *viper.Viper, log *slog.Logger, config *Config) *cobra.Command { b.WriteString("\n\n") } // Document title - b.WriteString(fmt.Sprintf("# %s Metrics\n\n", config.Targets[target])) + h := "#" + for i := 0; i < config.HeadingLevel; i++ { + h += "#" + } + b.WriteString(fmt.Sprintf("%s %s Metrics\n\n", h, config.Targets[target])) // Generate metrics reference err = Generate(reg, &b, config) if err != nil {