From 355364a9e9c9872a7f9a678c97a93edaff42872c Mon Sep 17 00:00:00 2001 From: Mohamed Abukar Date: Sat, 14 Nov 2020 09:24:07 +0200 Subject: [PATCH] Support for platform metrics Change-Id: Ia0fcc06a3256773a85dac766142910e7810d2b22 Signed-off-by: Mohamed Abukar --- cmd/vesmgr/config.go | 13 +++++++++++-- cmd/vesmgr/config_test.go | 6 +++--- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/cmd/vesmgr/config.go b/cmd/vesmgr/config.go index b79d19b..8ad122d 100755 --- a/cmd/vesmgr/config.go +++ b/cmd/vesmgr/config.go @@ -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 { diff --git a/cmd/vesmgr/config_test.go b/cmd/vesmgr/config_test.go index da135b4..2217c92 100755 --- a/cmd/vesmgr/config_test.go +++ b/cmd/vesmgr/config_test.go @@ -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) } -- 2.16.6