Support for platform metrics 91/5091/2
authorMohamed Abukar <abukar.mohamed@nokia.com>
Sat, 14 Nov 2020 07:24:07 +0000 (09:24 +0200)
committerMohamed Abukar <abukar.mohamed@nokia.com>
Sat, 14 Nov 2020 07:43:06 +0000 (09:43 +0200)
Change-Id: Ia0fcc06a3256773a85dac766142910e7810d2b22
Signed-off-by: Mohamed Abukar <abukar.mohamed@nokia.com>
cmd/vesmgr/config.go
cmd/vesmgr/config_test.go

index b79d19b..8ad122d 100755 (executable)
@@ -125,7 +125,7 @@ type AppMetrics map[string]AppMetricsStruct
 //     ]
 //    }
 // }
-func parseMetricsFromXAppDescriptor(descriptor []byte, appMetrics AppMetrics) AppMetrics {
+func parseMetricsFromDescriptor(descriptor []byte, appMetrics AppMetrics) AppMetrics {
        var desc []map[string]interface{}
        json.Unmarshal(descriptor, &desc)
 
@@ -200,7 +200,16 @@ func getRules(vespaconf *VESAgentConfiguration, xAppConfig []byte) bool {
                }
        }
        appMetrics := make(AppMetrics)
-       metrics := parseMetricsFromXAppDescriptor(xAppConfig, appMetrics)
+       metrics := parseMetricsFromDescriptor(xAppConfig, appMetrics)
+
+       if pltFile := os.Getenv("VESMGR_PLT_CFG_FILE"); pltFile != "" {
+               pltConfig, err := ioutil.ReadFile(pltFile)
+               if err != nil {
+                       logger.Error("Unable to read platform config file: %v", err)
+               } else {
+                       metrics = parseMetricsFromDescriptor(pltConfig, metrics)
+               }
+       }
 
        vespaconf.Measurement.Prometheus.Rules.Metrics = make([]MetricRule, 0, len(metrics))
        for key, value := range metrics {
index da135b4..2217c92 100755 (executable)
@@ -239,7 +239,7 @@ func TestParseXAppDescriptor(t *testing.T) {
        bytes, err := ioutil.ReadFile("../../test/xApp_config_test_output.json")
        assert.Nil(t, err)
 
-       appMetrics = parseMetricsFromXAppDescriptor(bytes, appMetrics)
+       appMetrics = parseMetricsFromDescriptor(bytes, appMetrics)
        assert.Len(t, appMetrics, 4)
        assert.Equal(t, "App1ExampleCounterOneObject", appMetrics["App1ExampleCounterOne"].ObjectName)
        assert.Equal(t, "App1ExampleCounterOneObjectInstance", appMetrics["App1ExampleCounterOne"].ObjectInstance)
@@ -256,7 +256,7 @@ func TestParseXAppDescriptorWithNoConfig(t *testing.T) {
                         {{"metadata": "something", "descriptor": "somethingelse"}}]`
        metricsBytes := []byte(metricsJSON)
        appMetrics := make(AppMetrics)
-       appMetrics = parseMetricsFromXAppDescriptor(metricsBytes, appMetrics)
+       appMetrics = parseMetricsFromDescriptor(metricsBytes, appMetrics)
        assert.Empty(t, appMetrics)
 }
 
@@ -265,6 +265,6 @@ func TestParseXAppDescriptorWithNoMetrics(t *testing.T) {
                         {{"metadata": "something", "descriptor": "somethingelse", "config":{}}}]`
        metricsBytes := []byte(metricsJSON)
        appMetrics := make(AppMetrics)
-       appMetrics = parseMetricsFromXAppDescriptor(metricsBytes, appMetrics)
+       appMetrics = parseMetricsFromDescriptor(metricsBytes, appMetrics)
        assert.Empty(t, appMetrics)
 }