// ]
// }
// }
-func parseMetricsFromXAppDescriptor(descriptor []byte, appMetrics AppMetrics) AppMetrics {
+func parseMetricsFromDescriptor(descriptor []byte, appMetrics AppMetrics) AppMetrics {
var desc []map[string]interface{}
json.Unmarshal(descriptor, &desc)
}
}
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 {
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)
{{"metadata": "something", "descriptor": "somethingelse"}}]`
metricsBytes := []byte(metricsJSON)
appMetrics := make(AppMetrics)
- appMetrics = parseMetricsFromXAppDescriptor(metricsBytes, appMetrics)
+ appMetrics = parseMetricsFromDescriptor(metricsBytes, appMetrics)
assert.Empty(t, appMetrics)
}
{{"metadata": "something", "descriptor": "somethingelse", "config":{}}}]`
metricsBytes := []byte(metricsJSON)
appMetrics := make(AppMetrics)
- appMetrics = parseMetricsFromXAppDescriptor(metricsBytes, appMetrics)
+ appMetrics = parseMetricsFromDescriptor(metricsBytes, appMetrics)
assert.Empty(t, appMetrics)
}