From 2eb2f63096ee58cbeb667d575384f2fb8ab73965 Mon Sep 17 00:00:00 2001
From: simfu <simfu@free.fr>
Date: Fri, 21 May 2021 10:58:37 +0200
Subject: [PATCH] [lib] Optional metrics for kwollect wiki gen

---
 lib/refrepo/gen/wiki/generators/kwollect_metrics.rb | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/lib/refrepo/gen/wiki/generators/kwollect_metrics.rb b/lib/refrepo/gen/wiki/generators/kwollect_metrics.rb
index 36feb2f206b..d0061e4da72 100644
--- a/lib/refrepo/gen/wiki/generators/kwollect_metrics.rb
+++ b/lib/refrepo/gen/wiki/generators/kwollect_metrics.rb
@@ -8,6 +8,7 @@ class KwollectMetricsGenerator < WikiGenerator
 
   def generate_content
     @generated_content = "__NOEDITSECTION__\n"
+    @generated_content = "\nMetrics marked with * must be activated on demand, and metrics marked with ** are activated on non-deploy jobs by default.\n\n"
     @generated_content += "{|class=\"wikitable\"\n"
     @generated_content += "! style=\"width: 15%\" | Metric Name\n"
     @generated_content += "! style=\"width: 30%\" | Description\n"
@@ -24,6 +25,7 @@ class KwollectMetricsGenerator < WikiGenerator
 
     metric_names.sort.each do |metric_name|
 
+      optional = all_metrics.select{|m| m["name"] == metric_name}.first["period"] == 0 ? "*" : ""
       descriptions = all_metrics.select{|m| m["name"] == metric_name}.map{|metric| metric["description"]}.uniq
       if descriptions.length != 1
         description = longest_common_prefix(descriptions) + "XXX" + longest_common_suffix(descriptions)
@@ -33,8 +35,9 @@ class KwollectMetricsGenerator < WikiGenerator
       if metric_name =~ /prom_.*default_metrics/
         prom_metric_ids = all_metrics.select{|m| m["name"] == metric_name}.map{|metric| metric["source"]["id"]}.first
         description += ":<br/>''#{prom_metric_ids.join(", ")}''"
+        optional = "**"
       end
-      @generated_content += "|-\n|#{metric_name}\n|#{description}\n|"
+      @generated_content += "|-\n|#{metric_name}#{optional}\n|#{description}\n|"
 
       sites.each_value.sort_by{|s| s['uid']}.each do |site|
         devices = site["clusters"].each_value.select{|c| c.fetch('metrics', []).map{|m| m["name"]}.any?{|m| m == metric_name}}.map{|c| c["uid"]}.sort
-- 
GitLab