aboutsummaryrefslogtreecommitdiffstats
path: root/dcae-analytics-tca
diff options
context:
space:
mode:
Diffstat (limited to 'dcae-analytics-tca')
-rw-r--r--dcae-analytics-tca/pom.xml127
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/TCAAnalyticsApplication.java105
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flow/TCAVESCollectorFlow.java69
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESAlertsSinkFlowlet.java69
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESMessageRouterFlowlet.java62
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESThresholdViolationCalculatorFlowlet.java137
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCACalculatorMessageType.java43
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAMessageStatusEntity.java306
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAMessageStatusPersister.java243
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAVESAlertEntity.java77
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAVESAlertsPersister.java98
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/AbstractTCAECEFPolicyProcessor.java61
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFJsonProcessor.java98
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyDomainFilter.java83
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyFunctionalRoleFilter.java90
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyThresholdsProcessor.java135
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFProcessorContext.java103
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAAppConfig.java96
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAAppPreferences.java262
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAPolicyPreferences.java36
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToPublisherConfigMapper.java82
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToSubscriberConfigMapper.java99
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/TCAUtils.java825
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAAppConfigValidator.java60
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAPolicyPreferencesValidator.java94
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAPreferencesValidator.java63
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRPublisherJob.java189
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRSubscriberJob.java175
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMockSubscriberWorker.java139
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPPublisherWorker.java230
-rw-r--r--dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPSubscriberWorker.java226
-rw-r--r--dcae-analytics-tca/src/main/resources/quartz-publisher.properties23
-rw-r--r--dcae-analytics-tca/src/main/resources/quartz-subscriber.properties23
-rw-r--r--dcae-analytics-tca/src/main/resources/ves_mock_messages.json113
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/BaseAnalyticsTCAIT.java141
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/BaseAnalyticsTCAUnitTest.java220
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/it/TCAnalyticsAppConfigIT.java53
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFJsonProcessorTest.java117
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyThresholdsProcessorTest.java77
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFProcessorContextTest.java38
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppConfig.java38
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppConfigHolder.java40
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppPreferences.java136
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToPublisherConfigMapperTest.java58
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToSubscriberConfigMapperTest.java59
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/TCAUtilsTest.java357
-rw-r--r--dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRSubscriberJobTest.java80
-rw-r--r--dcae-analytics-tca/src/test/resources/data/json/cef/cef_message.json37
-rw-r--r--dcae-analytics-tca/src/test/resources/data/json/cef/cef_message_with_threshold_violation.json37
-rw-r--r--dcae-analytics-tca/src/test/resources/data/json/cef/cef_messages.json12952
-rw-r--r--dcae-analytics-tca/src/test/resources/data/json/policy/tca_policy.json53
-rw-r--r--dcae-analytics-tca/src/test/resources/data/properties/tca_controller_policy.properties59
-rw-r--r--dcae-analytics-tca/src/test/resources/logback-test.xml54
53 files changed, 19247 insertions, 0 deletions
diff --git a/dcae-analytics-tca/pom.xml b/dcae-analytics-tca/pom.xml
new file mode 100644
index 0000000..27475a1
--- /dev/null
+++ b/dcae-analytics-tca/pom.xml
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=========================================================
+ ~ dcae-analytics
+ ~ ================================================================================
+ ~ Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ================================================================================
+ ~ ECOMP and OpenECOMP are trademarks and service marks of AT&T Intellectual Property.
+ ~ ============LICENSE_END=========================================================
+ -->
+
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.openecomp.dcae.analytics</groupId>
+ <artifactId>dcae-analytics</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <relativePath>../pom.xml</relativePath>
+ </parent>
+
+ <artifactId>dcae-analytics-tca</artifactId>
+ <packaging>jar</packaging>
+
+ <!-- THIS MODULE CONTAINS CODE FOR TCA (THRESHOLD CROSSING ALERT) -->
+ <name>DCAE Analytics TCA</name>
+ <description>DCAE Analytics TCA (THRESHOLD CROSSING ALERT)</description>
+
+ <properties>
+ <main.basedir>${project.parent.basedir}</main.basedir>
+ <app.main.class>org.openecomp.dcae.analytics.tca.TCAAnalyticsApplication</app.main.class>
+ </properties>
+
+ <dependencies>
+
+ <!-- DCAE DEPENDENCIES -->
+ <dependency>
+ <groupId>org.openecomp.dcae.analytics</groupId>
+ <artifactId>dcae-analytics-common</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.openecomp.dcae.analytics</groupId>
+ <artifactId>dcae-analytics-dmaap</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+
+ <!-- CASK -->
+ <dependency>
+ <groupId>co.cask.http</groupId>
+ <artifactId>netty-http</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>co.cask.common</groupId>
+ <artifactId>common-http</artifactId>
+ </dependency>
+
+ <!-- HADOOP -->
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-mapreduce-client-core</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.hadoop</groupId>
+ <artifactId>hadoop-common</artifactId>
+ </dependency>
+
+ <!-- SCHEDULER -->
+ <dependency>
+ <groupId>org.quartz-scheduler</groupId>
+ <artifactId>quartz</artifactId>
+ </dependency>
+
+ <!-- UTILITIES -->
+ <dependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>jsr305</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>com.google.code.findbugs</groupId>
+ <artifactId>annotations</artifactId>
+ </dependency>
+
+ <!-- TEST DEPENDENCIES -->
+ <dependency>
+ <groupId>org.openecomp.dcae.analytics</groupId>
+ <artifactId>dcae-analytics-test</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ <scope>test</scope>
+ </dependency>
+
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.felix</groupId>
+ <artifactId>maven-bundle-plugin</artifactId>
+ <configuration>
+ <archive>
+ <manifest>
+ <mainClass>${app.main.class}</mainClass>
+ </manifest>
+ </archive>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+
+
+</project>
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/TCAAnalyticsApplication.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/TCAAnalyticsApplication.java
new file mode 100644
index 0000000..655ddca
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/TCAAnalyticsApplication.java
@@ -0,0 +1,105 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca;
+
+import co.cask.cdap.api.app.AbstractApplication;
+import co.cask.cdap.api.data.stream.Stream;
+import co.cask.cdap.api.dataset.DatasetProperties;
+import co.cask.cdap.api.dataset.lib.ObjectMappedTable;
+import org.openecomp.dcae.analytics.common.utils.ValidationUtils;
+import org.openecomp.dcae.analytics.tca.flow.TCAVESCollectorFlow;
+import org.openecomp.dcae.analytics.tca.persistance.TCAMessageStatusPersister;
+import org.openecomp.dcae.analytics.tca.persistance.TCAVESAlertsPersister;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppConfig;
+import org.openecomp.dcae.analytics.tca.validator.TCAAppConfigValidator;
+import org.openecomp.dcae.analytics.tca.worker.TCADMaaPMockSubscriberWorker;
+import org.openecomp.dcae.analytics.tca.worker.TCADMaaPPublisherWorker;
+import org.openecomp.dcae.analytics.tca.worker.TCADMaaPSubscriberWorker;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_FIXED_SUBSCRIBER_OUTPUT_DESCRIPTION_STREAM;
+
+/**
+ * @author Rajiv Singla. Creation Date: 10/21/2016.
+ */
+public class TCAAnalyticsApplication extends AbstractApplication<TCAAppConfig> {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCAAnalyticsApplication.class);
+
+ @Override
+ public void configure() {
+
+
+ // ========= Application configuration Setup ============== //
+ final TCAAppConfig tcaAppConfig = getConfig();
+
+ LOG.info("Configuring TCA Application with startup application configuration: {}", tcaAppConfig);
+
+ // Validate application configuration
+ ValidationUtils.validateSettings(tcaAppConfig, new TCAAppConfigValidator());
+
+ // App Setup
+ setName(tcaAppConfig.getAppName());
+ setDescription(tcaAppConfig.getAppDescription());
+
+ // ========== Streams Setup ============== //
+ // Create DMaaP MR Subscriber CDAP output stream
+ final String tcaSubscriberOutputStreamName = tcaAppConfig.getTcaSubscriberOutputStreamName();
+ LOG.info("Creating TCA VES Output Stream: {}", tcaSubscriberOutputStreamName);
+ final Stream subscriberOutputStream =
+ new Stream(tcaSubscriberOutputStreamName, TCA_FIXED_SUBSCRIBER_OUTPUT_DESCRIPTION_STREAM);
+ addStream(subscriberOutputStream);
+
+
+ // ============ Datasets Setup ======== //
+ // Create TCA Message Status Table
+ final String tcaVESMessageStatusTableName = tcaAppConfig.getTcaVESMessageStatusTableName();
+ final Integer messageStatusTableTTLSeconds = tcaAppConfig.getTcaVESMessageStatusTableTTLSeconds();
+ LOG.info("Creating TCA Message Status Table: {} with TTL: {}",
+ tcaVESMessageStatusTableName, messageStatusTableTTLSeconds);
+ final DatasetProperties messageStatusTableProperties =
+ TCAMessageStatusPersister.getDatasetProperties(messageStatusTableTTLSeconds);
+ createDataset(tcaVESMessageStatusTableName, ObjectMappedTable.class, messageStatusTableProperties);
+
+ // Create TCA VES Alerts Table
+ final String tcaVESAlertsTableName = tcaAppConfig.getTcaVESAlertsTableName();
+ final Integer alertsTableTTLSeconds = tcaAppConfig.getTcaVESAlertsTableTTLSeconds();
+ LOG.info("Creating TCA Alerts Table: {} with TTL: {}",
+ tcaVESAlertsTableName, alertsTableTTLSeconds);
+ final DatasetProperties alertTableProperties =
+ TCAVESAlertsPersister.getDatasetProperties(alertsTableTTLSeconds);
+ createDataset(tcaVESAlertsTableName, ObjectMappedTable.class, alertTableProperties);
+
+ // =========== Flow Setup ============= //
+ addFlow(new TCAVESCollectorFlow(tcaAppConfig));
+
+ // ========== Workers Setup =========== //
+ LOG.info("Creating TCA DMaaP Subscriber Worker");
+ addWorker(new TCADMaaPSubscriberWorker(tcaAppConfig.getTcaSubscriberOutputStreamName()));
+ LOG.info("Creating TCA DMaaP Publisher Worker");
+ addWorker(new TCADMaaPPublisherWorker(tcaAppConfig.getTcaVESAlertsTableName()));
+ // TODO: Remove this before going to production
+ addWorker(new TCADMaaPMockSubscriberWorker(tcaAppConfig.getTcaSubscriberOutputStreamName()));
+ }
+
+
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flow/TCAVESCollectorFlow.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flow/TCAVESCollectorFlow.java
new file mode 100644
index 0000000..33db3c1
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flow/TCAVESCollectorFlow.java
@@ -0,0 +1,69 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.flow;
+
+import co.cask.cdap.api.flow.AbstractFlow;
+import org.openecomp.dcae.analytics.common.CDAPComponentsConstants;
+import org.openecomp.dcae.analytics.tca.flowlet.TCAVESAlertsSinkFlowlet;
+import org.openecomp.dcae.analytics.tca.flowlet.TCAVESMessageRouterFlowlet;
+import org.openecomp.dcae.analytics.tca.flowlet.TCAVESThresholdViolationCalculatorFlowlet;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppConfig;
+
+/**
+ * TCA Flow for VES (Virtual Event Streaming) Collector Flow
+ *
+ * @author Rajiv Singla. Creation Date: 11/3/2016.
+ */
+public class TCAVESCollectorFlow extends AbstractFlow {
+
+ private final TCAAppConfig tcaAppConfig;
+
+ public TCAVESCollectorFlow(TCAAppConfig tcaAppConfig) {
+ this.tcaAppConfig = tcaAppConfig;
+ }
+
+ @Override
+ protected void configure() {
+
+ setName(CDAPComponentsConstants.TCA_FIXED_VES_COLLECTOR_NAME_FLOW);
+ setDescription(CDAPComponentsConstants.TCA_FIXED_VES_COLLECTOR_DESCRIPTION_FLOW);
+
+ final TCAVESMessageRouterFlowlet messageRouterFlowlet = new TCAVESMessageRouterFlowlet();
+ addFlowlet(messageRouterFlowlet);
+
+ final TCAVESThresholdViolationCalculatorFlowlet thresholdViolationCalculatorFlowlet =
+ new TCAVESThresholdViolationCalculatorFlowlet(tcaAppConfig.getTcaVESMessageStatusTableName());
+ addFlowlet(thresholdViolationCalculatorFlowlet, tcaAppConfig.getThresholdCalculatorFlowletInstances());
+
+ final TCAVESAlertsSinkFlowlet alertsSinkFlowlet =
+ new TCAVESAlertsSinkFlowlet(tcaAppConfig.getTcaVESAlertsTableName());
+ addFlowlet(alertsSinkFlowlet);
+
+
+ // connect DMaaP MR VES Subscriber output stream to VES Message Router Flowlet
+ connectStream(tcaAppConfig.getTcaSubscriberOutputStreamName(), messageRouterFlowlet);
+ // connect message router to VES threshold calculator
+ connect(messageRouterFlowlet, thresholdViolationCalculatorFlowlet);
+ // connect VES threshold calculator flowlet to Alerts Sink Flowlet
+ connect(thresholdViolationCalculatorFlowlet, alertsSinkFlowlet);
+
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESAlertsSinkFlowlet.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESAlertsSinkFlowlet.java
new file mode 100644
index 0000000..597fcd0
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESAlertsSinkFlowlet.java
@@ -0,0 +1,69 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.flowlet;
+
+import co.cask.cdap.api.annotation.ProcessInput;
+import co.cask.cdap.api.annotation.Property;
+import co.cask.cdap.api.dataset.lib.ObjectMappedTable;
+import co.cask.cdap.api.flow.flowlet.AbstractFlowlet;
+import co.cask.cdap.api.flow.flowlet.FlowletContext;
+import org.openecomp.dcae.analytics.tca.persistance.TCAVESAlertEntity;
+import org.openecomp.dcae.analytics.tca.persistance.TCAVESAlertsPersister;
+
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_FIXED_VES_ALERTS_SINK_DESCRIPTION_FLOWLET;
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_FIXED_VES_ALERTS_SINK_NAME_FLOWLET;
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_FIXED_VES_TCA_CALCULATOR_NAME_OUTPUT;
+
+/**
+ * Saves TCA VES Alert Messages in a Time series Table
+ *
+ * @author Rajiv Singla. Creation Date: 11/15/2016.
+ */
+public class TCAVESAlertsSinkFlowlet extends AbstractFlowlet {
+
+ @Property
+ private final String tcaVESAlertsTableName;
+
+ private ObjectMappedTable<TCAVESAlertEntity> tcaVESAlertsTable;
+
+ public TCAVESAlertsSinkFlowlet(String tcaVESAlertsTableName) {
+ this.tcaVESAlertsTableName = tcaVESAlertsTableName;
+ }
+
+ @Override
+ public void configure() {
+ setName(TCA_FIXED_VES_ALERTS_SINK_NAME_FLOWLET);
+ setDescription(TCA_FIXED_VES_ALERTS_SINK_DESCRIPTION_FLOWLET);
+ }
+
+ @Override
+ public void initialize(FlowletContext flowletContext) throws Exception {
+ super.initialize(flowletContext);
+ tcaVESAlertsTable = getContext().getDataset(tcaVESAlertsTableName);
+ }
+
+ @ProcessInput(TCA_FIXED_VES_TCA_CALCULATOR_NAME_OUTPUT)
+ public void saveAlerts(String alertMessage) {
+ // Saves alert message in alerts table
+ TCAVESAlertsPersister.persist(alertMessage, tcaVESAlertsTable);
+ }
+
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESMessageRouterFlowlet.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESMessageRouterFlowlet.java
new file mode 100644
index 0000000..7ecd917
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESMessageRouterFlowlet.java
@@ -0,0 +1,62 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.flowlet;
+
+import co.cask.cdap.api.annotation.Output;
+import co.cask.cdap.api.annotation.ProcessInput;
+import co.cask.cdap.api.flow.flowlet.AbstractFlowlet;
+import co.cask.cdap.api.flow.flowlet.OutputEmitter;
+import co.cask.cdap.api.flow.flowlet.StreamEvent;
+import com.google.common.base.Charsets;
+
+import static org.openecomp.dcae.analytics.common.AnalyticsConstants.TCA_VES_MESSAGE_ROUTER_PARTITION_KEY;
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_FIXED_VES_MESSAGE_ROUTER_DESCRIPTION_FLOWLET;
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_FIXED_VES_MESSAGE_ROUTER_NAME_FLOWLET;
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_FIXED_VES_MESSAGE_ROUTER_OUTPUT;
+
+
+/**
+ * TCA Message Router Flowlet emits VES Message to {@link TCAVESThresholdViolationCalculatorFlowlet} instances
+ *
+ * @author Rajiv Singla. Creation Date: 11/14/2016.
+ */
+public class TCAVESMessageRouterFlowlet extends AbstractFlowlet {
+
+ /**
+ * Emits ves message to TCA Calculator Instances
+ */
+ @Output(TCA_FIXED_VES_MESSAGE_ROUTER_OUTPUT)
+ private OutputEmitter<String> vesMessageEmitter;
+
+
+ @Override
+ public void configure() {
+ setName(TCA_FIXED_VES_MESSAGE_ROUTER_NAME_FLOWLET);
+ setDescription(TCA_FIXED_VES_MESSAGE_ROUTER_DESCRIPTION_FLOWLET);
+ }
+
+ @ProcessInput
+ public void routeVESMessage(StreamEvent vesMessageStreamEvent) {
+ final String vesMessage = Charsets.UTF_8.decode(vesMessageStreamEvent.getBody()).toString();
+ vesMessageEmitter.emit(vesMessage, TCA_VES_MESSAGE_ROUTER_PARTITION_KEY, vesMessage
+ .hashCode());
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESThresholdViolationCalculatorFlowlet.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESThresholdViolationCalculatorFlowlet.java
new file mode 100644
index 0000000..d5ab109
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/flowlet/TCAVESThresholdViolationCalculatorFlowlet.java
@@ -0,0 +1,137 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.flowlet;
+
+import co.cask.cdap.api.annotation.Output;
+import co.cask.cdap.api.annotation.ProcessInput;
+import co.cask.cdap.api.annotation.Property;
+import co.cask.cdap.api.annotation.RoundRobin;
+import co.cask.cdap.api.dataset.lib.ObjectMappedTable;
+import co.cask.cdap.api.flow.flowlet.AbstractFlowlet;
+import co.cask.cdap.api.flow.flowlet.FlowletContext;
+import co.cask.cdap.api.flow.flowlet.OutputEmitter;
+import co.cask.cdap.api.metrics.Metrics;
+import com.fasterxml.jackson.core.JsonProcessingException;
+import org.openecomp.dcae.analytics.common.CDAPComponentsConstants;
+import org.openecomp.dcae.analytics.common.CDAPMetricsConstants;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.TCAPolicy;
+import org.openecomp.dcae.analytics.model.facade.tca.TCAVESResponse;
+import org.openecomp.dcae.analytics.tca.persistance.TCACalculatorMessageType;
+import org.openecomp.dcae.analytics.tca.persistance.TCAMessageStatusEntity;
+import org.openecomp.dcae.analytics.tca.persistance.TCAMessageStatusPersister;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFProcessorContext;
+import org.openecomp.dcae.analytics.tca.utils.TCAUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_FIXED_VES_THRESHOLD_VIOLATION_CALCULATOR_DESCRIPTION_FLOWLET;
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_FIXED_VES_THRESHOLD_VIOLATION_CALCULATOR_NAME_FLOWLET;
+
+/**
+ * TCA VES Message Filter filters out messages which are not applicable for TCA as per TCA Policy
+ *
+ * @author Rajiv Singla. Creation Date: 11/3/2016.
+ */
+public class TCAVESThresholdViolationCalculatorFlowlet extends AbstractFlowlet {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCAVESThresholdViolationCalculatorFlowlet.class);
+
+ @Output(CDAPComponentsConstants.TCA_FIXED_VES_TCA_CALCULATOR_NAME_OUTPUT)
+ private OutputEmitter<String> tcaAlertOutputEmitter;
+
+ @Property
+ private final String messageStatusTableName;
+
+ private TCAPolicy tcaPolicy;
+ private Metrics metrics;
+ private ObjectMappedTable<TCAMessageStatusEntity> vesMessageStatusTable;
+
+ public TCAVESThresholdViolationCalculatorFlowlet(String messageStatusTableName) {
+ this.messageStatusTableName = messageStatusTableName;
+ }
+
+ @Override
+ public void configure() {
+ setName(TCA_FIXED_VES_THRESHOLD_VIOLATION_CALCULATOR_NAME_FLOWLET);
+ setDescription(TCA_FIXED_VES_THRESHOLD_VIOLATION_CALCULATOR_DESCRIPTION_FLOWLET);
+ }
+
+
+ @Override
+ public void initialize(FlowletContext flowletContext) throws Exception {
+ super.initialize(flowletContext);
+
+ // parse Runtime Arguments to tca policy preferences
+ tcaPolicy = TCAUtils.getValidatedTCAPolicyPreferences(flowletContext);
+
+ vesMessageStatusTable = getContext().getDataset(messageStatusTableName);
+
+ }
+
+ @ProcessInput(CDAPComponentsConstants.TCA_FIXED_VES_MESSAGE_ROUTER_OUTPUT)
+ @RoundRobin
+ public void filterVESMessages(String vesMessage) throws JsonProcessingException {
+
+ TCACalculatorMessageType calculatorMessageType = TCACalculatorMessageType.INAPPLICABLE;
+ String alertMessage = null;
+
+ // Step 1: Filter incoming messages
+ final TCACEFProcessorContext processorContext = TCAUtils.filterCEFMessage(vesMessage, tcaPolicy);
+
+ if (processorContext.canProcessingContinue()) {
+
+ // Step 2: Check if CEF Message violate any thresholds
+ final TCACEFProcessorContext processorContextWithViolations =
+ TCAUtils.computeThresholdViolations(processorContext);
+
+ if (processorContextWithViolations.canProcessingContinue()) {
+
+ // Step 3: Create Alert Message
+ final String tcaAppName = getContext().getApplicationSpecification().getName();
+ final TCAVESResponse newTCAVESResponse =
+ TCAUtils.createNewTCAVESResponse(processorContextWithViolations, tcaAppName);
+ alertMessage = TCAUtils.writeValueAsString(newTCAVESResponse);
+ calculatorMessageType = TCACalculatorMessageType.NON_COMPLIANT;
+ LOG.debug("VES Threshold Violation Detected. An alert message is be generated. {}", alertMessage);
+
+ metrics.count(CDAPMetricsConstants.TCA_VES_NON_COMPLIANT_MESSAGES_METRIC, 1);
+
+ // Step 4: Emit message to Alert Sink Flowlet
+ tcaAlertOutputEmitter.emit(alertMessage);
+
+ } else {
+
+ calculatorMessageType = TCACalculatorMessageType.COMPLIANT;
+ metrics.count(CDAPMetricsConstants.TCA_VES_COMPLIANT_MESSAGES_METRIC, 1);
+ }
+
+ } else {
+
+ metrics.count(CDAPMetricsConstants.TCA_VES_INAPPLICABLE_MESSAGES_METRIC, 1);
+ }
+
+ // save message to message status table
+ TCAMessageStatusPersister.persist(
+ processorContext, getContext(), calculatorMessageType, vesMessageStatusTable, alertMessage);
+ }
+
+
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCACalculatorMessageType.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCACalculatorMessageType.java
new file mode 100644
index 0000000..acef458
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCACalculatorMessageType.java
@@ -0,0 +1,43 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.persistance;
+
+/**
+ * TCA Calculator applies TCA Policy to incoming VES messages and classifies them as per this enum
+ *
+ * @author Rajiv Singla. Creation Date: 11/15/2016.
+ */
+public enum TCACalculatorMessageType {
+
+ /**
+ * VES messages that are not applicable as per TCA Policy
+ */
+ INAPPLICABLE,
+ /**
+ * VES messages that are applicable as per TCA Policy but don't violate any thresholds
+ */
+ COMPLIANT,
+ /**
+ * VES messages that are applicable as per TCA Policy and also in violation of TCA Policy thresholds
+ */
+ NON_COMPLIANT;
+
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAMessageStatusEntity.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAMessageStatusEntity.java
new file mode 100644
index 0000000..35aeac4
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAMessageStatusEntity.java
@@ -0,0 +1,306 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.persistance;
+
+import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.io.WritableUtils;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+
+/**
+ * TCA Message Status is an Entity which is used to persist TCA VES Message status information in Message Status Table
+ *
+ * @author Rajiv Singla. Creation Date: 11/16/2016.
+ */
+public class TCAMessageStatusEntity implements Writable, Serializable {
+
+ private static final long serialVersionUID = -6186607668704516962L;
+
+ private long creationTS;
+ private int flowletInstance;
+ private String messageType;
+ private String vesMessage;
+ private String domain;
+ private String functionalRole;
+ private String thresholdPath;
+ private String thresholdSeverity;
+ private String thresholdDirection;
+ private Long thresholdValue;
+ private String jsonProcessorStatus;
+ private String jsonProcessorMessage;
+ private String domainFilterStatus;
+ private String domainFilterMessage;
+ private String functionalRoleFilterStatus;
+ private String functionalRoleFilterMessage;
+ private String thresholdCalculatorStatus;
+ private String thresholdCalculatorMessage;
+ private String alertMessage;
+
+ public TCAMessageStatusEntity() {
+ }
+
+ public TCAMessageStatusEntity(long creationTS, int flowletInstance, String messageType, String vesMessage, String
+ domain, String functionalRole) {
+ this(creationTS, flowletInstance, messageType, vesMessage, domain, functionalRole, null, null, null, null,
+ null, null, null, null, null, null, null, null, null);
+ }
+
+ public TCAMessageStatusEntity(long creationTS, int flowletInstance, String messageType, String vesMessage,
+ String domain, String functionalRole,
+ String thresholdPath, String thresholdSeverity, String thresholdDirection,
+ Long thresholdValue,
+ String jsonProcessorStatus, String jsonProcessorMessage,
+ String domainFilterStatus, String domainFilterMessage,
+ String functionalRoleFilterStatus, String functionalRoleFilterMessage,
+ String thresholdCalculatorStatus, String thresholdCalculatorMessage,
+ String alertMessage) {
+ this.creationTS = creationTS;
+ this.flowletInstance = flowletInstance;
+ this.messageType = messageType;
+ this.vesMessage = vesMessage;
+ this.domain = domain;
+ this.functionalRole = functionalRole;
+ this.thresholdPath = thresholdPath;
+ this.thresholdSeverity = thresholdSeverity;
+ this.thresholdDirection = thresholdDirection;
+ this.thresholdValue = thresholdValue;
+ this.jsonProcessorStatus = jsonProcessorStatus;
+ this.jsonProcessorMessage = jsonProcessorMessage;
+ this.domainFilterStatus = domainFilterStatus;
+ this.domainFilterMessage = domainFilterMessage;
+ this.functionalRoleFilterStatus = functionalRoleFilterStatus;
+ this.functionalRoleFilterMessage = functionalRoleFilterMessage;
+ this.thresholdCalculatorStatus = thresholdCalculatorStatus;
+ this.thresholdCalculatorMessage = thresholdCalculatorMessage;
+ this.alertMessage = alertMessage;
+ }
+
+ public long getCreationTS() {
+ return creationTS;
+ }
+
+ public void setCreationTS(long creationTS) {
+ this.creationTS = creationTS;
+ }
+
+ public int getFlowletInstance() {
+ return flowletInstance;
+ }
+
+ public void setFlowletInstance(int flowletInstance) {
+ this.flowletInstance = flowletInstance;
+ }
+
+ public String getMessageType() {
+ return messageType;
+ }
+
+ public void setMessageType(String messageType) {
+ this.messageType = messageType;
+ }
+
+ public String getVesMessage() {
+ return vesMessage;
+ }
+
+ public void setVesMessage(String vesMessage) {
+ this.vesMessage = vesMessage;
+ }
+
+ public String getDomain() {
+ return domain;
+ }
+
+ public void setDomain(String domain) {
+ this.domain = domain;
+ }
+
+ public String getFunctionalRole() {
+ return functionalRole;
+ }
+
+ public void setFunctionalRole(String functionalRole) {
+ this.functionalRole = functionalRole;
+ }
+
+ public String getThresholdPath() {
+ return thresholdPath;
+ }
+
+ public void setThresholdPath(String thresholdPath) {
+ this.thresholdPath = thresholdPath;
+ }
+
+ public String getThresholdSeverity() {
+ return thresholdSeverity;
+ }
+
+ public void setThresholdSeverity(String thresholdSeverity) {
+ this.thresholdSeverity = thresholdSeverity;
+ }
+
+ public String getThresholdDirection() {
+ return thresholdDirection;
+ }
+
+ public void setThresholdDirection(String thresholdDirection) {
+ this.thresholdDirection = thresholdDirection;
+ }
+
+ public Long getThresholdValue() {
+ return thresholdValue;
+ }
+
+ public void setThresholdValue(Long thresholdValue) {
+ this.thresholdValue = thresholdValue;
+ }
+
+ public String getJsonProcessorStatus() {
+ return jsonProcessorStatus;
+ }
+
+ public void setJsonProcessorStatus(String jsonProcessorStatus) {
+ this.jsonProcessorStatus = jsonProcessorStatus;
+ }
+
+ public String getJsonProcessorMessage() {
+ return jsonProcessorMessage;
+ }
+
+ public void setJsonProcessorMessage(String jsonProcessorMessage) {
+ this.jsonProcessorMessage = jsonProcessorMessage;
+ }
+
+ public String getDomainFilterStatus() {
+ return domainFilterStatus;
+ }
+
+ public void setDomainFilterStatus(String domainFilterStatus) {
+ this.domainFilterStatus = domainFilterStatus;
+ }
+
+ public String getDomainFilterMessage() {
+ return domainFilterMessage;
+ }
+
+ public void setDomainFilterMessage(String domainFilterMessage) {
+ this.domainFilterMessage = domainFilterMessage;
+ }
+
+ public String getFunctionalRoleFilterStatus() {
+ return functionalRoleFilterStatus;
+ }
+
+ public void setFunctionalRoleFilterStatus(String functionalRoleFilterStatus) {
+ this.functionalRoleFilterStatus = functionalRoleFilterStatus;
+ }
+
+ public String getFunctionalRoleFilterMessage() {
+ return functionalRoleFilterMessage;
+ }
+
+ public void setFunctionalRoleFilterMessage(String functionalRoleFilterMessage) {
+ this.functionalRoleFilterMessage = functionalRoleFilterMessage;
+ }
+
+ public String getThresholdCalculatorStatus() {
+ return thresholdCalculatorStatus;
+ }
+
+ public void setThresholdCalculatorStatus(String thresholdCalculatorStatus) {
+ this.thresholdCalculatorStatus = thresholdCalculatorStatus;
+ }
+
+ public String getThresholdCalculatorMessage() {
+ return thresholdCalculatorMessage;
+ }
+
+ public void setThresholdCalculatorMessage(String thresholdCalculatorMessage) {
+ this.thresholdCalculatorMessage = thresholdCalculatorMessage;
+ }
+
+ public String getAlertMessage() {
+ return alertMessage;
+ }
+
+ public void setAlertMessage(String alertMessage) {
+ this.alertMessage = alertMessage;
+ }
+
+ @Override
+ public void write(DataOutput dataOutput) throws IOException {
+ WritableUtils.writeVLong(dataOutput, creationTS);
+ WritableUtils.writeVInt(dataOutput, flowletInstance);
+ WritableUtils.writeString(dataOutput, messageType);
+ WritableUtils.writeString(dataOutput, vesMessage);
+
+ WritableUtils.writeString(dataOutput, domain);
+ WritableUtils.writeString(dataOutput, functionalRole);
+
+ WritableUtils.writeString(dataOutput, thresholdPath);
+ WritableUtils.writeString(dataOutput, thresholdSeverity);
+ WritableUtils.writeString(dataOutput, thresholdDirection);
+ WritableUtils.writeVLong(dataOutput, thresholdValue);
+
+ WritableUtils.writeString(dataOutput, jsonProcessorStatus);
+ WritableUtils.writeString(dataOutput, jsonProcessorMessage);
+ WritableUtils.writeString(dataOutput, domainFilterStatus);
+ WritableUtils.writeString(dataOutput, domainFilterMessage);
+ WritableUtils.writeString(dataOutput, functionalRoleFilterStatus);
+ WritableUtils.writeString(dataOutput, functionalRoleFilterMessage);
+ WritableUtils.writeString(dataOutput, thresholdCalculatorStatus);
+ WritableUtils.writeString(dataOutput, thresholdCalculatorMessage);
+
+ WritableUtils.writeString(dataOutput, alertMessage);
+
+ }
+
+ @Override
+ public void readFields(DataInput dataInput) throws IOException {
+ creationTS = WritableUtils.readVLong(dataInput);
+ flowletInstance = WritableUtils.readVInt(dataInput);
+ messageType = WritableUtils.readString(dataInput);
+ vesMessage = WritableUtils.readString(dataInput);
+
+ domain = WritableUtils.readString(dataInput);
+ functionalRole = WritableUtils.readString(dataInput);
+
+ thresholdPath = WritableUtils.readString(dataInput);
+ thresholdSeverity = WritableUtils.readString(dataInput);
+ thresholdDirection = WritableUtils.readString(dataInput);
+ thresholdValue = WritableUtils.readVLong(dataInput);
+
+ jsonProcessorStatus = WritableUtils.readString(dataInput);
+ jsonProcessorMessage = WritableUtils.readString(dataInput);
+ domainFilterStatus = WritableUtils.readString(dataInput);
+ domainFilterMessage = WritableUtils.readString(dataInput);
+ functionalRoleFilterStatus = WritableUtils.readString(dataInput);
+ functionalRoleFilterMessage = WritableUtils.readString(dataInput);
+ thresholdCalculatorStatus = WritableUtils.readString(dataInput);
+ thresholdCalculatorMessage = WritableUtils.readString(dataInput);
+
+ alertMessage = WritableUtils.readString(dataInput);
+
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAMessageStatusPersister.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAMessageStatusPersister.java
new file mode 100644
index 0000000..edd33dd
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAMessageStatusPersister.java
@@ -0,0 +1,243 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.persistance;
+
+import co.cask.cdap.api.data.schema.Schema;
+import co.cask.cdap.api.data.schema.UnsupportedTypeException;
+import co.cask.cdap.api.dataset.DatasetProperties;
+import co.cask.cdap.api.dataset.lib.IndexedTable;
+import co.cask.cdap.api.dataset.lib.ObjectMappedTable;
+import co.cask.cdap.api.dataset.lib.ObjectMappedTableProperties;
+import co.cask.cdap.api.flow.flowlet.FlowletContext;
+import com.google.common.base.Joiner;
+import org.apache.commons.lang3.StringEscapeUtils;
+import org.apache.commons.lang3.tuple.Pair;
+import org.openecomp.dcae.analytics.common.exception.DCAEAnalyticsRuntimeException;
+import org.openecomp.dcae.analytics.common.service.processor.MessageProcessor;
+import org.openecomp.dcae.analytics.common.service.processor.ProcessorContext;
+import org.openecomp.dcae.analytics.common.utils.PersistenceUtils;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.MetricsPerFunctionalRole;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.Threshold;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFJsonProcessor;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFPolicyDomainFilter;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFPolicyFunctionalRoleFilter;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFPolicyThresholdsProcessor;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFProcessorContext;
+import org.openecomp.dcae.analytics.tca.utils.TCAUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.annotation.Nullable;
+
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_FIXED_VES_MESSAGE_STATUS_DESCRIPTION_TABLE;
+import static org.openecomp.dcae.analytics.common.utils.PersistenceUtils.TABLE_ROW_KEY_COLUMN_NAME;
+
+/**
+ *
+ *
+ * @author Rajiv Singla. Creation Date: 11/15/2016.
+ */
+public abstract class TCAMessageStatusPersister {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCAMessageStatusPersister.class);
+
+ /**
+ * Saves Message Status in Table. Assumes no alert was generated
+ *
+ * @param processorContext processor Context
+ * @param flowletContext Flowlet Context
+ * @param calculatorMessageType Calculation Message Type
+ * @param messageStatusTable Message Status Table
+ */
+ public static void persist(final TCACEFProcessorContext processorContext,
+ final FlowletContext flowletContext,
+ final TCACalculatorMessageType calculatorMessageType,
+ final ObjectMappedTable<TCAMessageStatusEntity> messageStatusTable) {
+ persist(processorContext, flowletContext, calculatorMessageType, messageStatusTable, null);
+ }
+
+ /**
+ * Saves Message Status in Table. Sets up alert message aslo
+ *
+ * @param processorContext processor Context
+ * @param flowletContext Flowlet Context
+ * @param calculatorMessageType Calculation Message Type
+ * @param messageStatusTable Message Status Table
+ * @param alertMessage Alert message
+ */
+ public static void persist(final TCACEFProcessorContext processorContext,
+ final FlowletContext flowletContext,
+ final TCACalculatorMessageType calculatorMessageType,
+ final ObjectMappedTable<TCAMessageStatusEntity> messageStatusTable,
+ @Nullable final String alertMessage) {
+
+ final String rowKey = createKey(calculatorMessageType);
+
+ final Long currentTS = new Date().getTime();
+ final int flowletInstanceId = flowletContext.getInstanceId();
+ final String vesMessage = StringEscapeUtils.unescapeJson(processorContext.getMessage());
+
+ // Find Functional Role and domain
+ final Pair<String, String> domainAndFunctionalRole = TCAUtils.getDomainAndFunctionalRole(processorContext);
+ final String domain = domainAndFunctionalRole.getLeft();
+ final String functionalRole = domainAndFunctionalRole.getRight();
+
+ final TCAMessageStatusEntity tcaMessageStatusEntity = new TCAMessageStatusEntity(currentTS,
+ flowletInstanceId, calculatorMessageType.name(), vesMessage, domain, functionalRole);
+
+ // add threshold violation fields
+ addViolatedThreshold(tcaMessageStatusEntity, processorContext);
+ // add processor status and messages
+ addMessageProcessorMessages(tcaMessageStatusEntity, processorContext);
+ // add Alert message
+ tcaMessageStatusEntity.setAlertMessage(
+ alertMessage == null ? null : StringEscapeUtils.unescapeJson(alertMessage)
+ );
+
+ messageStatusTable.write(rowKey, tcaMessageStatusEntity);
+
+
+ LOG.debug("Finished persisting VES Status Message with rowKey: {} in Message Status Table.", rowKey);
+
+ }
+
+
+ /**
+ * Create TCA VES Message Status Table Properties
+ *
+ * @param timeToLiveSeconds Message Status Table time to live in seconds
+ *
+ * @return Message Status table properties
+ */
+ public static DatasetProperties getDatasetProperties(final int timeToLiveSeconds) {
+
+ try {
+ return ObjectMappedTableProperties.builder()
+ .setType(TCAMessageStatusEntity.class)
+ .setRowKeyExploreName(TABLE_ROW_KEY_COLUMN_NAME)
+ .setRowKeyExploreType(Schema.Type.STRING)
+ .add(IndexedTable.PROPERTY_TTL, timeToLiveSeconds)
+ .setDescription(TCA_FIXED_VES_MESSAGE_STATUS_DESCRIPTION_TABLE)
+ .build();
+ } catch (UnsupportedTypeException e) {
+ final String errorMessage = "Unable to convert TCAMessageStatusEntity class to Schema";
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, new IllegalArgumentException(errorMessage));
+ }
+
+ }
+
+
+ /**
+ * Adds Violated Threshold Parameter values to {@link TCAMessageStatusEntity}
+ *
+ * @param tcaMessageStatusEntity message entity that needs to be populated with threshold fields
+ * @param processorContext processor context
+ *
+ * @return entity with populated threshold field values if present
+ */
+ private static TCAMessageStatusEntity addViolatedThreshold(final TCAMessageStatusEntity tcaMessageStatusEntity,
+ final TCACEFProcessorContext processorContext) {
+
+ final MetricsPerFunctionalRole metricsPerFunctionalRole = processorContext.getMetricsPerFunctionalRole();
+
+ if (metricsPerFunctionalRole != null
+ && metricsPerFunctionalRole.getThresholds() != null
+ && metricsPerFunctionalRole.getThresholds().get(0) != null) {
+
+ final Threshold threshold = metricsPerFunctionalRole.getThresholds().get(0);
+ tcaMessageStatusEntity.setThresholdPath(threshold.getFieldPath());
+ tcaMessageStatusEntity.setThresholdSeverity(threshold.getSeverity().name());
+ tcaMessageStatusEntity.setThresholdDirection(threshold.getDirection().name());
+ tcaMessageStatusEntity.setThresholdValue(threshold.getThresholdValue());
+ }
+
+ return tcaMessageStatusEntity;
+ }
+
+
+ /**
+ * Add TCA CEF Message Processor status information
+ *
+ * @param tcaMessageStatusEntity message entity that needs to be populated with message processor fields
+ * @param processorContext processor context
+ *
+ * @return entity with populated message process status information
+ */
+ private static TCAMessageStatusEntity addMessageProcessorMessages(
+ final TCAMessageStatusEntity tcaMessageStatusEntity, final TCACEFProcessorContext processorContext) {
+ final List<? super MessageProcessor<? extends ProcessorContext>> messageProcessors = processorContext
+ .getMessageProcessors();
+
+ if (messageProcessors != null && !messageProcessors.isEmpty()) {
+ for (Object messageProcessor : messageProcessors) {
+ final MessageProcessor<TCACEFProcessorContext> tcaMessageProcessor =
+ (MessageProcessor<TCACEFProcessorContext>) messageProcessor;
+
+ final String processingState = tcaMessageProcessor.getProcessingState().name();
+ final String processingMessage = tcaMessageProcessor.getProcessingMessage().orNull();
+
+ if (messageProcessor.getClass().equals(TCACEFJsonProcessor.class)) {
+ tcaMessageStatusEntity.setJsonProcessorStatus(processingState);
+ tcaMessageStatusEntity.setJsonProcessorMessage(processingMessage);
+ }
+
+ if (messageProcessor.getClass().equals(TCACEFPolicyDomainFilter.class)) {
+ tcaMessageStatusEntity.setDomainFilterStatus(processingState);
+ tcaMessageStatusEntity.setDomainFilterMessage(processingMessage);
+ }
+
+ if (messageProcessor.getClass().equals(TCACEFPolicyFunctionalRoleFilter.class)) {
+ tcaMessageStatusEntity.setFunctionalRoleFilterStatus(processingState);
+ tcaMessageStatusEntity.setFunctionalRoleFilterMessage(processingMessage);
+ }
+
+ if (messageProcessor.getClass().equals(TCACEFPolicyThresholdsProcessor.class)) {
+ tcaMessageStatusEntity.setThresholdCalculatorStatus(processingState);
+ tcaMessageStatusEntity.setThresholdCalculatorMessage(processingMessage);
+ }
+
+ }
+ }
+ return tcaMessageStatusEntity;
+ }
+
+ /**
+ * Creates Row Key for TCA VES Message Status table
+ *
+ * Row Key = (Message Type + Decreasing Value)
+ *
+ * @param calculatorMessageType calculator message type
+ *
+ * @return row key string
+ */
+ private static String createKey(final TCACalculatorMessageType calculatorMessageType) {
+
+ final List<String> keyList = new LinkedList<>();
+ keyList.add(calculatorMessageType.name());
+ keyList.add(PersistenceUtils.getCurrentTimeReverseSubKey());
+ return Joiner.on(PersistenceUtils.ROW_KEY_DELIMITER).join(keyList);
+ }
+
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAVESAlertEntity.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAVESAlertEntity.java
new file mode 100644
index 0000000..ff3906c
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAVESAlertEntity.java
@@ -0,0 +1,77 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.persistance;
+
+import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.io.WritableUtils;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+import java.io.Serializable;
+
+/**
+ *
+ * @author Rajiv Singla. Creation Date: 11/16/2016.
+ */
+public class TCAVESAlertEntity implements Writable, Serializable {
+
+ private static final long serialVersionUID = -8587229518063660258L;
+
+ private long creationTS;
+ private String alertMessage;
+
+ public TCAVESAlertEntity() {
+ }
+
+ public TCAVESAlertEntity(long creationTS, String alertMessage) {
+ this.creationTS = creationTS;
+ this.alertMessage = alertMessage;
+ }
+
+ public long getCreationTS() {
+ return creationTS;
+ }
+
+ public void setCreationTS(long creationTS) {
+ this.creationTS = creationTS;
+ }
+
+ public String getAlertMessage() {
+ return alertMessage;
+ }
+
+ public void setAlertMessage(String alertMessage) {
+ this.alertMessage = alertMessage;
+ }
+
+ @Override
+ public void write(DataOutput dataOutput) throws IOException {
+ WritableUtils.writeVLong(dataOutput, creationTS);
+ WritableUtils.writeString(dataOutput, alertMessage);
+ }
+
+ @Override
+ public void readFields(DataInput dataInput) throws IOException {
+ creationTS = WritableUtils.readVLong(dataInput);
+ alertMessage = WritableUtils.readString(dataInput);
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAVESAlertsPersister.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAVESAlertsPersister.java
new file mode 100644
index 0000000..bf94cde
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/persistance/TCAVESAlertsPersister.java
@@ -0,0 +1,98 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.persistance;
+
+import co.cask.cdap.api.data.schema.Schema;
+import co.cask.cdap.api.data.schema.UnsupportedTypeException;
+import co.cask.cdap.api.dataset.DatasetProperties;
+import co.cask.cdap.api.dataset.lib.IndexedTable;
+import co.cask.cdap.api.dataset.lib.ObjectMappedTable;
+import co.cask.cdap.api.dataset.lib.ObjectMappedTableProperties;
+import org.apache.commons.lang3.StringEscapeUtils;
+import org.openecomp.dcae.analytics.common.exception.DCAEAnalyticsRuntimeException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
+
+import static org.openecomp.dcae.analytics.common.CDAPComponentsConstants.TCA_DEFAULT_VES_ALERTS_DESCRIPTION_TABLE;
+import static org.openecomp.dcae.analytics.common.utils.PersistenceUtils.TABLE_ROW_KEY_COLUMN_NAME;
+
+/**
+ *
+ * @author Rajiv Singla. Creation Date: 11/16/2016.
+ */
+public abstract class TCAVESAlertsPersister {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCAVESAlertsPersister.class);
+
+ /**
+ * Persists Alert Message to Alerts Table
+ *
+ * @param alertMessage alert Message
+ * @param tcaVESAlertTable alert Table Name
+ */
+ public static void persist(final String alertMessage, final ObjectMappedTable<TCAVESAlertEntity> tcaVESAlertTable) {
+ final Date currentDate = new Date();
+ final TCAVESAlertEntity alertEntity = new TCAVESAlertEntity(currentDate.getTime(),
+ StringEscapeUtils.unescapeJson(alertMessage));
+ // row key is same as current timestamp
+ final String rowKey = createRowKey(currentDate);
+ tcaVESAlertTable.write(rowKey, alertEntity);
+
+ LOG.debug("Finished persisting VES Alert message ID: {} in VES Alerts table.", rowKey);
+ }
+
+
+ /**
+ * Creates {@link DatasetProperties} for Alerts Table
+ *
+ * @param timeToLiveSeconds alerts table Time to Live
+ * @return Alerts table properties
+ */
+ public static DatasetProperties getDatasetProperties(final int timeToLiveSeconds) {
+ try {
+ return ObjectMappedTableProperties.builder()
+ .setType(TCAVESAlertEntity.class)
+ .setRowKeyExploreName(TABLE_ROW_KEY_COLUMN_NAME)
+ .setRowKeyExploreType(Schema.Type.STRING)
+ .add(IndexedTable.PROPERTY_TTL, timeToLiveSeconds)
+ .setDescription(TCA_DEFAULT_VES_ALERTS_DESCRIPTION_TABLE)
+ .build();
+ } catch (UnsupportedTypeException e) {
+ final String errorMessage = "Unable to convert TCAVESAlertEntity class to Schema";
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, new IllegalArgumentException(errorMessage));
+ }
+
+ }
+
+ /**
+ * Creates Row Key for Alerts Table
+ *
+ * @param date current Date
+ *
+ * @return row key
+ */
+ public static String createRowKey(final Date date) {
+ return String.format("%025d", date.getTime());
+ }
+
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/AbstractTCAECEFPolicyProcessor.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/AbstractTCAECEFPolicyProcessor.java
new file mode 100644
index 0000000..56ea38f
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/AbstractTCAECEFPolicyProcessor.java
@@ -0,0 +1,61 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.processor;
+
+import org.openecomp.dcae.analytics.common.exception.MessageProcessingException;
+import org.openecomp.dcae.analytics.common.service.processor.AbstractMessageProcessor;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.annotation.Nonnull;
+
+/**
+ * <p>
+ * Encapsulates common functionality for all TCA CEF Policy Processors
+ * </p>
+ *
+ * @author Rajiv Singla. Creation Date: 11/9/2016.
+ */
+public abstract class AbstractTCAECEFPolicyProcessor extends AbstractMessageProcessor<TCACEFProcessorContext> {
+
+ private static final Logger LOG = LoggerFactory.getLogger(AbstractTCAECEFPolicyProcessor.class);
+
+ /**
+ * For all TCA Policy Processor the pre processor ensures that {@link EventListener} object is
+ * present
+ *
+ * @param processorContext incoming Processor Context
+ * @return Pre processed Processor Context
+ */
+ @Override
+ public TCACEFProcessorContext preProcessor(@Nonnull TCACEFProcessorContext processorContext) {
+ // validates CEF Event Listener is Present
+ final EventListener cefEventListener = processorContext.getCEFEventListener();
+ if (cefEventListener == null) {
+ final String errorMessage = String.format(
+ "CEF Event Listener is not Present.Invalid use of Processor: %s. CEF Message: %s",
+ getProcessorInfo().getProcessorName(), processorContext.getMessage());
+ throw new MessageProcessingException(errorMessage, LOG, new IllegalArgumentException(errorMessage));
+ }
+ return super.preProcessor(processorContext);
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFJsonProcessor.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFJsonProcessor.java
new file mode 100644
index 0000000..ab33fe2
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFJsonProcessor.java
@@ -0,0 +1,98 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.processor;
+
+import org.apache.commons.lang3.StringUtils;
+import org.openecomp.dcae.analytics.common.exception.MessageProcessingException;
+import org.openecomp.dcae.analytics.common.service.processor.AbstractMessageProcessor;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.openecomp.dcae.analytics.tca.utils.TCAUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+
+/**
+ *<p>
+ * Processor that converts incoming presumed JSON string CEF message to {@link EventListener} object
+ * <br>
+ * Pre Conditions: None
+ *</p>
+ *
+ * @author Rajiv Singla. Creation Date: 11/5/2016.
+ */
+public class TCACEFJsonProcessor extends AbstractMessageProcessor<TCACEFProcessorContext> {
+
+
+ private static final long serialVersionUID = -9031531679383821793L;
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCACEFJsonProcessor.class);
+
+
+ @Override
+ public String getProcessorDescription() {
+ return "Converts incoming TCA CEF Message to Event Listener object";
+ }
+
+ @Override
+ public TCACEFProcessorContext processMessage(TCACEFProcessorContext processorContext) {
+
+ final String cefMessage = processorContext.getMessage();
+
+ // If CEF Message is null then processor should stop processing
+ if (cefMessage == null) {
+ String errorMessage = "Null CEF message cannot be converted to CEF Event Listener Object";
+ throw new MessageProcessingException(errorMessage, LOG, new IllegalArgumentException(errorMessage));
+ }
+
+ // If CEF Message is blank then processor stop processing
+ if (StringUtils.isBlank(cefMessage)) {
+ setTerminatingProcessingMessage("Blank CEF message cannot be converted to CEF Event Listener Object",
+ processorContext);
+ return processorContext;
+ }
+
+ // trim cef message
+ final String trimmedCEFMessage = cefMessage.trim();
+
+ // if message does not start with curly brace and ends with curly brace, it is not a valid cef message
+ // processor will stop processing
+ if (!(trimmedCEFMessage.startsWith("{") && trimmedCEFMessage.endsWith("}"))) {
+ setTerminatingProcessingMessage("CEF Message must start with curly brace and must end with curly brace",
+ processorContext);
+ return processorContext;
+ }
+
+ // try parsing the cef message
+ try {
+ final EventListener eventListener = TCAUtils.readValue(trimmedCEFMessage, EventListener.class);
+ setFinishedProcessingMessage("CEF JSON to Event Listener Conversion Successful", processorContext);
+ // set new Event Listener in the Processor Context
+ processorContext.setCEFEventListener(eventListener);
+ return processorContext;
+ } catch (IOException e) {
+ final String errorMessage = String.format("Parsing Failed for CEF Message: %s, Error: %s", cefMessage, e);
+ // If parsing fails throw an exception
+ throw new MessageProcessingException(errorMessage, LOG, e);
+ }
+
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyDomainFilter.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyDomainFilter.java
new file mode 100644
index 0000000..639c6bc
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyDomainFilter.java
@@ -0,0 +1,83 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.processor;
+
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+
+/**
+ * <p>
+ * TCA Processor which acts like a filter to filter out messages which does not belong to TCA Policy Domain
+ * <br>
+ * Pre Conditions: CEF Event Listener must be present
+ * </p>
+ *
+ * @author Rajiv Singla. Creation Date: 11/7/2016.
+ */
+public class TCACEFPolicyDomainFilter extends AbstractTCAECEFPolicyProcessor {
+
+
+ private static final long serialVersionUID = -7302116478207544378L;
+
+ @Override
+ public String getProcessorDescription() {
+ return "Filters out CEF Messages which does not match TCAPolicy Domain";
+ }
+
+ @Override
+ public TCACEFProcessorContext processMessage(TCACEFProcessorContext processorContext) {
+
+ // Safe to get event Listener here without null check as pre processor will validate if
+ // event listener is indeed present
+ final EventListener eventListener = processorContext.getCEFEventListener();
+
+ String cefMessageDomain;
+
+ // Extract CEF domain as it is must be present as per CEF Schema
+ if (eventListener.getEvent() != null &&
+ eventListener.getEvent().getCommonEventHeader() != null &&
+ eventListener.getEvent().getCommonEventHeader().getDomain() != null) {
+ cefMessageDomain = eventListener.getEvent().getCommonEventHeader().getDomain();
+
+ } else {
+ final String terminatingMessage = "Invalid CEF Message.Common Event Header Domain not present.";
+ setTerminatingProcessingMessage(terminatingMessage, processorContext);
+ return processorContext;
+ }
+
+ // Get Policy Domain. TCA Policy Validation must ensure that Domain is indeed present
+ // no null check will be required here
+ final String policyDomain = processorContext.getTCAPolicy().getDomain();
+
+ // If Policy domain matches CEF message domain then continue processing
+ if (cefMessageDomain.equals(policyDomain)) {
+ final String finishMessage = String.format("Policy Domain and CEF Message Domain match successful." +
+ " Message Domain: %s, Policy Domain: %s", cefMessageDomain, policyDomain);
+ setFinishedProcessingMessage(finishMessage, processorContext);
+ } else {
+ // If policy domain does not match with CEF message terminate processing chain
+ final String terminatingMessage = String.format("Policy Domain and CEF Message Domain match unsuccessful." +
+ " Message Domain: %s, Policy Domain: %s", cefMessageDomain, policyDomain);
+ setTerminatingProcessingMessage(terminatingMessage, processorContext);
+ }
+
+ return processorContext;
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyFunctionalRoleFilter.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyFunctionalRoleFilter.java
new file mode 100644
index 0000000..0f7e9b6
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyFunctionalRoleFilter.java
@@ -0,0 +1,90 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.processor;
+
+import com.google.common.base.Joiner;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.TCAPolicy;
+import org.openecomp.dcae.analytics.tca.utils.TCAUtils;
+
+import java.util.List;
+
+/**
+ * <p>
+ * TCA Processor that acts like a filter to filter out messages which does not belong to TCA Policy Functional Roles
+ * <br>
+ * Pre Conditions: CEF Event Listener must be present
+ * </p>
+ *
+ * @author Rajiv Singla. Creation Date: 11/9/2016.
+ */
+public class TCACEFPolicyFunctionalRoleFilter extends AbstractTCAECEFPolicyProcessor {
+
+ private static final long serialVersionUID = -4550787922375040396L;
+
+ @Override
+ public String getProcessorDescription() {
+ return "Filters out CEF Messages which does not match Policy Functional Roles";
+ }
+
+ @Override
+ public TCACEFProcessorContext processMessage(TCACEFProcessorContext processorContext) {
+
+ // Safe to get event Listener here without null check as pre processor will validate if
+ // event listener is indeed present
+ final EventListener eventListener = processorContext.getCEFEventListener();
+
+ String cefMessageFunctionalRole;
+
+ if (eventListener.getEvent() != null &&
+ eventListener.getEvent().getCommonEventHeader() != null &&
+ eventListener.getEvent().getCommonEventHeader().getFunctionalRole() != null) {
+ cefMessageFunctionalRole = eventListener.getEvent().getCommonEventHeader().getFunctionalRole();
+ } else {
+ String terminationMessage = "Invalid CEF Message.Common Event Header Functional Role not present.";
+ setTerminatingProcessingMessage(terminationMessage, processorContext);
+ return processorContext;
+ }
+
+ // Determine Policy Functional Roles
+ final TCAPolicy tcaPolicy = processorContext.getTCAPolicy();
+ final List<String> policyFunctionalRoles = TCAUtils.getPolicyFunctionalRoleSupplier(tcaPolicy).get();
+ final String policyFunctionalRolesString = Joiner.on(",").join(policyFunctionalRoles);
+
+ // If Policy functional Roles contains CEF message Functional Role then continue processing
+ if (policyFunctionalRoles.contains(cefMessageFunctionalRole)) {
+ final String finishMessage = String.format(
+ "Policy Functional Roles and CEF Message Functional match successful." +
+ "Message Functional Role: %s, Policy Functional Roles: %s",
+ cefMessageFunctionalRole, policyFunctionalRolesString);
+ setFinishedProcessingMessage(finishMessage, processorContext);
+ } else {
+ // If Policy functional Roles does not contain CEF message Functiona Role then terminate processing
+ final String terminatingMessage = String.format(
+ "Policy Domain and CEF Message Domain match unsuccessful." +
+ "Message Functional Role: %s, Policy Functional Roles: %s",
+ cefMessageFunctionalRole, policyFunctionalRolesString);
+ setTerminatingProcessingMessage(terminatingMessage, processorContext);
+ }
+
+ return processorContext;
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyThresholdsProcessor.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyThresholdsProcessor.java
new file mode 100644
index 0000000..6dd334f
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyThresholdsProcessor.java
@@ -0,0 +1,135 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.processor;
+
+import com.google.common.base.Optional;
+import com.google.common.collect.Table;
+import org.openecomp.dcae.analytics.common.exception.MessageProcessingException;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.MetricsPerFunctionalRole;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.TCAPolicy;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.Threshold;
+import org.openecomp.dcae.analytics.tca.utils.TCAUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import javax.annotation.Nonnull;
+
+/**
+ *<p>
+ * TCA CEF Policy Threshold processor
+ * <br>
+ * Pre Conditions: Domain and Functional Role must be present in CEF Event Listener Object
+ *</p>
+ *
+ * @author Rajiv Singla. Creation Date: 11/9/2016.
+ */
+public class TCACEFPolicyThresholdsProcessor extends AbstractTCAECEFPolicyProcessor {
+
+ private static final long serialVersionUID = -9075212160268522029L;
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCACEFPolicyThresholdsProcessor.class);
+
+ @Override
+ public TCACEFProcessorContext preProcessor(@Nonnull TCACEFProcessorContext processorContext) {
+ // validates Domain and Functional Role are present
+ final EventListener eventListener = processorContext.getCEFEventListener();
+ final String domain = eventListener.getEvent().getCommonEventHeader().getDomain();
+ final String functionalRole = eventListener.getEvent().getCommonEventHeader().getFunctionalRole();
+ if (domain == null || functionalRole == null) {
+ final String errorMessage = "CEF Event Listener domain or functional role not Present. " +
+ "Invalid use of this Processor";
+ throw new MessageProcessingException(errorMessage, LOG, new IllegalArgumentException(errorMessage));
+ }
+ return super.preProcessor(processorContext);
+ }
+
+ @Override
+ public String getProcessorDescription() {
+ return "Applies TCA Policy rules to incoming CEF message. If any thresholds are violated attaches max " +
+ "Severity violated threshold to TCA Processor Context";
+ }
+
+ @Override
+ public TCACEFProcessorContext processMessage(TCACEFProcessorContext processorContext) {
+
+ final String cefMessage = processorContext.getMessage();
+
+ // Determine domain and functional Role
+ final EventListener eventListener = processorContext.getCEFEventListener();
+ final String functionalRole = eventListener.getEvent().getCommonEventHeader().getFunctionalRole();
+
+ // Get Table containing Functional Role and Thresholds Field Path
+ final TCAPolicy tcaPolicy = processorContext.getTCAPolicy();
+ final Table<String, String, List<Threshold>> functionalRoleFieldPathsTable =
+ TCAUtils.getPolicyFRThresholdsTableSupplier(tcaPolicy).get();
+
+ // Get Policy Field Paths for that functional Role
+ final Map<String, List<Threshold>> policyFieldPathsMap = functionalRoleFieldPathsTable.row(functionalRole);
+ final Set<String> policyFieldPaths = policyFieldPathsMap.keySet();
+
+ // Get Json Values for Policy Fields
+ final Map<String, List<Long>> messageFieldValuesMap = TCAUtils.getJsonPathValue(cefMessage, policyFieldPaths);
+
+ // Determine all violated thresholds per message field Path
+ final Map<String, Threshold> violatedThresholdsMap = new HashMap<>();
+ for (Map.Entry<String, List<Long>> messageFieldValuesMapEntry : messageFieldValuesMap.entrySet()) {
+ final String messageFieldPath = messageFieldValuesMapEntry.getKey();
+ final List<Threshold> messageFieldAssociatedPolicyThresholds = policyFieldPathsMap.get(messageFieldPath);
+ if (messageFieldAssociatedPolicyThresholds != null) {
+ final Optional<Threshold> thresholdOptional = TCAUtils.thresholdCalculator(
+ messageFieldValuesMapEntry.getValue(), messageFieldAssociatedPolicyThresholds);
+ if (thresholdOptional.isPresent()) {
+ violatedThresholdsMap.put(messageFieldPath, thresholdOptional.get());
+ }
+ }
+ }
+
+ // No threshold were violated
+ if (violatedThresholdsMap.isEmpty()) {
+
+ final String terminationMessage = "No Policy Threshold violated by the VES CEF Message.";
+ setTerminatingProcessingMessage(terminationMessage, processorContext);
+
+ } else {
+
+ // If there are policy violations then determine max priority violation
+ final Threshold maxSeverityThresholdViolation =
+ TCAUtils.prioritizeThresholdViolations(violatedThresholdsMap);
+ final MetricsPerFunctionalRole violatedMetrics = TCAUtils.createViolatedMetrics(tcaPolicy,
+ maxSeverityThresholdViolation, functionalRole);
+ // attach policy violation to processor Context
+ processorContext.setMetricsPerFunctionalRole(violatedMetrics);
+
+ final String finishMessage = String.format("Policy Threshold violation detected for threshold: %s",
+ maxSeverityThresholdViolation);
+ setFinishedProcessingMessage(finishMessage, processorContext);
+
+ }
+
+ return processorContext;
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFProcessorContext.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFProcessorContext.java
new file mode 100644
index 0000000..30ebe9d
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/processor/TCACEFProcessorContext.java
@@ -0,0 +1,103 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.processor;
+
+import org.openecomp.dcae.analytics.common.service.processor.AbstractProcessorContext;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.MetricsPerFunctionalRole;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.TCAPolicy;
+
+/**
+ * TCA CEF Policy Processor Context
+ *
+ * @author Rajiv Singla. Creation Date: 11/7/2016.
+ */
+public class TCACEFProcessorContext extends AbstractProcessorContext {
+
+ private static final long serialVersionUID = 1165992675657025413L;
+
+ private final TCAPolicy tcaPolicy;
+ private EventListener eventListener;
+ private MetricsPerFunctionalRole metricsPerFunctionalRole;
+
+ public TCACEFProcessorContext(final String message, boolean canProcessingContinue, final TCAPolicy tcaPolicy) {
+ super(message, canProcessingContinue);
+ this.tcaPolicy = tcaPolicy;
+ // present only if cef incoming message can be parsed successfully to Event Listener Object
+ this.eventListener = null;
+ // present only if there are any threshold violations are detected
+ this.metricsPerFunctionalRole = null;
+ }
+
+ // Auxiliary Constructor which default canProcessingContinue Flag to true
+ public TCACEFProcessorContext(final String message, final TCAPolicy tcaPolicy) {
+ this(message, true, tcaPolicy);
+ }
+
+ /**
+ * Returns {@link TCAPolicy} Object
+ *
+ * @return TCA Policy
+ */
+ public TCAPolicy getTCAPolicy() {
+ return tcaPolicy;
+ }
+
+ /**
+ * Returns Common Event Format {@link EventListener} if present else null
+ *
+ * @return CEF Event Listener
+ */
+ public EventListener getCEFEventListener() {
+ return eventListener;
+ }
+
+
+ /**
+ * Sets new {@link EventListener}
+ *
+ * @param eventListener set new value for CEF event listener
+ */
+ public void setCEFEventListener(final EventListener eventListener) {
+ this.eventListener = eventListener;
+ }
+
+
+ /**
+ * Returns TCA Policy {@link MetricsPerFunctionalRole} which was has violated Threshold for the CEF Message if
+ * present else null
+ *
+ * @return Violated Threshold Optional
+ */
+ public MetricsPerFunctionalRole getMetricsPerFunctionalRole() {
+ return metricsPerFunctionalRole;
+ }
+
+ /**
+ * Assign new TCA Policy {@link MetricsPerFunctionalRole} which was has violated Threshold for the CEF Message
+ *
+ * @param metricsPerFunctionalRole new value for Metrics Per Functional Role with violated threshold
+ */
+ public void setMetricsPerFunctionalRole(MetricsPerFunctionalRole metricsPerFunctionalRole) {
+ this.metricsPerFunctionalRole = metricsPerFunctionalRole;
+ }
+
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAAppConfig.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAAppConfig.java
new file mode 100644
index 0000000..1f7c32d
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAAppConfig.java
@@ -0,0 +1,96 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.settings;
+
+import com.google.common.base.Objects;
+import org.openecomp.dcae.analytics.common.AnalyticsConstants;
+import org.openecomp.dcae.analytics.common.CDAPComponentsConstants;
+import org.openecomp.dcae.analytics.common.cdap.settings.CDAPBaseAppConfig;
+
+
+/**
+ * Contains CDAP App Config Settings for TCA Application
+ *
+ * @author Rajiv Singla. Creation Date: 11/2/2016.
+ */
+public class TCAAppConfig extends CDAPBaseAppConfig {
+
+
+ private static final long serialVersionUID = -6775885444808279443L;
+
+ private String tcaSubscriberOutputStreamName;
+ private Integer thresholdCalculatorFlowletInstances;
+
+ private String tcaVESMessageStatusTableName;
+ private Integer tcaVESMessageStatusTableTTLSeconds;
+ private String tcaVESAlertsTableName;
+ private Integer tcaVESAlertsTableTTLSeconds;
+
+
+ public TCAAppConfig() {
+ appName = CDAPComponentsConstants.TCA_DEFAULT_NAME_APP;
+ appDescription = CDAPComponentsConstants.TCA_DEFAULT_DESCRIPTION_APP;
+ tcaSubscriberOutputStreamName = CDAPComponentsConstants.TCA_DEFAULT_SUBSCRIBER_OUTPUT_NAME_STREAM;
+ thresholdCalculatorFlowletInstances = AnalyticsConstants.TCA_DEFAULT_THRESHOLD_CALCULATOR_FLOWLET_INSTANCES;
+ tcaVESMessageStatusTableName = CDAPComponentsConstants.TCA_DEFAULT_VES_MESSAGE_STATUS_NAME_TABLE;
+ tcaVESMessageStatusTableTTLSeconds = AnalyticsConstants.TCA_DEFAULT_VES_MESSAGE_STATUS_TTL_TABLE;
+ tcaVESAlertsTableName = CDAPComponentsConstants.TCA_DEFAULT_VES_ALERTS_NAME_TABLE;
+ tcaVESAlertsTableTTLSeconds = AnalyticsConstants.TCA_DEFAULT_VES_ALERTS_TTL_TABLE;
+ }
+
+ public String getTcaSubscriberOutputStreamName() {
+ return tcaSubscriberOutputStreamName;
+ }
+
+ public String getTcaVESMessageStatusTableName() {
+ return tcaVESMessageStatusTableName;
+ }
+
+ public Integer getTcaVESMessageStatusTableTTLSeconds() {
+ return tcaVESMessageStatusTableTTLSeconds;
+ }
+
+ public String getTcaVESAlertsTableName() {
+ return tcaVESAlertsTableName;
+ }
+
+ public Integer getTcaVESAlertsTableTTLSeconds() {
+ return tcaVESAlertsTableTTLSeconds;
+ }
+
+ public Integer getThresholdCalculatorFlowletInstances() {
+ return thresholdCalculatorFlowletInstances;
+ }
+
+ @Override
+ public String toString() {
+ return Objects.toStringHelper(this)
+ .add("appName", appName)
+ .add("appDescription", appDescription)
+ .add("tcaSubscriberOutputStreamName", tcaSubscriberOutputStreamName)
+ .add("thresholdCalculatorFlowletInstances", thresholdCalculatorFlowletInstances)
+ .add("tcaVESMessageStatusTableName", tcaVESMessageStatusTableName)
+ .add("tcaVESMessageStatusTableTTLSeconds", tcaVESMessageStatusTableTTLSeconds)
+ .add("tcaVESAlertsTableName", tcaVESAlertsTableName)
+ .add("tcaVESAlertsTableTTLSeconds", tcaVESAlertsTableTTLSeconds)
+ .toString();
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAAppPreferences.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAAppPreferences.java
new file mode 100644
index 0000000..8eddb3c
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAAppPreferences.java
@@ -0,0 +1,262 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.settings;
+
+import com.google.common.base.Objects;
+import org.openecomp.dcae.analytics.common.cdap.settings.CDAPAppPreferences;
+
+import static org.openecomp.dcae.analytics.common.AnalyticsConstants.TCA_DEFAULT_PUBLISHER_MAX_BATCH_QUEUE_SIZE;
+import static org.openecomp.dcae.analytics.common.AnalyticsConstants.TCA_DEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE;
+import static org.openecomp.dcae.analytics.common.AnalyticsConstants.TCA_DEFAULT_PUBLISHER_POLLING_INTERVAL_MS;
+import static org.openecomp.dcae.analytics.common.AnalyticsConstants.TCA_DEFAULT_SUBSCRIBER_POLLING_INTERVAL_MS;
+
+/**
+ * <p>
+ * App Preferences for Analytics TCA (Threshold Crossing Alert) App
+ * <p>
+ * @author Rajiv Singla. Creation Date: 10/4/2016.
+ */
+public class TCAAppPreferences implements CDAPAppPreferences {
+
+ private static final long serialVersionUID = -685010752560182764L;
+
+ // subscriber preferences
+ protected String subscriberHostName;
+
+ protected Integer subscriberHostPort;
+
+ protected String subscriberTopicName;
+
+ protected String subscriberProtocol;
+
+ protected String subscriberUserName;
+
+ protected String subscriberUserPassword;
+
+ protected String subscriberContentType;
+
+ protected String subscriberConsumerId;
+
+ protected String subscriberConsumerGroup;
+
+ protected Integer subscriberTimeoutMS;
+
+ protected Integer subscriberMessageLimit;
+
+ protected Integer subscriberPollingInterval;
+
+ // publisher preferences
+ protected String publisherHostName;
+
+ protected Integer publisherHostPort;
+
+ protected String publisherTopicName;
+
+ protected String publisherProtocol;
+
+ protected String publisherUserName;
+
+ protected String publisherUserPassword;
+
+ protected String publisherContentType;
+
+ protected Integer publisherMaxBatchSize;
+
+ protected Integer publisherMaxRecoveryQueueSize;
+
+ protected Integer publisherPollingInterval;
+
+
+ public TCAAppPreferences() {
+
+ // subscriber defaults
+ subscriberPollingInterval = TCA_DEFAULT_SUBSCRIBER_POLLING_INTERVAL_MS;
+
+ // publisher defaults
+ publisherMaxBatchSize = TCA_DEFAULT_PUBLISHER_MAX_BATCH_QUEUE_SIZE;
+ publisherMaxRecoveryQueueSize = TCA_DEFAULT_PUBLISHER_MAX_RECOVERY_QUEUE_SIZE;
+ publisherPollingInterval = TCA_DEFAULT_PUBLISHER_POLLING_INTERVAL_MS;
+
+ }
+
+ public String getSubscriberHostName() {
+ return subscriberHostName;
+ }
+
+ public Integer getSubscriberHostPort() {
+ return subscriberHostPort;
+ }
+
+ public String getSubscriberTopicName() {
+ return subscriberTopicName;
+ }
+
+ public String getSubscriberProtocol() {
+ return subscriberProtocol;
+ }
+
+ public String getSubscriberUserName() {
+ return subscriberUserName;
+ }
+
+ public String getSubscriberUserPassword() {
+ return subscriberUserPassword;
+ }
+
+ public String getSubscriberContentType() {
+ return subscriberContentType;
+ }
+
+ public String getSubscriberConsumerId() {
+ return subscriberConsumerId;
+ }
+
+ public String getSubscriberConsumerGroup() {
+ return subscriberConsumerGroup;
+ }
+
+ public Integer getSubscriberTimeoutMS() {
+ return subscriberTimeoutMS;
+ }
+
+ public Integer getSubscriberMessageLimit() {
+ return subscriberMessageLimit;
+ }
+
+ public Integer getSubscriberPollingInterval() {
+ return subscriberPollingInterval;
+ }
+
+ public String getPublisherHostName() {
+ return publisherHostName;
+ }
+
+ public Integer getPublisherHostPort() {
+ return publisherHostPort;
+ }
+
+ public String getPublisherTopicName() {
+ return publisherTopicName;
+ }
+
+ public String getPublisherProtocol() {
+ return publisherProtocol;
+ }
+
+ public String getPublisherUserName() {
+ return publisherUserName;
+ }
+
+ public String getPublisherUserPassword() {
+ return publisherUserPassword;
+ }
+
+ public String getPublisherContentType() {
+ return publisherContentType;
+ }
+
+ public Integer getPublisherMaxBatchSize() {
+ return publisherMaxBatchSize;
+ }
+
+ public Integer getPublisherMaxRecoveryQueueSize() {
+ return publisherMaxRecoveryQueueSize;
+ }
+
+ public Integer getPublisherPollingInterval() {
+ return publisherPollingInterval;
+ }
+
+
+ public void setSubscriberHostName(String subscriberHostName) {
+ this.subscriberHostName = subscriberHostName;
+ }
+
+ public void setSubscriberHostPort(Integer subscriberHostPort) {
+ this.subscriberHostPort = subscriberHostPort;
+ }
+
+ public void setSubscriberTopicName(String subscriberTopicName) {
+ this.subscriberTopicName = subscriberTopicName;
+ }
+
+ public void setSubscriberProtocol(String subscriberProtocol) {
+ this.subscriberProtocol = subscriberProtocol;
+ }
+
+ public void setSubscriberUserName(String subscriberUserName) {
+ this.subscriberUserName = subscriberUserName;
+ }
+
+ public void setSubscriberUserPassword(String subscriberUserPassword) {
+ this.subscriberUserPassword = subscriberUserPassword;
+ }
+
+ public void setPublisherHostName(String publisherHostName) {
+ this.publisherHostName = publisherHostName;
+ }
+
+ public void setPublisherHostPort(Integer publisherHostPort) {
+ this.publisherHostPort = publisherHostPort;
+ }
+
+ public void setPublisherTopicName(String publisherTopicName) {
+ this.publisherTopicName = publisherTopicName;
+ }
+
+ public void setPublisherProtocol(String publisherProtocol) {
+ this.publisherProtocol = publisherProtocol;
+ }
+
+ public void setPublisherUserName(String publisherUserName) {
+ this.publisherUserName = publisherUserName;
+ }
+
+ public void setPublisherUserPassword(String publisherUserPassword) {
+ this.publisherUserPassword = publisherUserPassword;
+ }
+
+ @Override
+ public String toString() {
+ return Objects.toStringHelper(this)
+ .add("subscriberHostName", subscriberHostName)
+ .add("subscriberHostPort", subscriberHostPort)
+ .add("subscriberTopicName", subscriberTopicName)
+ .add("subscriberProtocol", subscriberProtocol)
+ .add("subscriberUserName", subscriberUserName)
+ .add("subscriberContentType", subscriberContentType)
+ .add("subscriberConsumerId", subscriberConsumerId)
+ .add("subscriberConsumerGroup", subscriberConsumerGroup)
+ .add("subscriberTimeoutMS", subscriberTimeoutMS)
+ .add("subscriberMessageLimit", subscriberMessageLimit)
+ .add("subscriberPollingInterval", subscriberPollingInterval)
+ .add("publisherHostName", publisherHostName)
+ .add("publisherHostPort", publisherHostPort)
+ .add("publisherTopicName", publisherTopicName)
+ .add("publisherProtocol", publisherProtocol)
+ .add("publisherUserName", publisherUserName)
+ .add("publisherContentType", publisherContentType)
+ .add("publisherMaxBatchSize", publisherMaxBatchSize)
+ .add("publisherMaxRecoveryQueueSize", publisherMaxRecoveryQueueSize)
+ .add("publisherPollingInterval", publisherPollingInterval)
+ .toString();
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAPolicyPreferences.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAPolicyPreferences.java
new file mode 100644
index 0000000..cbbf550
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/settings/TCAPolicyPreferences.java
@@ -0,0 +1,36 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.settings;
+
+import org.openecomp.dcae.analytics.common.cdap.settings.CDAPAppPreferences;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.TCAPolicy;
+
+/**
+ * A wrapper over {@link TCAPolicy} to act as app Preferences as TCA Policy is passed
+ * by controller as runtime arguments from CDAP app preferences
+ * <p>
+ * @author Rajiv Singla. Creation Date: 11/29/2016.
+ */
+public class TCAPolicyPreferences extends TCAPolicy implements CDAPAppPreferences {
+
+ private static final long serialVersionUID = -2957485388641574043L;
+
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToPublisherConfigMapper.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToPublisherConfigMapper.java
new file mode 100644
index 0000000..f332681
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToPublisherConfigMapper.java
@@ -0,0 +1,82 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.utils;
+
+import com.google.common.base.Function;
+import org.openecomp.dcae.analytics.dmaap.domain.config.DMaaPMRPublisherConfig;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppPreferences;
+
+import javax.annotation.Nonnull;
+
+import static org.openecomp.dcae.analytics.common.utils.ValidationUtils.isEmpty;
+
+/**
+ * Function which translates {@link TCAAppPreferences} to {@link DMaaPMRPublisherConfig}
+ *
+ * @author Rajiv Singla. Creation Date: 11/17/2016.
+ */
+public class AppPreferencesToPublisherConfigMapper implements Function<TCAAppPreferences, DMaaPMRPublisherConfig> {
+
+ public static DMaaPMRPublisherConfig map(final TCAAppPreferences tcaAppPreferences) {
+ return new AppPreferencesToPublisherConfigMapper().apply(tcaAppPreferences);
+ }
+
+ @Nonnull
+ @Override
+ public DMaaPMRPublisherConfig apply(@Nonnull TCAAppPreferences tcaAppPreferences) {
+
+ // Create a new publisher settings builder
+ final DMaaPMRPublisherConfig.Builder publisherConfigBuilder = new DMaaPMRPublisherConfig.Builder(
+ tcaAppPreferences.getPublisherHostName(), tcaAppPreferences.getPublisherTopicName());
+
+ // Setup up any optional publisher parameters if they are present
+ final Integer publisherHostPort = tcaAppPreferences.getPublisherHostPort();
+ if (publisherHostPort != null) {
+ publisherConfigBuilder.setPortNumber(publisherHostPort);
+ }
+ final String publisherProtocol = tcaAppPreferences.getPublisherProtocol();
+ if (!isEmpty(publisherProtocol)) {
+ publisherConfigBuilder.setProtocol(publisherProtocol);
+ }
+ final String publisherUserName = tcaAppPreferences.getPublisherUserName();
+ if (!isEmpty(publisherUserName)) {
+ publisherConfigBuilder.setUserName(publisherUserName);
+ }
+ final String publisherUserPassword = tcaAppPreferences.getPublisherUserPassword();
+ if (!isEmpty(publisherUserPassword)) {
+ publisherConfigBuilder.setUserPassword(publisherUserPassword);
+ }
+ final String publisherContentType = tcaAppPreferences.getPublisherContentType();
+ if (!isEmpty(publisherContentType)) {
+ publisherConfigBuilder.setContentType(publisherContentType);
+ }
+ final Integer publisherMaxBatchSize = tcaAppPreferences.getPublisherMaxBatchSize();
+ if (publisherMaxBatchSize != null) {
+ publisherConfigBuilder.setMaxBatchSize(publisherMaxBatchSize);
+ }
+ final Integer publisherMaxRecoveryQueueSize = tcaAppPreferences.getPublisherMaxRecoveryQueueSize();
+ if (publisherMaxRecoveryQueueSize != null) {
+ publisherConfigBuilder.setMaxRecoveryQueueSize(publisherMaxRecoveryQueueSize);
+ }
+
+ return publisherConfigBuilder.build();
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToSubscriberConfigMapper.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToSubscriberConfigMapper.java
new file mode 100644
index 0000000..d0e7f1f
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToSubscriberConfigMapper.java
@@ -0,0 +1,99 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.utils;
+
+import com.google.common.base.Function;
+import org.openecomp.dcae.analytics.dmaap.domain.config.DMaaPMRSubscriberConfig;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppPreferences;
+
+import javax.annotation.Nonnull;
+
+import static org.openecomp.dcae.analytics.common.utils.ValidationUtils.isEmpty;
+
+/**
+ * Function which translates {@link TCAAppPreferences} to {@link DMaaPMRSubscriberConfig}
+ *
+ * @author Rajiv Singla. Creation Date: 11/17/2016.
+ */
+public class AppPreferencesToSubscriberConfigMapper implements Function<TCAAppPreferences, DMaaPMRSubscriberConfig> {
+
+ public static DMaaPMRSubscriberConfig map(final TCAAppPreferences tcaAppPreferences) {
+ return new AppPreferencesToSubscriberConfigMapper().apply(tcaAppPreferences);
+ }
+
+ @Nonnull
+ @Override
+ public DMaaPMRSubscriberConfig apply(@Nonnull TCAAppPreferences tcaAppPreferences) {
+
+ // Create a new subscriber settings builder
+ final DMaaPMRSubscriberConfig.Builder subscriberConfigBuilder = new DMaaPMRSubscriberConfig.Builder(
+ tcaAppPreferences.getSubscriberHostName(), tcaAppPreferences.getSubscriberTopicName());
+
+ // Setup up any optional subscriber parameters if they are present
+ final Integer subscriberHostPortNumber = tcaAppPreferences.getSubscriberHostPort();
+ if (subscriberHostPortNumber != null) {
+ subscriberConfigBuilder.setPortNumber(subscriberHostPortNumber);
+ }
+
+ final String subscriberProtocol = tcaAppPreferences.getSubscriberProtocol();
+ if (!isEmpty(subscriberProtocol)) {
+ subscriberConfigBuilder.setProtocol(subscriberProtocol);
+ }
+
+ final String subscriberUserName = tcaAppPreferences.getSubscriberUserName();
+ if (!isEmpty(subscriberUserName)) {
+ subscriberConfigBuilder.setUserName(subscriberUserName);
+ }
+
+ final String subscriberUserPassword = tcaAppPreferences.getSubscriberUserPassword();
+ if (!isEmpty(subscriberUserPassword)) {
+ subscriberConfigBuilder.setUserPassword(subscriberUserPassword);
+ }
+
+ final String subscriberContentType = tcaAppPreferences.getSubscriberContentType();
+ if (!isEmpty(subscriberContentType)) {
+ subscriberConfigBuilder.setContentType(subscriberContentType);
+ }
+
+ final String subscriberConsumerId = tcaAppPreferences.getSubscriberConsumerId();
+ if (!isEmpty(subscriberConsumerId)) {
+ subscriberConfigBuilder.setConsumerId(subscriberConsumerId);
+ }
+
+ final String subscriberConsumerGroup = tcaAppPreferences.getSubscriberConsumerGroup();
+ if (!isEmpty(subscriberConsumerGroup)) {
+ subscriberConfigBuilder.setConsumerGroup(subscriberConsumerGroup);
+ }
+
+ final Integer subscriberTimeoutMS = tcaAppPreferences.getSubscriberTimeoutMS();
+ if (subscriberTimeoutMS != null) {
+ subscriberConfigBuilder.setTimeoutMS(subscriberTimeoutMS);
+ }
+ final Integer subscriberMessageLimit = tcaAppPreferences.getSubscriberMessageLimit();
+ if (subscriberMessageLimit != null) {
+ subscriberConfigBuilder.setMessageLimit(subscriberMessageLimit);
+ }
+
+ // return Subscriber settings
+ return subscriberConfigBuilder.build();
+
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/TCAUtils.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/TCAUtils.java
new file mode 100644
index 0000000..27df27f
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/utils/TCAUtils.java
@@ -0,0 +1,825 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.utils;
+
+import co.cask.cdap.api.RuntimeContext;
+import com.google.common.base.Function;
+import com.google.common.base.Optional;
+import com.google.common.base.Predicate;
+import com.google.common.base.Predicates;
+import com.google.common.base.Supplier;
+import com.google.common.base.Suppliers;
+import com.google.common.collect.HashBasedTable;
+import com.google.common.collect.ImmutableList;
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+import com.google.common.collect.Table;
+import com.jayway.jsonpath.DocumentContext;
+import com.jayway.jsonpath.JsonPath;
+import com.jayway.jsonpath.TypeRef;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.lang3.tuple.ImmutablePair;
+import org.apache.commons.lang3.tuple.Pair;
+import org.openecomp.dcae.analytics.common.AnalyticsConstants;
+import org.openecomp.dcae.analytics.common.exception.DCAEAnalyticsRuntimeException;
+import org.openecomp.dcae.analytics.common.exception.MessageProcessingException;
+import org.openecomp.dcae.analytics.common.service.processor.AbstractMessageProcessor;
+import org.openecomp.dcae.analytics.common.service.processor.GenericMessageChainProcessor;
+import org.openecomp.dcae.analytics.model.domain.cef.CommonEventHeader;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.openecomp.dcae.analytics.model.domain.cef.EventSeverity;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.Direction;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.MetricsPerFunctionalRole;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.TCAPolicy;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.Threshold;
+import org.openecomp.dcae.analytics.model.facade.tca.AAI;
+import org.openecomp.dcae.analytics.model.facade.tca.TCAVESResponse;
+import org.openecomp.dcae.analytics.model.util.AnalyticsModelJsonUtils;
+import org.openecomp.dcae.analytics.tca.persistance.TCAVESAlertEntity;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFJsonProcessor;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFPolicyDomainFilter;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFPolicyFunctionalRoleFilter;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFPolicyThresholdsProcessor;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFProcessorContext;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppPreferences;
+import org.openecomp.dcae.analytics.tca.settings.TCAPolicyPreferences;
+import org.openecomp.dcae.analytics.tca.validator.TCAPolicyPreferencesValidator;
+import org.openecomp.dcae.analytics.tca.validator.TCAPreferencesValidator;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedMap;
+import java.util.TreeMap;
+import java.util.UUID;
+
+import javax.annotation.Nonnull;
+import javax.annotation.Nullable;
+
+import static com.google.common.collect.Lists.newArrayList;
+import static org.openecomp.dcae.analytics.common.AnalyticsConstants.TCA_POLICY_METRICS_PER_FUNCTIONAL_ROLE_PATH;
+import static org.openecomp.dcae.analytics.common.utils.ValidationUtils.validateSettings;
+
+/**
+ * Utility Helper methods for TCA sub module only. Extends {@link AnalyticsModelJsonUtils} to get
+ * pre configured Json Object Mapper understand serialization and deserialization of CEF Message
+ * and TCA Policy
+ *
+ * @author Rajiv Singla. Creation Date: 10/24/2016.
+ */
+public abstract class TCAUtils extends AnalyticsModelJsonUtils {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCAUtils.class);
+
+ /**
+ * Threshold Comparator which is used to order thresholds based on their severity e.g. ( CRITICAL, MAJOR, MINOR,
+ * WARNING )
+ */
+ private static final Comparator<Threshold> THRESHOLD_COMPARATOR = new Comparator<Threshold>() {
+ @Override
+ public int compare(Threshold threshold1, Threshold threshold2) {
+ return threshold1.getSeverity().compareTo(threshold2.getSeverity());
+ }
+ };
+
+
+ /**
+ * {@link Function} that extracts {@link TCAPolicy#getMetricsPerFunctionalRole()} from {@link TCAPolicy}
+ *
+ * @return TCA Policy Metrics Per Functional Roles List
+ */
+ public static Function<TCAPolicy, List<MetricsPerFunctionalRole>> tcaPolicyMetricsExtractorFunction() {
+ return new Function<TCAPolicy, List<MetricsPerFunctionalRole>>() {
+ @Nullable
+ @Override
+ public List<MetricsPerFunctionalRole> apply(@Nonnull TCAPolicy tcaPolicy) {
+ return tcaPolicy.getMetricsPerFunctionalRole();
+ }
+ };
+ }
+
+ /**
+ * {@link Function} that extracts {@link MetricsPerFunctionalRole#getFunctionalRole()} from
+ * {@link MetricsPerFunctionalRole}
+ *
+ * @return Functional role or a Metrics Per Functional Role object
+ */
+ public static Function<MetricsPerFunctionalRole, String> tcaFunctionalRoleExtractorFunction() {
+ return new Function<MetricsPerFunctionalRole, String>() {
+ @Override
+ public String apply(@Nonnull MetricsPerFunctionalRole metricsPerFunctionalRole) {
+ return metricsPerFunctionalRole.getFunctionalRole();
+ }
+ };
+ }
+
+
+ /**
+ * Extracts {@link TCAPolicy} Functional Roles
+ *
+ * @param tcaPolicy TCA Policy
+ * @return List of functional Roles in the tca Policy
+ */
+ public static List<String> getPolicyFunctionalRoles(@Nonnull final TCAPolicy tcaPolicy) {
+ final List<MetricsPerFunctionalRole> metricsPerFunctionalRoles =
+ tcaPolicyMetricsExtractorFunction().apply(tcaPolicy);
+
+ return Lists.transform(metricsPerFunctionalRoles, tcaFunctionalRoleExtractorFunction());
+ }
+
+ /**
+ * A {@link Supplier} which caches {@link TCAPolicy} Functional Roles as they are not expected to
+ * change during runtime
+ *
+ * @param tcaPolicy TCA Policy
+ * @return a Supplier that memoize the Functional roles
+ */
+ public static Supplier<List<String>> getPolicyFunctionalRoleSupplier(@Nonnull final TCAPolicy tcaPolicy) {
+ return Suppliers.memoize(new Supplier<List<String>>() {
+ @Override
+ public List<String> get() {
+ return getPolicyFunctionalRoles(tcaPolicy);
+ }
+ });
+ }
+
+
+ /**
+ * Creates a Table to lookup thresholds of a {@link TCAPolicy} by its Functional Role and Threshold Field path
+ *
+ * @param tcaPolicy TCA Policy
+ * @return A table with Keys of functional role and field path containing List of threshold as values
+ */
+ public static Table<String, String, List<Threshold>> getPolicyFRThresholdsTable(final TCAPolicy tcaPolicy) {
+ final Table<String, String, List<Threshold>> domainFRTable = HashBasedTable.create();
+ for (MetricsPerFunctionalRole metricsPerFunctionalRole : tcaPolicy.getMetricsPerFunctionalRole()) {
+ final String functionalRole = metricsPerFunctionalRole.getFunctionalRole();
+ final List<Threshold> thresholds = metricsPerFunctionalRole.getThresholds();
+ for (Threshold threshold : thresholds) {
+ final List<Threshold> existingThresholds = domainFRTable.get(functionalRole, threshold.getFieldPath());
+ if (existingThresholds == null) {
+ final LinkedList<Threshold> newThresholdList = new LinkedList<>();
+ newThresholdList.add(threshold);
+ domainFRTable.put(functionalRole, threshold.getFieldPath(), newThresholdList);
+ } else {
+ domainFRTable.get(functionalRole, threshold.getFieldPath()).add(threshold);
+ }
+ }
+ }
+ return domainFRTable;
+ }
+
+
+ /**
+ * A {@link Supplier} which caches Policy Functional Role and Threshold Field Path Thresholds lookup table
+ *
+ * @param tcaPolicy TCA Policy
+ * @return Cached Supplier for table with Keys of functional role and field path containing thresholds as values
+ */
+ public static Supplier<Table<String, String, List<Threshold>>> getPolicyFRThresholdsTableSupplier
+ (final TCAPolicy tcaPolicy) {
+ return Suppliers.memoize(new Supplier<Table<String, String, List<Threshold>>>() {
+ @Override
+ public Table<String, String, List<Threshold>> get() {
+ return getPolicyFRThresholdsTable(tcaPolicy);
+ }
+ });
+ }
+
+
+ /**
+ * Parses and validates Runtime Arguments to {@link TCAAppPreferences} object
+ *
+ * @param runtimeContext Runtime Context
+ *
+ * @return validated runtime arguments as {@link TCAAppPreferences} object
+ */
+ public static TCAAppPreferences getValidatedTCAAppPreferences(final RuntimeContext runtimeContext) {
+ // Parse runtime arguments
+ final Map<String, String> runtimeArguments = runtimeContext.getRuntimeArguments();
+ final TCAAppPreferences tcaAppPreferences =
+ ANALYTICS_MODEL_OBJECT_MAPPER.convertValue(runtimeArguments, TCAAppPreferences.class);
+
+ // Update values of app preferences based on controller passed arguments if required
+ final TCAAppPreferences updatedTCAAppPreferences =
+ updateDMaaPPubSubValues(runtimeArguments, tcaAppPreferences);
+
+ // Validate runtime arguments
+ validateSettings(updatedTCAAppPreferences, new TCAPreferencesValidator());
+
+ return tcaAppPreferences;
+ }
+
+
+ /**
+ * Updates DMaaP Subscriber and Publisher Urls if present in runtime arguments.
+ * Maps runtime arguments property - dmaap.in.event-input.dmaapUrl to Subscriber host, port and topic
+ * Maps runtime arguments property - dmaap.out.alert-output.dmaapUrl to Publisher host, port and topic
+ *
+ * @param runtimeArguments Runtime arguments passed in to TCA App by controller
+ * @param tcaAppPreferences TCA App Preferences
+ *
+ * @return TCA App Preferences which updated Publisher and Subscriber host,port and topic values
+ */
+ public static TCAAppPreferences updateDMaaPPubSubValues(final Map<String, String> runtimeArguments,
+ final TCAAppPreferences tcaAppPreferences) {
+
+ final String subscriberPropertyKey = "dmaap.in.event-input.dmaapUrl";
+ final String subscriberPropertyValue = runtimeArguments.get(subscriberPropertyKey);
+
+ if (subscriberPropertyValue != null) {
+ LOG.debug("Updating value for DMaaP Subscriber to values provided in property: {} with value: {}",
+ subscriberPropertyKey, subscriberPropertyValue);
+ final URL subscriberUrl = parseURL(subscriberPropertyValue);
+ tcaAppPreferences.setSubscriberProtocol(subscriberUrl.getProtocol());
+ tcaAppPreferences.setSubscriberHostName(subscriberUrl.getHost());
+ final int subscriberUrlPort = subscriberUrl.getPort() != -1 ?
+ Integer.valueOf(subscriberUrl.getPort()) : getDefaultDMaaPPort(subscriberUrl.getProtocol());
+ tcaAppPreferences.setSubscriberHostPort(subscriberUrlPort);
+ tcaAppPreferences.setSubscriberTopicName(subscriberUrl.getPath().substring(1));
+ }
+
+ final String subscriberUserNamePropertyKey = "dmaap.in.event-input.dmaapUserName";
+ if (runtimeArguments.containsKey(subscriberUserNamePropertyKey)) {
+ tcaAppPreferences.setSubscriberUserName(runtimeArguments.get(subscriberUserNamePropertyKey));
+ }
+ final String subscriberPasswordPropertyKey = "dmaap.in.event-input.dmaapPassword";
+ if (runtimeArguments.containsKey(subscriberPasswordPropertyKey)) {
+ tcaAppPreferences.setSubscriberUserPassword(runtimeArguments.get(subscriberPasswordPropertyKey));
+ }
+
+ final String publisherPropertyKey = "dmaap.out.alert-output.dmaapUrl";
+ final String publisherPropertyValue = runtimeArguments.get(publisherPropertyKey);
+ if (publisherPropertyValue != null) {
+ LOG.debug("Updating value for DMaaP Publisher to values provided in property: {} with value: {}",
+ publisherPropertyKey, publisherPropertyValue);
+ final URL publisherUrl = parseURL(publisherPropertyValue);
+ tcaAppPreferences.setPublisherProtocol(publisherUrl.getProtocol());
+ tcaAppPreferences.setPublisherHostName(publisherUrl.getHost());
+ final int publisherUrlPort = publisherUrl.getPort() != -1 ?
+ Integer.valueOf(publisherUrl.getPort()) : getDefaultDMaaPPort(publisherUrl.getProtocol());
+ tcaAppPreferences.setPublisherHostPort(publisherUrlPort);
+ tcaAppPreferences.setPublisherTopicName(publisherUrl.getPath().substring(1));
+ }
+
+ final String publisherUserNamePropertyKey = "dmaap.out.alert-output.dmaapUserName";
+ if (runtimeArguments.containsKey(publisherUserNamePropertyKey)) {
+ tcaAppPreferences.setPublisherUserName(runtimeArguments.get(publisherUserNamePropertyKey));
+ }
+ final String publisherPasswordPropertyKey = "dmaap.out.alert-output.dmaapPassword";
+ if (runtimeArguments.containsKey(publisherPasswordPropertyKey)) {
+ tcaAppPreferences.setPublisherUserPassword(runtimeArguments.get(publisherPasswordPropertyKey));
+ }
+
+
+ return tcaAppPreferences;
+ }
+
+ /**
+ * Sets up default DMaaP Port if not provided with DMaaP URL
+ *
+ * @param protocol protocol e.g. http or https
+ *
+ * @return default DMaaP MR port number
+ */
+ private static int getDefaultDMaaPPort(final String protocol) {
+ if ("http".equals(protocol)) {
+ return 3904;
+ } else if ("https".equals(protocol)) {
+ return 3905;
+ } else {
+ return 80;
+ }
+ }
+
+ /**
+ * Parses provided DMaaP MR URL string to {@link URL} object
+ *
+ * @param urlString url string
+ *
+ * @return url object
+ */
+ private static URL parseURL(final String urlString) {
+ try {
+ return new URL(urlString);
+ } catch (MalformedURLException e) {
+ final String errorMessage = String.format("Invalid URL format: %s", urlString);
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e);
+ }
+ }
+
+
+ /**
+ * Creates a {@link GenericMessageChainProcessor} of {@link TCACEFJsonProcessor},
+ * {@link TCACEFPolicyDomainFilter} and {@link TCACEFPolicyFunctionalRoleFilter}s to
+ * filter out messages which does not match policy domain or functional role
+ *
+ * @param cefMessage CEF Message
+ * @param tcaPolicy TCA Policy
+ * @return Message Process Context after processing filter chain
+ */
+ public static TCACEFProcessorContext filterCEFMessage(@Nullable final String cefMessage,
+ @Nonnull final TCAPolicy tcaPolicy) {
+
+ final TCACEFJsonProcessor jsonProcessor = new TCACEFJsonProcessor();
+ final TCACEFPolicyDomainFilter domainFilter = new TCACEFPolicyDomainFilter();
+ final TCACEFPolicyFunctionalRoleFilter functionalRoleFilter = new TCACEFPolicyFunctionalRoleFilter();
+ // Create a list of message processors
+ final ImmutableList<AbstractMessageProcessor<TCACEFProcessorContext>> messageProcessors =
+ ImmutableList.of(jsonProcessor, domainFilter, functionalRoleFilter);
+ final TCACEFProcessorContext processorContext = new TCACEFProcessorContext(cefMessage, tcaPolicy);
+ // Create a message processors chain
+ final GenericMessageChainProcessor<TCACEFProcessorContext> tcaProcessingChain =
+ new GenericMessageChainProcessor<>(messageProcessors, processorContext);
+ // process chain
+ return tcaProcessingChain.processChain();
+ }
+
+
+ /**
+ * Extracts json path values for given json Field Paths from using Json path notation. Assumes
+ * that values extracted are always long
+ *
+ * @param message CEF Message
+ * @param jsonFieldPaths Json Field Paths
+ * @return Map containing key as json path and values as values associated with that json path
+ */
+ public static Map<String, List<Long>> getJsonPathValue(@Nonnull String message, @Nonnull Set<String>
+ jsonFieldPaths) {
+
+ final Map<String, List<Long>> jsonFieldPathMap = new HashMap<>();
+ final DocumentContext documentContext = JsonPath.parse(message);
+
+ for (String jsonFieldPath : jsonFieldPaths) {
+ final List<Long> jsonFieldValues = documentContext.read(jsonFieldPath, new TypeRef<List<Long>>() {
+ });
+ // If Json Field Values are not or empty
+ if (jsonFieldValues != null && !jsonFieldValues.isEmpty()) {
+ // Filter out all null values in the filed values list
+ final List<Long> nonNullValues = Lists.newLinkedList(Iterables.filter(jsonFieldValues,
+ Predicates.<Long>notNull()));
+ // If there are non null values put them in the map
+ if (!nonNullValues.isEmpty()) {
+ jsonFieldPathMap.put(jsonFieldPath, nonNullValues);
+ }
+ }
+ }
+
+ return jsonFieldPathMap;
+ }
+
+ /**
+ * Computes if any CEF Message Fields have violated any Policy Thresholds. For the same policy field path
+ * it applies threshold in order of their severity and record the first threshold per message field path
+ *
+ * @param messageFieldValues Field Path Values extracted from CEF Message
+ * @param fieldThresholds Policy Thresholds for Field Path
+ * @return Optional of violated threshold for a field path
+ */
+ public static Optional<Threshold> thresholdCalculator(final List<Long> messageFieldValues, final List<Threshold>
+ fieldThresholds) {
+ // order thresholds by severity
+ Collections.sort(fieldThresholds, THRESHOLD_COMPARATOR);
+ // Now apply each threshold to field values
+ for (Threshold fieldThreshold : fieldThresholds) {
+ for (Long messageFieldValue : messageFieldValues) {
+ final Boolean isThresholdViolated =
+ fieldThreshold.getDirection().operate(messageFieldValue, fieldThreshold.getThresholdValue());
+ if (isThresholdViolated) {
+ return Optional.of(fieldThreshold);
+ }
+ }
+ }
+ return Optional.absent();
+ }
+
+ /**
+ * Prioritize Threshold to be reported in case there was multiple TCA violations in a single CEF message.
+ * Grabs first highest priority violated threshold
+ *
+ * @param violatedThresholdsMap Map containing field Path and associated violated Thresholds
+ * @return First Highest priority violated threshold
+ */
+ public static Threshold prioritizeThresholdViolations(final Map<String, Threshold> violatedThresholdsMap) {
+
+ final List<Threshold> violatedThresholds = newArrayList(violatedThresholdsMap.values());
+
+ if (violatedThresholds.size() == 1) {
+ return violatedThresholds.get(0);
+ }
+ Collections.sort(violatedThresholds, THRESHOLD_COMPARATOR);
+ // Just grab the first violated threshold with highest priority
+ return violatedThresholds.get(0);
+ }
+
+
+ /**
+ * Creates {@link MetricsPerFunctionalRole} object which contains violated thresholds
+ *
+ * @param tcaPolicy TCA Policy
+ * @param violatedThreshold Violated thresholds
+ * @param functionalRole Functiona Role
+ *
+ * @return MetricsPerFunctionalRole object containing one highest severity violated threshold
+ */
+ public static MetricsPerFunctionalRole createViolatedMetrics(@Nonnull final TCAPolicy tcaPolicy,
+ @Nonnull final Threshold violatedThreshold,
+ @Nonnull final String functionalRole) {
+
+ final ArrayList<MetricsPerFunctionalRole> metricsPerFunctionalRoles = newArrayList(
+ Iterables.filter(tcaPolicy.getMetricsPerFunctionalRole(), new Predicate<MetricsPerFunctionalRole>() {
+ @Override
+ public boolean apply(@Nonnull MetricsPerFunctionalRole metricsPerFunctionalRole) {
+ return metricsPerFunctionalRole.getFunctionalRole().equals(functionalRole);
+ }
+ }));
+ // TCA policy must have only one metrics role per functional role
+ if (metricsPerFunctionalRoles.size() == 1) {
+ final MetricsPerFunctionalRole policyMetrics = metricsPerFunctionalRoles.get(0);
+ final MetricsPerFunctionalRole violatedMetrics = new MetricsPerFunctionalRole();
+ violatedMetrics.setFunctionalRole(policyMetrics.getFunctionalRole());
+ violatedMetrics.setPolicyScope(policyMetrics.getPolicyScope());
+ violatedMetrics.setPolicyName(policyMetrics.getPolicyName());
+ violatedMetrics.setPolicyVersion(policyMetrics.getPolicyVersion());
+ violatedMetrics.setThresholds(ImmutableList.of(violatedThreshold));
+ return violatedMetrics;
+ } else {
+ final String errorMessage = String.format("TCA Policy must contain functional Role: %s", functionalRole);
+ throw new MessageProcessingException(errorMessage, LOG, new IllegalStateException(errorMessage));
+ }
+ }
+
+ /**
+ * Computes threshold violations
+ *
+ * @param processorContext Filtered processor Context
+ * @return processor context with any threshold violations
+ */
+ public static TCACEFProcessorContext computeThresholdViolations(final TCACEFProcessorContext processorContext) {
+ final TCACEFPolicyThresholdsProcessor policyThresholdsProcessor = new TCACEFPolicyThresholdsProcessor();
+ return policyThresholdsProcessor.apply(processorContext);
+ }
+
+ /**
+ * Creates {@link TCAVESResponse} object
+ *
+ * @param processorContext processor Context with violations
+ * @param tcaAppName TCA App Name
+ *
+ * @return TCA VES Response Message
+ */
+ public static TCAVESResponse createNewTCAVESResponse(final TCACEFProcessorContext processorContext,
+ final String tcaAppName) {
+
+ final MetricsPerFunctionalRole metricsPerFunctionalRole = processorContext.getMetricsPerFunctionalRole();
+ // confirm violations are indeed present
+ if (metricsPerFunctionalRole == null) {
+ final String errorMessage = "No violations metrics. Unable to create VES Response";
+ throw new MessageProcessingException(errorMessage, LOG, new IllegalArgumentException(errorMessage));
+ }
+
+ final String functionalRole = metricsPerFunctionalRole.getFunctionalRole();
+ final Threshold violatedThreshold = metricsPerFunctionalRole.getThresholds().get(0);
+ final EventListener eventListener = processorContext.getCEFEventListener();
+ final CommonEventHeader commonEventHeader = eventListener.getEvent().getCommonEventHeader();
+
+ final TCAVESResponse tcavesResponse = new TCAVESResponse();
+ // ClosedLoopControlName included in the DCAE configuration Policy
+ tcavesResponse.setClosedLoopControlName(violatedThreshold.getClosedLoopControlName());
+ // version included in the DCAE configuration Policy
+ tcavesResponse.setVersion(violatedThreshold.getVersion());
+ // Generate a UUID for this output message
+ tcavesResponse.setRequestID(UUID.randomUUID().toString());
+ // commonEventHeader.startEpochMicrosec from the received VES measurementsForVfScaling message
+ tcavesResponse.setClosedLoopAlarmStart(commonEventHeader.getStartEpochMicrosec());
+ // Concatenate name of this DCAE instance and name for this TCA instance, separated by dot
+ // TODO: Find out how to get this field
+ tcavesResponse.setClosedLoopEventClient("DCAE_INSTANCE_ID." + tcaAppName);
+
+ final AAI aai = new AAI();
+ tcavesResponse.setAai(aai);
+
+ // vLoadBalancer specific settings
+ if (isFunctionalRoleVLoadBalancer(functionalRole)) {
+ // Hard Coded - "VM"
+ tcavesResponse.setTargetType(AnalyticsConstants.LOAD_BALANCER_TCA_VES_RESPONSE_TARGET_TYPE);
+ // Hard Coded - "vserver.vserver-name"
+ tcavesResponse.setTarget(AnalyticsConstants.LOAD_BALANCER_TCA_VES_RESPONSE_TARGET);
+ aai.setGenericServerId(commonEventHeader.getReportingEntityName());
+ } else {
+ // Hard Coded - "VNF"
+ tcavesResponse.setTargetType(AnalyticsConstants.TCA_VES_RESPONSE_TARGET_TYPE);
+ // Hard Coded - "generic-vnf.vnf-id"
+ tcavesResponse.setTarget(AnalyticsConstants.TCA_VES_RESPONSE_TARGET);
+ // commonEventHeader.reportingEntityName from the received VES measurementsForVfScaling message (value for
+ // the data element used in A&AI)
+ aai.setGenericVNFId(commonEventHeader.getReportingEntityName());
+ }
+
+ // Hard Coded - "DCAE"
+ tcavesResponse.setFrom(AnalyticsConstants.TCA_VES_RESPONSE_FROM);
+ // policyScope included in the DCAE configuration Policy
+ tcavesResponse.setPolicyScope(metricsPerFunctionalRole.getPolicyScope());
+ // policyName included in the DCAE configuration Policy
+ tcavesResponse.setPolicyName(metricsPerFunctionalRole.getPolicyName());
+ // policyVersion included in the DCAE configuration Policy
+ tcavesResponse.setPolicyVersion(metricsPerFunctionalRole.getPolicyVersion());
+ // Hard Coded - "ONSET"
+ tcavesResponse.setClosedLoopEventStatus(AnalyticsConstants.TCA_VES_RESPONSE_CLOSED_LOOP_EVENT_STATUS);
+
+ return tcavesResponse;
+ }
+
+ /**
+ * Determines if Functional Role is vLoadBlanacer
+ *
+ * @param functionalRole functional Role to check
+ *
+ * @return return true if functional role is for vLoadBalancer
+ */
+ private static boolean isFunctionalRoleVLoadBalancer(final String functionalRole) {
+ return functionalRole.equals(AnalyticsConstants.LOAD_BALANCER_FUNCTIONAL_ROLE);
+ }
+
+
+ /**
+ * Extract Domain and functional Role from processor context if present
+ *
+ * @param processorContext processor context
+ * @return Tuple of domain and functional role
+ */
+ public static Pair<String, String> getDomainAndFunctionalRole(@Nullable final TCACEFProcessorContext
+ processorContext) {
+
+ String domain = null;
+ String functionalRole = null;
+
+
+ if (processorContext != null &&
+ processorContext.getCEFEventListener() != null &&
+ processorContext.getCEFEventListener().getEvent() != null &&
+ processorContext.getCEFEventListener().getEvent().getCommonEventHeader() != null) {
+ final CommonEventHeader commonEventHeader = processorContext.getCEFEventListener().getEvent()
+ .getCommonEventHeader();
+
+ if (commonEventHeader.getDomain() != null) {
+ domain = commonEventHeader.getDomain();
+ }
+
+ if (commonEventHeader.getFunctionalRole() != null) {
+ functionalRole = commonEventHeader.getFunctionalRole();
+ }
+
+ }
+
+ return new ImmutablePair<>(domain, functionalRole);
+
+ }
+
+ /**
+ * Function that extracts alert message string from {@link TCAVESAlertEntity}
+ */
+ public static final Function<TCAVESAlertEntity, String> MAP_ALERT_ENTITY_TO_ALERT_STRING_FUNCTION =
+ new Function<TCAVESAlertEntity, String>() {
+ @Override
+ public String apply(TCAVESAlertEntity alertEntity) {
+ return alertEntity == null ? null : alertEntity.getAlertMessage();
+ }
+ };
+
+ /**
+ * Extracts alert message strings from {@link TCAVESAlertEntity}
+ * @param alertEntities collection of alert entities
+ * @return List of alert message strings
+ */
+ public static List<String> extractAlertFromAlertEntities(final Collection<TCAVESAlertEntity> alertEntities) {
+ return Lists.transform(newArrayList(alertEntities), MAP_ALERT_ENTITY_TO_ALERT_STRING_FUNCTION);
+ }
+
+
+ /**
+ * Converts Runtime Arguments to {@link TCAPolicyPreferences} object
+ *
+ * @param runtimeContext CDAP Runtime Arguments
+ *
+ * @return TCA Policy Preferences
+ */
+ public static TCAPolicy getValidatedTCAPolicyPreferences(final RuntimeContext runtimeContext) {
+
+ final Map<String, String> runtimeArguments = runtimeContext.getRuntimeArguments();
+ final TreeMap<String, String> sortedRuntimeArguments = new TreeMap<>(runtimeArguments);
+
+ LOG.debug("Printing all Received Runtime Arguments:");
+ for (Map.Entry<String, String> runtimeArgsEntry : sortedRuntimeArguments.entrySet()) {
+ LOG.debug("{}:{}", runtimeArgsEntry.getKey(), runtimeArgsEntry.getValue());
+ }
+
+ // extract TCA Policy Domain from Runtime Arguments
+ final String policyDomain = sortedRuntimeArguments.get(AnalyticsConstants.TCA_POLICY_DOMAIN_PATH);
+
+ // create new TCA Policy object
+ final TCAPolicyPreferences tcaPolicyPreferences = new TCAPolicyPreferences();
+ tcaPolicyPreferences.setDomain(policyDomain);
+
+ // filter out other non relevant fields which are not related to tca policy
+ final Map<String, String> tcaPolicyMap = filterMapByKeyNamePrefix(sortedRuntimeArguments,
+ TCA_POLICY_METRICS_PER_FUNCTIONAL_ROLE_PATH);
+
+ // determine functional Roles
+ final Map<String, Map<String, String>> functionalRolesMap =
+ extractSubTree(tcaPolicyMap, 2, 3, AnalyticsConstants.TCA_POLICY_DELIMITER);
+
+ // create metrics per functional role list
+ tcaPolicyPreferences.setMetricsPerFunctionalRole(
+ createTCAPolicyMetricsPerFunctionalRoleList(functionalRolesMap));
+
+ // validate tca Policy Preferences
+ validateSettings(tcaPolicyPreferences, new TCAPolicyPreferencesValidator());
+
+ LOG.info("Printing Effective TCA Policy: {}", tcaPolicyPreferences);
+
+ return tcaPolicyPreferences;
+ }
+
+ /**
+ * Creates {@link TCAPolicy} Metrics per Functional Role list
+ *
+ * @param functionalRolesMap Map containing functional Roles as key and corresponding values
+ *
+ * @return List of {@link MetricsPerFunctionalRole}
+ */
+ public static List<MetricsPerFunctionalRole> createTCAPolicyMetricsPerFunctionalRoleList(
+ final Map<String, Map<String, String>> functionalRolesMap) {
+
+ // create a new metrics per functional role list
+ final List<MetricsPerFunctionalRole> metricsPerFunctionalRoles = new LinkedList<>();
+
+ for (Map.Entry<String, Map<String, String>> functionalRolesEntry : functionalRolesMap.entrySet()) {
+
+ // create new metrics per functional role instance
+ final MetricsPerFunctionalRole newMetricsPerFunctionalRole =
+ createNewMetricsPerFunctionalRole(functionalRolesEntry);
+ metricsPerFunctionalRoles.add(newMetricsPerFunctionalRole);
+
+ // determine all threshold related values
+ final Map<String, String> thresholdsValuesMaps =
+ filterMapByKeyNamePrefix(functionalRolesEntry.getValue(),
+ AnalyticsConstants.TCA_POLICY_THRESHOLDS_PATH_POSTFIX);
+
+ // create a map of all threshold values
+ final Map<String, Map<String, String>> thresholdsMap =
+ extractSubTree(thresholdsValuesMaps, 1, 2,
+ AnalyticsConstants.TCA_POLICY_DELIMITER);
+
+ // add thresholds to nmetrics per functional roles threshold list
+ for (Map<String, String> thresholdMap : thresholdsMap.values()) {
+ newMetricsPerFunctionalRole.getThresholds().add(createNewThreshold(thresholdMap));
+ }
+
+ }
+
+ return metricsPerFunctionalRoles;
+ }
+
+ /**
+ * Creates new instance of TCA Policy {@link Threshold} with values extracted from thresholdMap
+ *
+ * @param thresholdMap threshold map with threshold values
+ *
+ * @return new instance of TCA Policy Threshold
+ */
+ public static Threshold createNewThreshold(final Map<String, String> thresholdMap) {
+ final Threshold threshold = new Threshold();
+ threshold.setClosedLoopControlName(thresholdMap.get("policy.closedLoopControlName"));
+ threshold.setVersion(thresholdMap.get("policy.version"));
+ threshold.setFieldPath(thresholdMap.get("policy.fieldPath"));
+ threshold.setDirection(Direction.valueOf(thresholdMap.get("policy.direction")));
+ threshold.setSeverity(EventSeverity.valueOf(thresholdMap.get("policy.severity")));
+ threshold.setThresholdValue(Long.valueOf(thresholdMap.get("policy.thresholdValue")));
+ return threshold;
+ }
+
+ /**
+ * Create new {@link MetricsPerFunctionalRole} instance with policy Name, policy Version and policy Scope
+ * extracted from given functionalRolesEntry
+ *
+ * @param functionalRolesEntry Functional Role Entry
+ *
+ * @return new instance of MetricsPerFunctionalRole
+ */
+ public static MetricsPerFunctionalRole createNewMetricsPerFunctionalRole(
+ final Map.Entry<String, Map<String, String>> functionalRolesEntry) {
+ // determine functional Role
+ final String functionalRole = functionalRolesEntry.getKey();
+ // determine functional Role thresholds
+ final Map<String, String> metricsPerFunctionalRoleThresholdsMap = functionalRolesEntry.getValue();
+ final MetricsPerFunctionalRole metricsPerFunctionalRole = new MetricsPerFunctionalRole();
+ final List<Threshold> thresholds = new LinkedList<>();
+ metricsPerFunctionalRole.setThresholds(thresholds);
+ metricsPerFunctionalRole.setFunctionalRole(functionalRole);
+ // bind policyName, policyVersion and policyScope
+ metricsPerFunctionalRole.setPolicyName(metricsPerFunctionalRoleThresholdsMap.get("policyName"));
+ metricsPerFunctionalRole.setPolicyVersion(metricsPerFunctionalRoleThresholdsMap.get("policyVersion"));
+ metricsPerFunctionalRole.setPolicyScope(metricsPerFunctionalRoleThresholdsMap.get("policyScope"));
+ return metricsPerFunctionalRole;
+ }
+
+ /**
+ * Converts a flattened key/value map which has keys delimited by a given delimiter.
+ * The start Index and end index extract the sub-key value and returns a new map containing
+ * sub-keys and values.
+ *
+ * @param actualMap actual Map
+ * @param startIndex start index
+ * @param endIndex end index
+ * @param delimiter delimiter
+ *
+ * @return Map with new sub tree map
+ */
+ public static Map<String, Map<String, String>> extractSubTree(
+ final Map<String, String> actualMap, int startIndex, int endIndex, String delimiter) {
+
+ final SortedMap<String, Map<String, String>> subTreeMap = new TreeMap<>();
+
+ // iterate over actual map entries
+ for (Map.Entry<String, String> actualMapEntry : actualMap.entrySet()) {
+ final String actualMapKey = actualMapEntry.getKey();
+ final String actualMapValue = actualMapEntry.getValue();
+
+ // determine delimiter start and end index
+ final int keyStartIndex = StringUtils.ordinalIndexOf(actualMapKey, delimiter, startIndex);
+ final int keyEndIndex = StringUtils.ordinalIndexOf(actualMapKey, delimiter, endIndex);
+ final int keyLength = actualMapKey.length();
+
+ // extract sub-tree map
+ if (keyStartIndex != -1 && keyEndIndex != -1 && keyEndIndex > keyStartIndex && keyLength > keyEndIndex) {
+ final String thresholdKey = actualMapKey.substring(keyStartIndex + 1, keyEndIndex);
+ final Map<String, String> existingThresholdMap = subTreeMap.get(thresholdKey);
+ final String subMapKey = actualMapKey.substring(keyEndIndex + 1, keyLength);
+ if (existingThresholdMap == null) {
+ Map<String, String> newThresholdMap = new LinkedHashMap<>();
+ newThresholdMap.put(subMapKey, actualMapValue);
+ subTreeMap.put(thresholdKey, newThresholdMap);
+ } else {
+ existingThresholdMap.put(subMapKey, actualMapValue);
+ }
+
+ }
+ }
+
+ return subTreeMap;
+
+ }
+
+
+ /**
+ * Provides a view of underlying map that filters out entries with keys starting with give prefix
+ *
+ * @param actualMap Target map that needs to be filtered
+ * @param keyNamePrefix key prefix
+ *
+ * @return a view of actual map which only show entries which have give prefix
+ */
+ public static Map<String, String> filterMapByKeyNamePrefix(final Map<String, String> actualMap,
+ final String keyNamePrefix) {
+ return Maps.filterKeys(actualMap,
+ new Predicate<String>() {
+ @Override
+ public boolean apply(@Nullable String key) {
+ return key != null && key.startsWith(keyNamePrefix);
+ }
+ });
+ }
+
+
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAAppConfigValidator.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAAppConfigValidator.java
new file mode 100644
index 0000000..05b0331
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAAppConfigValidator.java
@@ -0,0 +1,60 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.validator;
+
+import org.openecomp.dcae.analytics.common.cdap.validation.CDAPAppSettingsValidator;
+import org.openecomp.dcae.analytics.common.validation.GenericValidationResponse;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppConfig;
+
+import static org.openecomp.dcae.analytics.common.utils.ValidationUtils.isEmpty;
+
+/**
+ * <p>
+ * TCA App Config Validator validates any TCA App Config parameter values
+ * </p>
+ *
+ * @author Rajiv Singla. Creation Date: 10/24/2016.
+ */
+public class TCAAppConfigValidator implements CDAPAppSettingsValidator<TCAAppConfig,
+ GenericValidationResponse<TCAAppConfig>> {
+
+ @Override
+ public GenericValidationResponse<TCAAppConfig> validateAppSettings(TCAAppConfig tcaAppConfig) {
+
+ final GenericValidationResponse<TCAAppConfig> validationResponse = new GenericValidationResponse<>();
+
+ if (isEmpty(tcaAppConfig.getTcaSubscriberOutputStreamName())) {
+ validationResponse.addErrorMessage("tcaSubscriberOutputStreamName",
+ "tcaSubscriberOutputStreamName must be present");
+ }
+
+ if (isEmpty(tcaAppConfig.getTcaVESMessageStatusTableName())) {
+ validationResponse.addErrorMessage("tcaVESMessageStatusTableName",
+ "tcaVESMessageStatusTableName must be present");
+ }
+ if (isEmpty(tcaAppConfig.getTcaVESAlertsTableName())) {
+ validationResponse.addErrorMessage("tcaVESAlertsTableName",
+ "tcaVESAlertsTableName must be present");
+ }
+
+ return validationResponse;
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAPolicyPreferencesValidator.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAPolicyPreferencesValidator.java
new file mode 100644
index 0000000..0ff0eb6
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAPolicyPreferencesValidator.java
@@ -0,0 +1,94 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.validator;
+
+import org.openecomp.dcae.analytics.common.cdap.validation.CDAPAppSettingsValidator;
+import org.openecomp.dcae.analytics.common.validation.GenericValidationResponse;
+import org.openecomp.dcae.analytics.model.domain.cef.EventSeverity;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.Direction;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.MetricsPerFunctionalRole;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.Threshold;
+import org.openecomp.dcae.analytics.tca.settings.TCAPolicyPreferences;
+import org.openecomp.dcae.analytics.tca.utils.TCAUtils;
+
+import java.util.List;
+
+import static org.openecomp.dcae.analytics.common.utils.ValidationUtils.isEmpty;
+
+/**
+ * Validates TCA Policy Preferences
+ * <p>
+ * @author Rajiv Singla. Creation Date: 11/29/2016.
+ */
+public class TCAPolicyPreferencesValidator implements CDAPAppSettingsValidator<TCAPolicyPreferences,
+ GenericValidationResponse<TCAPolicyPreferences>> {
+
+ @Override
+ public GenericValidationResponse<TCAPolicyPreferences> validateAppSettings(
+ final TCAPolicyPreferences tcaPolicyPreferences) {
+
+ final GenericValidationResponse<TCAPolicyPreferences> validationResponse = new GenericValidationResponse<>();
+
+ // validate TCA Policy must domain present
+ final String domain = tcaPolicyPreferences.getDomain();
+ if (isEmpty(domain)) {
+ validationResponse.addErrorMessage("domain", "TCA Policy must have only one domain present");
+ }
+
+ // validate TCA Policy must have at least one functional role
+ final List<String> policyFunctionalRoles = TCAUtils.getPolicyFunctionalRoles(tcaPolicyPreferences);
+ if (policyFunctionalRoles.size() <= 0) {
+ validationResponse.addErrorMessage("metricsPerFunctionalRoles",
+ "TCA Policy must have at least one or more functional roles");
+ }
+
+ final List<MetricsPerFunctionalRole> metricsPerFunctionalRoles =
+ tcaPolicyPreferences.getMetricsPerFunctionalRole();
+
+ // validate each Functional Role must have at least one threshold
+ for (MetricsPerFunctionalRole metricsPerFunctionalRole : metricsPerFunctionalRoles) {
+ if (metricsPerFunctionalRole.getThresholds().size() <= 0) {
+ validationResponse.addErrorMessage("thresholds",
+ "TCA Policy Functional Role must have at least one threshold. " +
+ "Functional Role causing this validation error:" + metricsPerFunctionalRole);
+ }
+ }
+
+ // validate each threshold must have non null - fieldPath, thresholdValue, direction and severity
+ for (MetricsPerFunctionalRole metricsPerFunctionalRole : metricsPerFunctionalRoles) {
+ final List<Threshold> functionalRoleThresholds = metricsPerFunctionalRole.getThresholds();
+ for (Threshold functionalRoleThreshold : functionalRoleThresholds) {
+ final String fieldPath = functionalRoleThreshold.getFieldPath();
+ final Long thresholdValue = functionalRoleThreshold.getThresholdValue();
+ final Direction direction = functionalRoleThreshold.getDirection();
+ final EventSeverity severity = functionalRoleThreshold.getSeverity();
+ if (isEmpty(fieldPath) || thresholdValue == null || direction == null || severity == null) {
+ validationResponse.addErrorMessage("threshold",
+ "TCA Policy threshold must have fieldPath, thresholdValue, direction and severity present."
+ + "Threshold causing this validation error:" + functionalRoleThreshold);
+ }
+ }
+ }
+
+
+ return validationResponse;
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAPreferencesValidator.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAPreferencesValidator.java
new file mode 100644
index 0000000..a7cbbf5
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/validator/TCAPreferencesValidator.java
@@ -0,0 +1,63 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.validator;
+
+import org.openecomp.dcae.analytics.common.cdap.validation.CDAPAppSettingsValidator;
+import org.openecomp.dcae.analytics.common.validation.GenericValidationResponse;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppPreferences;
+
+import static org.openecomp.dcae.analytics.common.utils.ValidationUtils.isEmpty;
+
+/**
+ *
+ * @author Rajiv Singla. Creation Date: 11/3/2016.
+ */
+public class TCAPreferencesValidator implements CDAPAppSettingsValidator<TCAAppPreferences,
+ GenericValidationResponse<TCAAppPreferences>> {
+
+ @Override
+ public GenericValidationResponse<TCAAppPreferences> validateAppSettings(TCAAppPreferences appPreferences) {
+
+ final GenericValidationResponse<TCAAppPreferences> validationResponse = new GenericValidationResponse<>();
+
+ // subscriber validations
+ final String subscriberHostName = appPreferences.getSubscriberHostName();
+ if (isEmpty(subscriberHostName)) {
+ validationResponse.addErrorMessage("subscriberHostName", "Subscriber host name must be present");
+ }
+ final String subscriberTopicName = appPreferences.getSubscriberTopicName();
+ if (isEmpty(subscriberTopicName)) {
+ validationResponse.addErrorMessage("subscriberTopicName", "Subscriber topic name must be present");
+ }
+
+ // publisher validations
+ final String publisherHostName = appPreferences.getPublisherHostName();
+ if (isEmpty(publisherHostName)) {
+ validationResponse.addErrorMessage("publisherHostName", "Publisher host name must be present");
+ }
+ final String publisherTopicName = appPreferences.getPublisherTopicName();
+ if (isEmpty(publisherTopicName)) {
+ validationResponse.addErrorMessage("publisherTopicName", "Publisher topic name must be present");
+ }
+
+ return validationResponse;
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRPublisherJob.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRPublisherJob.java
new file mode 100644
index 0000000..4a9a7ab
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRPublisherJob.java
@@ -0,0 +1,189 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.worker;
+
+import co.cask.cdap.api.TxRunnable;
+import co.cask.cdap.api.common.Bytes;
+import co.cask.cdap.api.data.DatasetContext;
+import co.cask.cdap.api.dataset.lib.CloseableIterator;
+import co.cask.cdap.api.dataset.lib.KeyValue;
+import co.cask.cdap.api.dataset.lib.ObjectMappedTable;
+import co.cask.cdap.api.metrics.Metrics;
+import co.cask.cdap.api.worker.WorkerContext;
+import com.google.common.base.Joiner;
+import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
+import org.openecomp.dcae.analytics.common.CDAPMetricsConstants;
+import org.openecomp.dcae.analytics.common.exception.DCAEAnalyticsRuntimeException;
+import org.openecomp.dcae.analytics.common.utils.HTTPUtils;
+import org.openecomp.dcae.analytics.dmaap.domain.response.DMaaPMRPublisherResponse;
+import org.openecomp.dcae.analytics.dmaap.service.publisher.DMaaPMRPublisher;
+import org.openecomp.dcae.analytics.tca.persistance.TCAVESAlertEntity;
+import org.openecomp.dcae.analytics.tca.persistance.TCAVESAlertsPersister;
+import org.openecomp.dcae.analytics.tca.utils.TCAUtils;
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.Job;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.quartz.PersistJobDataAfterExecution;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+
+import static org.openecomp.dcae.analytics.common.AnalyticsConstants.CDAP_ALERTS_TABLE_VARIABLE_NAME;
+import static org.openecomp.dcae.analytics.common.AnalyticsConstants.DMAAP_METRICS_VARIABLE_NAME;
+import static org.openecomp.dcae.analytics.common.AnalyticsConstants.DMAAP_PUBLISHER_VARIABLE_NAME;
+import static org.openecomp.dcae.analytics.common.AnalyticsConstants.WORKER_CONTEXT_VARIABLE_NAME;
+
+/**
+ * Quartz Job that will monitor any new alert messages in given TCA Alerts table and if any found publish them to
+ * DMaaP MR topic
+ *<p>
+ * @author Rajiv Singla. Creation Date: 11/17/2016.
+ */
+@DisallowConcurrentExecution
+@PersistJobDataAfterExecution
+@SuppressFBWarnings("SIC_INNER_SHOULD_BE_STATIC_ANON")
+public class TCADMaaPMRPublisherJob implements Job {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCADMaaPMRPublisherJob.class);
+
+ @Override
+ public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+
+ LOG.debug("Starting DMaaP MR Topic Publisher fetch Job. Next firing time will be: {}",
+ jobExecutionContext.getNextFireTime());
+
+ // Get Job Data Map
+ final JobDataMap jobDataMap = jobExecutionContext.getMergedJobDataMap();
+
+ // Fetch all Job Params from Job Data Map
+ final String cdapAlertsTableName = jobDataMap.getString(CDAP_ALERTS_TABLE_VARIABLE_NAME);
+ final WorkerContext workerContext = (WorkerContext) jobDataMap.get(WORKER_CONTEXT_VARIABLE_NAME);
+ final DMaaPMRPublisher publisher = (DMaaPMRPublisher) jobDataMap.get(DMAAP_PUBLISHER_VARIABLE_NAME);
+ final Metrics metrics = (Metrics) jobDataMap.get(DMAAP_METRICS_VARIABLE_NAME);
+
+ LOG.debug("Start looking for new message in Alerts Table: {}", cdapAlertsTableName);
+
+ // Get new alerts from alerts table
+ final Map<String, TCAVESAlertEntity> newAlertsMap = getNewAlertsMap(cdapAlertsTableName, workerContext);
+
+ // If no new alerts are found - nothing to publish
+ if (newAlertsMap.isEmpty()) {
+ LOG.debug("No new alerts found in Alerts Table name: {}. Nothing to Publisher....", cdapAlertsTableName);
+ metrics.count(CDAPMetricsConstants.TCA_PUBLISHER_NO_NEW_ALERTS_LOOKUP_METRIC, 1);
+ return;
+ }
+
+ final int newAlertsCount = newAlertsMap.size();
+ LOG.debug("Found new alerts in Alerts Table name: {}. No of new alerts: {}", cdapAlertsTableName,
+ newAlertsCount);
+ metrics.count(CDAPMetricsConstants.TCA_PUBLISHER_NEW_ALERTS_METRIC, newAlertsCount);
+
+ // Get alert message strings from alert Entities
+ final List<String> newAlertsMessages = TCAUtils.extractAlertFromAlertEntities(newAlertsMap.values());
+
+ // Publish messages to DMaaP MR Topic
+
+ try {
+
+ final DMaaPMRPublisherResponse publisherResponse = publisher.publish(newAlertsMessages);
+
+ final Integer responseCode = publisherResponse.getResponseCode();
+ final String responseMessage = publisherResponse.getResponseMessage();
+ final int pendingMessagesCount = publisherResponse.getPendingMessagesCount();
+
+ LOG.debug("Publisher Response Code: {}, Publisher message: {}, Pending Messages Count: {}", responseCode,
+ responseMessage, pendingMessagesCount);
+
+ if (HTTPUtils.isSuccessfulResponseCode(responseCode)) {
+ LOG.debug("Successfully Published alerts to DMaaP MR Topic.");
+ metrics.count(CDAPMetricsConstants.TCA_PUBLISHER_SUCCESSFUL_DMAAP_RESPONSE_METRIC, 1);
+ } else {
+ LOG.warn("Unable to publish alerts to DMaaP MR Topic. Publisher will try to send it later....");
+ metrics.count(CDAPMetricsConstants.TCA_PUBLISHER_UNSUCCESSFUL_DMAAP_RESPONSE_METRIC, 1);
+ }
+
+ } catch (DCAEAnalyticsRuntimeException e) {
+ LOG.error("Exception while publishing messages to DMaaP MR Topic: {}", e);
+ } finally {
+ // delete send message from alerts table
+ deleteAlertsByKey(cdapAlertsTableName, workerContext, newAlertsMap.keySet(), metrics);
+ }
+
+ LOG.debug("Finished DMaaP MR Topic Publisher fetch Job.");
+
+ }
+
+ /**
+ * Gets New Messages from alerts table as Map with row keys as keys and {@link TCAVESAlertEntity} as values
+ *
+ * @param cdapAlertsTableName alerts table name
+ * @param workerContext worker context
+ * @return Map with row keys as keys and {@link TCAVESAlertEntity} as values
+ */
+ private Map<String, TCAVESAlertEntity> getNewAlertsMap(final String cdapAlertsTableName,
+ final WorkerContext workerContext) {
+ final Map<String, TCAVESAlertEntity> newAlertsMap = new LinkedHashMap<>();
+ workerContext.execute(new TxRunnable() {
+ @Override
+ public void run(DatasetContext context) throws Exception {
+ final ObjectMappedTable<TCAVESAlertEntity> alertsTable = context.getDataset(cdapAlertsTableName);
+ final Date currentTime = new Date();
+ final String rowKey = TCAVESAlertsPersister.createRowKey(currentTime);
+ final CloseableIterator<KeyValue<byte[], TCAVESAlertEntity>> scan = alertsTable.scan(null, rowKey);
+ while (scan.hasNext()) {
+ final KeyValue<byte[], TCAVESAlertEntity> alertEntityKeyValue = scan.next();
+ newAlertsMap.put(Bytes.toString(alertEntityKeyValue.getKey()), alertEntityKeyValue.getValue());
+ }
+ }
+ });
+ return newAlertsMap;
+ }
+
+ /**
+ * Deletes rows in Alerts table for give rowKeys
+ *
+ * @param cdapAlertsTableName CDAP Alerts Table Name
+ * @param workerContext Worker Context
+ * @param rowKeys Row Key Set
+ * @param metrics CDAP metrics
+ */
+ private void deleteAlertsByKey(final String cdapAlertsTableName, final WorkerContext workerContext,
+ final Set<String> rowKeys, final Metrics metrics) {
+ LOG.debug("Deleting Published Alerts from alerts table with rowKeys: {}", Joiner.on(",").join(rowKeys));
+ workerContext.execute(new TxRunnable() {
+ @Override
+ public void run(DatasetContext context) throws Exception {
+ final ObjectMappedTable<TCAVESAlertEntity> alertsTable = context.getDataset(cdapAlertsTableName);
+ for (String rowKey : rowKeys) {
+ alertsTable.delete(rowKey);
+ metrics.count(CDAPMetricsConstants.TCA_PUBLISHER_DELETED_ALERTS_METRIC, 1);
+ }
+ }
+ });
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRSubscriberJob.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRSubscriberJob.java
new file mode 100644
index 0000000..7212527
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRSubscriberJob.java
@@ -0,0 +1,175 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.worker;
+
+import co.cask.cdap.api.metrics.Metrics;
+import co.cask.cdap.api.worker.WorkerContext;
+import com.google.common.base.Optional;
+import com.google.common.base.Stopwatch;
+import org.openecomp.dcae.analytics.common.AnalyticsConstants;
+import org.openecomp.dcae.analytics.common.CDAPMetricsConstants;
+import org.openecomp.dcae.analytics.common.exception.DCAEAnalyticsRuntimeException;
+import org.openecomp.dcae.analytics.common.utils.HTTPUtils;
+import org.openecomp.dcae.analytics.dmaap.domain.response.DMaaPMRSubscriberResponse;
+import org.openecomp.dcae.analytics.dmaap.service.subscriber.DMaaPMRSubscriber;
+import org.quartz.DisallowConcurrentExecution;
+import org.quartz.Job;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.quartz.PersistJobDataAfterExecution;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.IOException;
+import java.util.List;
+
+import static java.lang.String.format;
+
+/**
+ * Quartz Job which polls DMaaP MR VES Collector Topic for messages and writes them to
+ * a given CDAP Stream
+ *
+ * @author Rajiv Singla. Creation Date: 10/24/2016.
+ */
+@DisallowConcurrentExecution
+@PersistJobDataAfterExecution
+public class TCADMaaPMRSubscriberJob implements Job {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCADMaaPMRSubscriberJob.class);
+
+ @Override
+ public void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {
+
+ LOG.debug("Starting DMaaP MR Topic Subscriber fetch Job. Next firing time will be: {}",
+ jobExecutionContext.getNextFireTime());
+
+ // Get Job Data Map
+ final JobDataMap jobDataMap = jobExecutionContext.getMergedJobDataMap();
+
+ // Fetch all Job Params from Job Data Map
+ final String cdapStreamName = jobDataMap.getString(AnalyticsConstants.CDAP_STREAM_VARIABLE_NAME);
+ final WorkerContext workerContext =
+ (WorkerContext) jobDataMap.get(AnalyticsConstants.WORKER_CONTEXT_VARIABLE_NAME);
+ final DMaaPMRSubscriber subscriber =
+ (DMaaPMRSubscriber) jobDataMap.get(AnalyticsConstants.DMAAP_SUBSCRIBER_VARIABLE_NAME);
+ final Metrics metrics = (Metrics) jobDataMap.get(AnalyticsConstants.DMAAP_METRICS_VARIABLE_NAME);
+
+ final Optional<DMaaPMRSubscriberResponse> subscriberResponseOptional =
+ getSubscriberResponse(subscriber, metrics);
+
+ // If response is not present, unable to proceed
+ if (!subscriberResponseOptional.isPresent()) {
+ return;
+ }
+
+ final DMaaPMRSubscriberResponse subscriberResponse = subscriberResponseOptional.get();
+
+ // If response code return by the subscriber call is not successful, unable to do proceed
+ if (!HTTPUtils.isSuccessfulResponseCode(subscriberResponse.getResponseCode())) {
+ LOG.error("Subscriber was unable to fetch messages properly. Subscriber Response Code: {} " +
+ "Unable to proceed further....", subscriberResponse.getResponseCode());
+ metrics.count(CDAPMetricsConstants.TCA_SUBSCRIBER_UNSUCCESSFUL_RESPONSES_METRIC, 1);
+ return;
+ }
+
+ LOG.debug("Subscriber HTTP Response Status Code match successful: {}", subscriberResponse,
+ HTTPUtils.HTTP_SUCCESS_STATUS_CODE);
+
+ final List<String> actualMessages = subscriberResponse.getFetchedMessages();
+
+ // If there are no message returned during from Subscriber, nothing to write to CDAP Stream
+ if (actualMessages.isEmpty()) {
+ LOG.debug("Subscriber Response has no messages. Nothing to write to CDAP stream....");
+ metrics.count(CDAPMetricsConstants.TCA_SUBSCRIBER_RESPONSES_WITH_NO_MESSAGES_METRIC, 1);
+ return;
+ }
+
+ LOG.debug("DMaaP MR Subscriber found new messages in DMaaP Topic. Message count: {}", actualMessages.size());
+ metrics.count(CDAPMetricsConstants.TCA_SUBSCRIBER_TOTAL_MESSAGES_PROCESSED_METRIC, actualMessages.size());
+
+ // Write message to CDAP Stream using Stream Batch Writer
+ LOG.debug("Writing message to CDAP Stream: {}, Message Count: {}", cdapStreamName, actualMessages.size());
+ try {
+
+ for (String message : actualMessages) {
+ workerContext.write(cdapStreamName, message);
+ }
+
+ } catch (IOException e) {
+ metrics.count(CDAPMetricsConstants.TCA_SUBSCRIBER_FAILURE_TO_WRITE_TO_STREAM_METRIC, 1);
+ final String errorMessage =
+ format("Error while DMaaP message router subscriber attempting to write to CDAP Stream: %s, " +
+ "Exception: %s", cdapStreamName, e);
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e);
+ }
+
+ LOG.debug("DMaaP MR Subscriber successfully finished writing messages to CDAP Stream: {}, Message count: {}",
+ cdapStreamName, actualMessages.size());
+ }
+
+
+ /**
+ * Get Subscriber response and records time taken to fetch messages. Returns Optional.None if Subscriber response
+ * is null or response status code is not present
+ *
+ * @param subscriber - DMaaP Subscriber
+ * @param metrics - CDAP Metrics collector
+ *
+ * @return - Optional of Subscriber Response
+ */
+ private static Optional<DMaaPMRSubscriberResponse> getSubscriberResponse(final DMaaPMRSubscriber subscriber,
+ final Metrics metrics) {
+
+ // Check how long it took for subscriber to respond
+ final Stopwatch stopwatch = new Stopwatch();
+ stopwatch.start();
+
+ DMaaPMRSubscriberResponse subscriberResponse = null;
+ // Fetch messages from DMaaP MR Topic
+ try {
+ subscriberResponse = subscriber.fetchMessages();
+ } catch (DCAEAnalyticsRuntimeException e) {
+ LOG.error("Error while fetching messages for DMaaP MR Topic: {}", e);
+ }
+
+ stopwatch.stop();
+ final long subscriberResponseTimeMS = stopwatch.elapsedMillis();
+
+ // If response is null is null or response code is null, unable to proceed nothing to do
+ if (subscriberResponse == null || subscriberResponse.getResponseCode() == null) {
+ LOG.error("Subscriber Response is null or subscriber Response code is null. Unable to proceed further...");
+ return Optional.absent();
+ }
+
+ LOG.debug("Subscriber Response:{}, Subscriber HTTP Response Status Code {}, Subscriber Response Time(ms): {}",
+ subscriberResponse, subscriberResponse.getResponseCode(), subscriberResponseTimeMS);
+
+ // Record subscriber response time
+ metrics.gauge(CDAPMetricsConstants.TCA_SUBSCRIBER_RESPONSE_TIME_MS_METRIC, subscriberResponseTimeMS);
+
+ // Record all response count from subscriber
+ metrics.count(CDAPMetricsConstants.TCA_SUBSCRIBER_ALL_RESPONSES_COUNT_METRIC, 1);
+
+ return Optional.of(subscriberResponse);
+ }
+
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMockSubscriberWorker.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMockSubscriberWorker.java
new file mode 100644
index 0000000..d8d1968
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMockSubscriberWorker.java
@@ -0,0 +1,139 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.worker;
+
+import co.cask.cdap.api.annotation.Property;
+import co.cask.cdap.api.worker.AbstractWorker;
+import co.cask.cdap.api.worker.WorkerContext;
+import com.fasterxml.jackson.core.type.TypeReference;
+import org.openecomp.dcae.analytics.common.exception.DCAEAnalyticsRuntimeException;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppPreferences;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.List;
+
+import static org.openecomp.dcae.analytics.tca.utils.TCAUtils.getValidatedTCAAppPreferences;
+import static org.openecomp.dcae.analytics.tca.utils.TCAUtils.readValue;
+import static org.openecomp.dcae.analytics.tca.utils.TCAUtils.writeValueAsString;
+
+/**
+ * CDAP Worker which mocks fetching VES Messages from DMaaP MR topic.
+ * The mock instead of making DMaaP MR calls will actually take messages
+ * from file and send them to stream at subscriber polling interval
+ *
+ * TODO: To be removed before going to production - only for testing purposes
+ *
+ * @author Rajiv Singla. Creation Date: 11/4/2016.
+ */
+public class TCADMaaPMockSubscriberWorker extends AbstractWorker {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCADMaaPMockSubscriberWorker.class);
+
+ // TODO: Remove this file before going to production - only for mocking purposes
+ private static final String MOCK_MESSAGE_FILE_LOCATION = "ves_mock_messages.json";
+ private static final TypeReference<List<EventListener>> EVENT_LISTENER_TYPE_REFERENCE =
+ new TypeReference<List<EventListener>>() {
+ };
+
+ private TCAAppPreferences tcaAppPreferences;
+ private boolean stopSendingMessages;
+ @Property
+ private final String tcaSubscriberOutputStreamName;
+
+ public TCADMaaPMockSubscriberWorker(final String tcaSubscriberOutputStreamName) {
+ this.tcaSubscriberOutputStreamName = tcaSubscriberOutputStreamName;
+ }
+
+ @Override
+ public void configure() {
+ setName("MockTCASubscriberWorker");
+ setDescription("Writes Mocked VES messages to CDAP Stream");
+ LOG.info("Configuring Mock TCA MR DMaaP Subscriber worker with name: {}", "MockTCASubscriberWorker");
+ }
+
+ @Override
+ public void initialize(WorkerContext context) throws Exception {
+ super.initialize(context);
+
+ final TCAAppPreferences tcaAppPreferences = getValidatedTCAAppPreferences(context);
+ LOG.info("Initializing Mock TCA MR DMaaP Subscriber worker with preferences: {}", tcaAppPreferences);
+ this.tcaAppPreferences = tcaAppPreferences;
+ this.stopSendingMessages = false;
+ }
+
+
+ @Override
+ public void run() {
+ final Integer subscriberPollingInterval = tcaAppPreferences.getSubscriberPollingInterval();
+ LOG.debug("Mock TCA Subscriber Polling interval: {}", subscriberPollingInterval);
+
+ final InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream
+ (MOCK_MESSAGE_FILE_LOCATION);
+
+ if (resourceAsStream == null) {
+ LOG.error("Unable to find file at location: {}", MOCK_MESSAGE_FILE_LOCATION);
+ throw new DCAEAnalyticsRuntimeException("Unable to find file", LOG, new FileNotFoundException());
+ }
+
+
+ try {
+ List<EventListener> eventListeners = readValue(resourceAsStream, EVENT_LISTENER_TYPE_REFERENCE);
+
+ final int totalMessageCount = eventListeners.size();
+ LOG.debug("Mock message count to be written to cdap stream: ()", totalMessageCount);
+
+ int i = 1;
+ for (EventListener eventListener : eventListeners) {
+ if (stopSendingMessages) {
+ LOG.debug("Stop sending messages......");
+ break;
+ }
+ final String eventListenerString = writeValueAsString(eventListener);
+ LOG.debug("=======>> Writing message to cdap stream no: {} of {}", i, totalMessageCount);
+ getContext().write(tcaSubscriberOutputStreamName, eventListenerString);
+ i++;
+ try {
+ Thread.sleep(subscriberPollingInterval);
+ } catch (InterruptedException e) {
+ LOG.error("Error while sleeping");
+ }
+ }
+
+ LOG.debug("Finished writing mock messages to CDAP Stream");
+
+ } catch (IOException e) {
+ LOG.error("Error while parsing json file");
+ throw new DCAEAnalyticsRuntimeException("Error while parsing mock json file", LOG, e);
+ }
+
+
+ }
+
+ @Override
+ public void stop() {
+ stopSendingMessages = true;
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPPublisherWorker.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPPublisherWorker.java
new file mode 100644
index 0000000..49f98fc
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPPublisherWorker.java
@@ -0,0 +1,230 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.worker;
+
+import co.cask.cdap.api.annotation.Property;
+import co.cask.cdap.api.metrics.Metrics;
+import co.cask.cdap.api.worker.AbstractWorker;
+import co.cask.cdap.api.worker.WorkerContext;
+import org.openecomp.dcae.analytics.common.AnalyticsConstants;
+import org.openecomp.dcae.analytics.common.CDAPComponentsConstants;
+import org.openecomp.dcae.analytics.common.exception.DCAEAnalyticsRuntimeException;
+import org.openecomp.dcae.analytics.dmaap.DMaaPMRFactory;
+import org.openecomp.dcae.analytics.dmaap.domain.config.DMaaPMRPublisherConfig;
+import org.openecomp.dcae.analytics.dmaap.service.publisher.DMaaPMRPublisher;
+import org.openecomp.dcae.analytics.model.util.AnalyticsModelIOUtils;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppPreferences;
+import org.openecomp.dcae.analytics.tca.utils.AppPreferencesToPublisherConfigMapper;
+import org.openecomp.dcae.analytics.tca.utils.TCAUtils;
+import org.quartz.JobBuilder;
+import org.quartz.JobDataMap;
+import org.quartz.JobDetail;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.SimpleScheduleBuilder;
+import org.quartz.SimpleTrigger;
+import org.quartz.TriggerBuilder;
+import org.quartz.impl.StdSchedulerFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import static java.lang.String.format;
+
+/**
+ * TCA DMaaP Publisher will monitor alerts table at regular intervals and publish any alerts to DMaaP MR Publishing
+ * Topic
+ * <p>
+ * @author Rajiv Singla. Creation Date: 11/16/2016.
+ */
+public class TCADMaaPPublisherWorker extends AbstractWorker {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCADMaaPPublisherWorker.class);
+
+ /**
+ * DMaaP MR Publisher
+ */
+ private DMaaPMRPublisher publisher;
+ /**
+ * Quartz Scheduler
+ */
+ private Scheduler scheduler;
+ /**
+ * Determines if scheduler is shutdown
+ */
+ private AtomicBoolean isSchedulerShutdown;
+ /**
+ * Store runtime metrics
+ */
+ private Metrics metrics;
+
+ @Property
+ private final String tcaVESAlertsTableName;
+
+ public TCADMaaPPublisherWorker(final String tcaVESAlertsTableName) {
+ this.tcaVESAlertsTableName = tcaVESAlertsTableName;
+ }
+
+ @Override
+ public void configure() {
+ // configure
+ setName(CDAPComponentsConstants.TCA_FIXED_DMAAP_PUBLISHER_WORKER);
+ setDescription(CDAPComponentsConstants.TCA_FIXED_DMAAP_PUBLISHER_DESCRIPTION_WORKER);
+ LOG.debug("Configuring TCA MR DMaaP Publisher worker with name: {}",
+ CDAPComponentsConstants.TCA_FIXED_DMAAP_PUBLISHER_WORKER);
+ }
+
+
+ @Override
+ public void initialize(WorkerContext context) throws Exception {
+ super.initialize(context);
+
+ // Parse runtime arguments
+ final TCAAppPreferences tcaAppPreferences = TCAUtils.getValidatedTCAAppPreferences(context);
+
+ LOG.info("Initializing TCA MR DMaaP Publisher worker with preferences: {}", tcaAppPreferences);
+
+ // Map TCA App Preferences to DMaaP MR Publisher Config
+ final DMaaPMRPublisherConfig publisherConfig = AppPreferencesToPublisherConfigMapper.map(tcaAppPreferences);
+
+ LOG.info("TCA DMaaP MR Publisher worker will be polling TCA Alerts Table Name: {}", tcaVESAlertsTableName);
+
+ // Create an instance of DMaaP MR Publisher
+ LOG.debug("Creating an instance of DMaaP Publisher");
+ publisher = DMaaPMRFactory.create().createPublisher(publisherConfig);
+
+ // initialize a new Quartz scheduler
+ initializeScheduler(tcaAppPreferences);
+ // initialize scheduler state
+ isSchedulerShutdown = new AtomicBoolean(true);
+ }
+
+
+ @Override
+ public void run() {
+ // Start Publisher scheduler
+ try {
+ scheduler.start();
+ isSchedulerShutdown.getAndSet(false);
+
+ } catch (SchedulerException e) {
+ final String errorMessage =
+ format("Error while starting TCA DMaaP MR Publisher scheduler: %s", e.toString());
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e);
+ }
+
+ LOG.info("TCA DMaaP MR Publisher Scheduler started successfully");
+
+ // indefinite loop which wakes up and confirms scheduler is indeed running
+ while (!isSchedulerShutdown.get()) {
+ try {
+
+ Thread.sleep(AnalyticsConstants.TCA_DEFAULT_WORKER_SHUTDOWN_CHECK_INTERVAL_MS);
+
+ } catch (InterruptedException e) {
+
+ final String errorMessage =
+ format("Error while checking TCA DMaaP MR Publisher worker status: %s", e);
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e);
+ }
+ }
+
+ LOG.info("Finished execution of TCA DMaaP MR Publisher worker thread");
+
+ }
+
+ @Override
+ public void stop() {
+ // Stop Publisher - which will flush any batch messages if present
+ try {
+ publisher.close();
+ } catch (Exception e) {
+
+ final String errorMessage = format("Error while shutting down DMaaP MR Publisher: %s", e);
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e);
+
+ }
+ // Stop Publisher scheduler
+ try {
+
+ LOG.info("Shutting TCA DMaaP MR Publisher Scheduler");
+
+ scheduler.shutdown();
+ isSchedulerShutdown.getAndSet(true);
+
+ } catch (SchedulerException e) {
+
+ final String errorMessage =
+ format("Error while shutting down TCA DMaaP MR Publisher scheduler: %s", e);
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e);
+ }
+ }
+
+
+ /**
+ * Initializes a scheduler instance for DMaaP MR Publisher Job
+ *
+ * @throws SchedulerException SchedulerException
+ */
+ private void initializeScheduler(TCAAppPreferences tcaAnalyticsAppConfig) throws SchedulerException {
+
+ // Initialize a new Quartz Standard scheduler - settings settings are in quartz-publisher.properties file
+ final StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory();
+ final String quartzPublisherPropertiesFileName = AnalyticsConstants.TCA_QUARTZ_PUBLISHER_PROPERTIES_FILE_NAME;
+ LOG.debug("Configuring quartz scheduler for TCA DMaaP MR Publisher with properties file: {}",
+ quartzPublisherPropertiesFileName);
+ final Properties publisherProperties =
+ AnalyticsModelIOUtils.loadPropertiesFile(quartzPublisherPropertiesFileName);
+ stdSchedulerFactory.initialize(publisherProperties);
+ scheduler = stdSchedulerFactory.getScheduler();
+
+ // Create a new JobDataMap containing information required by TCA DMaaP Publisher Job
+ final JobDataMap jobDataMap = new JobDataMap();
+ jobDataMap.put(AnalyticsConstants.CDAP_ALERTS_TABLE_VARIABLE_NAME, tcaVESAlertsTableName);
+ jobDataMap.put(AnalyticsConstants.WORKER_CONTEXT_VARIABLE_NAME, getContext());
+ jobDataMap.put(AnalyticsConstants.DMAAP_PUBLISHER_VARIABLE_NAME, publisher);
+ jobDataMap.put(AnalyticsConstants.DMAAP_METRICS_VARIABLE_NAME, metrics);
+
+ // Create a new job detail
+ final JobDetail jobDetail = JobBuilder.newJob(TCADMaaPMRPublisherJob.class)
+ .withIdentity(AnalyticsConstants.TCA_DMAAP_PUBLISHER_QUARTZ_JOB_NAME,
+ AnalyticsConstants.TCA_QUARTZ_GROUP_NAME)
+ .usingJobData(jobDataMap).build();
+
+ // Create a new scheduling builder
+ final Integer publisherPollingInterval = tcaAnalyticsAppConfig.getPublisherPollingInterval();
+ final SimpleScheduleBuilder simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
+ .withIntervalInMilliseconds(publisherPollingInterval) // job will use custom polling schedule
+ .repeatForever(); // repeats while worker is running
+
+ // Create a trigger for the TCA Publisher Job
+ final SimpleTrigger simpleTrigger = TriggerBuilder.newTrigger()
+ .withIdentity(AnalyticsConstants.TCA_DMAAP_PUBLISHER_QUARTZ_TRIGGER_NAME,
+ AnalyticsConstants.TCA_QUARTZ_GROUP_NAME)
+ .startNow() // job starts right away
+ .withSchedule(simpleScheduleBuilder).build();
+
+ scheduler.scheduleJob(jobDetail, simpleTrigger);
+ LOG.info("Initialized TCA DMaaP MR Publisher Scheduler");
+ }
+}
diff --git a/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPSubscriberWorker.java b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPSubscriberWorker.java
new file mode 100644
index 0000000..8d773e4
--- /dev/null
+++ b/dcae-analytics-tca/src/main/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPSubscriberWorker.java
@@ -0,0 +1,226 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.worker;
+
+import co.cask.cdap.api.annotation.Property;
+import co.cask.cdap.api.metrics.Metrics;
+import co.cask.cdap.api.worker.AbstractWorker;
+import co.cask.cdap.api.worker.WorkerContext;
+import org.openecomp.dcae.analytics.common.AnalyticsConstants;
+import org.openecomp.dcae.analytics.common.CDAPComponentsConstants;
+import org.openecomp.dcae.analytics.common.exception.DCAEAnalyticsRuntimeException;
+import org.openecomp.dcae.analytics.dmaap.DMaaPMRFactory;
+import org.openecomp.dcae.analytics.dmaap.domain.config.DMaaPMRSubscriberConfig;
+import org.openecomp.dcae.analytics.dmaap.service.subscriber.DMaaPMRSubscriber;
+import org.openecomp.dcae.analytics.model.util.AnalyticsModelIOUtils;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppPreferences;
+import org.openecomp.dcae.analytics.tca.utils.AppPreferencesToSubscriberConfigMapper;
+import org.openecomp.dcae.analytics.tca.utils.TCAUtils;
+import org.quartz.JobBuilder;
+import org.quartz.JobDataMap;
+import org.quartz.JobDetail;
+import org.quartz.Scheduler;
+import org.quartz.SchedulerException;
+import org.quartz.SimpleScheduleBuilder;
+import org.quartz.SimpleTrigger;
+import org.quartz.TriggerBuilder;
+import org.quartz.impl.StdSchedulerFactory;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.util.Properties;
+import java.util.concurrent.atomic.AtomicBoolean;
+
+import static java.lang.String.format;
+
+/**
+ * TCA DMaaP Subscriber will read messages and post them to cdap stream at regular intervals
+ * <p>
+ * @author Rajiv Singla. Creation Date: 10/14/2016.
+ */
+public class TCADMaaPSubscriberWorker extends AbstractWorker {
+
+ private static final Logger LOG = LoggerFactory.getLogger(TCADMaaPSubscriberWorker.class);
+
+ /**
+ * DMaaP MR Subscriber
+ */
+ private DMaaPMRSubscriber subscriber;
+ /**
+ * Quartz Scheduler
+ */
+ private Scheduler scheduler;
+ /**
+ * Determines if scheduler is shutdown
+ */
+ private AtomicBoolean isSchedulerShutdown;
+ /**
+ * Store runtime metrics
+ */
+ private Metrics metrics;
+
+ /**
+ * CDAP output stream name
+ */
+ @Property
+ private final String tcaSubscriberOutputStreamName;
+
+ public TCADMaaPSubscriberWorker(final String tcaSubscriberOutputStreamName) {
+ this.tcaSubscriberOutputStreamName = tcaSubscriberOutputStreamName;
+ }
+
+
+ @Override
+ public void configure() {
+ // configure
+ setName(CDAPComponentsConstants.TCA_FIXED_DMAAP_SUBSCRIBER_WORKER);
+ setDescription(CDAPComponentsConstants.TCA_FIXED_DMAAP_SUBSCRIBER_DESCRIPTION_WORKER);
+ LOG.debug("Configuring TCA MR DMaaP Subscriber worker with name: {}",
+ CDAPComponentsConstants.TCA_FIXED_DMAAP_SUBSCRIBER_WORKER);
+ }
+
+ @Override
+ public void initialize(WorkerContext context) throws Exception {
+ super.initialize(context);
+
+ // Parse runtime arguments
+ final TCAAppPreferences tcaAppPreferences = TCAUtils.getValidatedTCAAppPreferences(context);
+
+ LOG.info("Initializing TCA MR DMaaP Subscriber worker with preferences: {}", tcaAppPreferences);
+
+ // Map TCA App Preferences to DMaaP MR Subscriber Config
+ final DMaaPMRSubscriberConfig subscriberConfig = AppPreferencesToSubscriberConfigMapper.map(tcaAppPreferences);
+
+ LOG.info("TCA DMaaP MR Subscriber worker will be writing to CDAP Stream: {}", tcaSubscriberOutputStreamName);
+
+ // Create an instance of DMaaP MR Subscriber
+ LOG.debug("Creating an instance of DMaaP Subscriber");
+ subscriber = DMaaPMRFactory.create().createSubscriber(subscriberConfig);
+
+ // initialize a new Quartz scheduler
+ initializeScheduler(tcaAppPreferences);
+
+ // initialize scheduler state
+ isSchedulerShutdown = new AtomicBoolean(true);
+ }
+
+
+ @Override
+ public void run() {
+ // Start scheduler
+ try {
+ scheduler.start();
+ isSchedulerShutdown.getAndSet(false);
+
+ } catch (SchedulerException e) {
+ final String errorMessage =
+ format("Error while starting TCA DMaaP MR Subscriber scheduler: %s", e.toString());
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e);
+ }
+
+ LOG.info("TCA DMaaP MR Subscriber Scheduler started successfully");
+
+ // indefinite loop which wakes up and confirms scheduler is indeed running
+ while (!isSchedulerShutdown.get()) {
+ try {
+
+ Thread.sleep(AnalyticsConstants.TCA_DEFAULT_WORKER_SHUTDOWN_CHECK_INTERVAL_MS);
+
+ } catch (InterruptedException e) {
+
+ final String errorMessage =
+ format("Error while checking TCA DMaaP MR Subscriber worker status: %s", e);
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e);
+ }
+ }
+
+ LOG.info("Finished execution of TCA DMaaP MR Subscriber worker thread");
+
+ }
+
+ @Override
+ public void stop() {
+
+ // Stop scheduler
+ try {
+
+ LOG.info("Shutting TCA DMaaP MR Subscriber Scheduler");
+
+ scheduler.shutdown();
+ isSchedulerShutdown.getAndSet(true);
+
+ } catch (SchedulerException e) {
+
+ final String errorMessage =
+ format("Error while shutting down TCA DMaaP MR Subscriber scheduler: %s", e);
+ throw new DCAEAnalyticsRuntimeException(errorMessage, LOG, e);
+ }
+ }
+
+ /**
+ * Initializes a scheduler instance for DMaaP MR Subscriber Job
+ *
+ * @throws SchedulerException SchedulerException
+ */
+ private void initializeScheduler(TCAAppPreferences tcaAppPreferences) throws SchedulerException {
+
+ // Initialize a new Quartz Standard scheduler - settings settings are in quartz-subscriber.properties file
+ final StdSchedulerFactory stdSchedulerFactory = new StdSchedulerFactory();
+ final String quartzSubscriberPropertiesFileName = AnalyticsConstants.TCA_QUARTZ_SUBSCRIBER_PROPERTIES_FILE_NAME;
+ LOG.debug("Configuring quartz scheduler for TCA DMaaP MR Subscriber with properties file: {}",
+ quartzSubscriberPropertiesFileName);
+ final Properties subscriberProperties =
+ AnalyticsModelIOUtils.loadPropertiesFile(quartzSubscriberPropertiesFileName);
+ stdSchedulerFactory.initialize(subscriberProperties);
+ scheduler = stdSchedulerFactory.getScheduler();
+
+ // Create a new JobDataMap containing information required by TCA DMaaP Subscriber Job
+ final JobDataMap jobDataMap = new JobDataMap();
+ jobDataMap.put(AnalyticsConstants.CDAP_STREAM_VARIABLE_NAME, tcaSubscriberOutputStreamName);
+ jobDataMap.put(AnalyticsConstants.WORKER_CONTEXT_VARIABLE_NAME, getContext());
+ jobDataMap.put(AnalyticsConstants.DMAAP_SUBSCRIBER_VARIABLE_NAME, subscriber);
+ jobDataMap.put(AnalyticsConstants.DMAAP_METRICS_VARIABLE_NAME, metrics);
+
+ // Create a new job detail
+ final JobDetail jobDetail = JobBuilder.newJob(TCADMaaPMRSubscriberJob.class)
+ .withIdentity(AnalyticsConstants.TCA_DMAAP_SUBSCRIBER_QUARTZ_JOB_NAME,
+ AnalyticsConstants.TCA_QUARTZ_GROUP_NAME)
+ .usingJobData(jobDataMap).build();
+
+ // Create a new scheduling builder
+ final Integer subscriberPollingInterval = tcaAppPreferences.getSubscriberPollingInterval();
+ final SimpleScheduleBuilder simpleScheduleBuilder = SimpleScheduleBuilder.simpleSchedule()
+ .withIntervalInMilliseconds(subscriberPollingInterval) // job will use custom polling schedule
+ .repeatForever(); // repeats while worker is running
+
+ // Create a trigger for the TCA Subscriber Job
+ final SimpleTrigger simpleTrigger = TriggerBuilder.newTrigger()
+ .withIdentity(AnalyticsConstants.TCA_DMAAP_SUBSCRIBER_QUARTZ_TRIGGER_NAME,
+ AnalyticsConstants.TCA_QUARTZ_GROUP_NAME)
+ .startNow() // job starts right away
+ .withSchedule(simpleScheduleBuilder).build();
+
+ scheduler.scheduleJob(jobDetail, simpleTrigger);
+ LOG.info("Initialized TCA DMaaP MR Subscriber Scheduler");
+ }
+
+
+}
diff --git a/dcae-analytics-tca/src/main/resources/quartz-publisher.properties b/dcae-analytics-tca/src/main/resources/quartz-publisher.properties
new file mode 100644
index 0000000..17d564d
--- /dev/null
+++ b/dcae-analytics-tca/src/main/resources/quartz-publisher.properties
@@ -0,0 +1,23 @@
+#
+# ============LICENSE_START=========================================================
+# dcae-analytics
+# ================================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+org.quartz.scheduler.instanceName=TCA_DMaaPMRPublisher_Scheduler
+org.quartz.threadPool.threadCount=3
+org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore
+org.quartz.scheduler.skipUpdateCheck=true
diff --git a/dcae-analytics-tca/src/main/resources/quartz-subscriber.properties b/dcae-analytics-tca/src/main/resources/quartz-subscriber.properties
new file mode 100644
index 0000000..78a968f
--- /dev/null
+++ b/dcae-analytics-tca/src/main/resources/quartz-subscriber.properties
@@ -0,0 +1,23 @@
+#
+# ============LICENSE_START=========================================================
+# dcae-analytics
+# ================================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+org.quartz.scheduler.instanceName=TCA_DMaaPMRSubscriber_Scheduler
+org.quartz.threadPool.threadCount=3
+org.quartz.jobStore.class=org.quartz.simpl.RAMJobStore
+org.quartz.scheduler.skipUpdateCheck=true
diff --git a/dcae-analytics-tca/src/main/resources/ves_mock_messages.json b/dcae-analytics-tca/src/main/resources/ves_mock_messages.json
new file mode 100644
index 0000000..483c1d5
--- /dev/null
+++ b/dcae-analytics-tca/src/main/resources/ves_mock_messages.json
@@ -0,0 +1,113 @@
+[
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "multicastPacketsIn": 0,
+ "bytesIn": 20445,
+ "unicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 0,
+ "bytesOut": 0,
+ "broadcastPacketsIn": 0,
+ "packetsIn": 700,
+ "unicastPacketsOut": 0,
+ "vNicIdentifier": "eth1"
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "zdfw1fwl01fwl02",
+ "startEpochMicrosec": 1484335735737754,
+ "lastEpochMicrosec": 1484335745737754,
+ "eventId": "61542",
+ "sourceName": "Dummy VM name - No Metadata available",
+ "sequence": 61542,
+ "priority": "Normal",
+ "functionalRole": "vFirewall",
+ "domain": "measurementsForVfScaling",
+ "reportingEntityId": "No UUID available",
+ "sourceId": "Dummy VM UUID - No Metadata available",
+ "version": 1.1
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "multicastPacketsIn": 0,
+ "bytesIn": 20445,
+ "unicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 0,
+ "bytesOut": 0,
+ "broadcastPacketsIn": 0,
+ "packetsIn": 300,
+ "unicastPacketsOut": 0,
+ "vNicIdentifier": "eth1"
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "zdfw1fwl01fwl02",
+ "startEpochMicrosec": 1484335735737754,
+ "lastEpochMicrosec": 1484335745737754,
+ "eventId": "61542",
+ "sourceName": "Dummy VM name - No Metadata available",
+ "sequence": 61542,
+ "priority": "Normal",
+ "functionalRole": "vFirewall",
+ "domain": "measurementsForVfScaling",
+ "reportingEntityId": "No UUID available",
+ "sourceId": "Dummy VM UUID - No Metadata available",
+ "version": 1.1
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "multicastPacketsIn": 0,
+ "bytesIn": 20445,
+ "unicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 0,
+ "bytesOut": 0,
+ "broadcastPacketsIn": 0,
+ "packetsIn": 400,
+ "unicastPacketsOut": 0,
+ "vNicIdentifier": "eth1"
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "zdfw1fwl01fwl02",
+ "startEpochMicrosec": 1484335735737754,
+ "lastEpochMicrosec": 1484335745737754,
+ "eventId": "61542",
+ "sourceName": "Dummy VM name - No Metadata available",
+ "sequence": 61542,
+ "priority": "Normal",
+ "functionalRole": "vFirewall",
+ "domain": "measurementsForVfScaling",
+ "reportingEntityId": "No UUID available",
+ "sourceId": "Dummy VM UUID - No Metadata available",
+ "version": 1.1
+ }
+ }
+ }
+]
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/BaseAnalyticsTCAIT.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/BaseAnalyticsTCAIT.java
new file mode 100644
index 0000000..4dedf98
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/BaseAnalyticsTCAIT.java
@@ -0,0 +1,141 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import com.google.common.base.Suppliers;
+import org.junit.BeforeClass;
+import org.openecomp.dcae.analytics.common.AnalyticsConstants;
+import org.openecomp.dcae.analytics.model.util.AnalyticsModelIOUtils;
+import org.openecomp.dcae.analytics.model.util.json.AnalyticsModelObjectMapperSupplier;
+import org.openecomp.dcae.analytics.tca.settings.TCATestAppConfig;
+import org.openecomp.dcae.analytics.tca.settings.TCATestAppPreferences;
+import org.openecomp.dcae.analytics.test.BaseDCAEAnalyticsIT;
+
+import java.util.LinkedHashMap;
+import java.util.Map;
+import java.util.Properties;
+
+/**
+ *
+ * @author Rajiv Singla. Creation Date: 10/25/2016.
+ */
+public class BaseAnalyticsTCAIT extends BaseDCAEAnalyticsIT {
+
+ protected static ObjectMapper objectMapper;
+
+ @BeforeClass
+ public static void beforeClass() {
+ final AnalyticsModelObjectMapperSupplier analyticsModelObjectMapperSupplier =
+ new AnalyticsModelObjectMapperSupplier();
+ objectMapper = Suppliers.memoize(analyticsModelObjectMapperSupplier).get();
+ objectMapper.enable(SerializationFeature.INDENT_OUTPUT);
+ }
+
+ protected static final String TCA_CONTROLLER_POLICY_FILE_LOCATION =
+ "data/properties/tca_controller_policy.properties";
+
+ // App Settings
+ protected static final String DCAE_ANALYTICS_TCA_TEST_APP_NAME = "dcae-tca";
+ protected static final String DCAE_ANALYTICS_TCA_TEST_APP_DESC =
+ "DCAE Analytics Threshold Crossing Alert Application";
+
+ // Subscriber App Preferences
+ protected static final String SUBSCRIBER_HOST_NAME = "mrlocal-mtnjftle01.homer.com";
+ protected static final Integer SUBSCRIBER_PORT_NUMBER = 3905;
+ protected static final String SUBSCRIBER_TOPIC_NAME = "com.dcae.dmaap.mtnje2.DcaeTestVESSub";
+ protected static final String SUBSCRIBER_USERNAME = "m00502@tca.af.dcae.com";
+ protected static final String SUBSCRIBER_PASSWORD = "Te5021abc";
+ protected static final String SUBSCRIBER_HTTP_PROTOCOL = "https";
+ protected static final String SUBSCRIBER_CONTENT_TYPE = "application/json";
+ protected static final Integer SUBSCRIBER_POLLING_INTERVAL = 20000;
+
+ protected static final String SUBSCRIBER_CONSUMER_ID = "c12";
+ protected static final String SUBSCRIBER_CONSUMER_GROUP_NAME = AnalyticsConstants.DMAAP_GROUP_PREFIX +
+ SUBSCRIBER_CONSUMER_ID;
+ protected static final int SUBSCRIBER_TIMOUT_MS = -1;
+ protected static final int SUBSCRIBER_MESSAGE_LIMIT = -1;
+
+ // Publisher App Preferences
+ protected static final String PUBLISHER_HOST_NAME = "mrlocal-mtnjftle01.homer.com";
+ protected static final Integer PUBLISHER_PORT_NUMBER = 3905;
+ protected static final String PUBLISHER_TOPIC_NAME = "com.dcae.dmaap.mtnje2.DcaeTestVESPub";
+ protected static final String PUBLISHER_USERNAME = "m00502@tca.af.dcae.com";
+ protected static final String PUBLISHER_PASSWORD = "Te5021abc";
+ protected static final String PUBLISHER_HTTP_PROTOCOL = "https";
+ protected static final String PUBLISHER_CONTENT_TYPE = "application/json";
+ protected static final Integer PUBLISHER_BATCH_QUEUE_SIZE = 10;
+ protected static final Integer PUBLISHER_RECOVERY_QUEUE_SIZE = 100000;
+ protected static final Integer PUBLISHER_POLLING_INTERVAL = 20000;
+
+ protected static TCATestAppConfig getTCATestAppConfig() {
+ final TCATestAppConfig tcaTestAppConfig = new TCATestAppConfig();
+ tcaTestAppConfig.setAppName(DCAE_ANALYTICS_TCA_TEST_APP_NAME);
+ tcaTestAppConfig.setAppDescription(DCAE_ANALYTICS_TCA_TEST_APP_DESC);
+ return tcaTestAppConfig;
+ }
+
+ protected static TCATestAppPreferences getTCATestAppPreferences() {
+ final TCATestAppPreferences tcaTestAppPreferences = new TCATestAppPreferences(getTCAPolicyPreferences());
+ tcaTestAppPreferences.setSubscriberHostName(SUBSCRIBER_HOST_NAME);
+ tcaTestAppPreferences.setSubscriberHostPortNumber(SUBSCRIBER_PORT_NUMBER);
+ tcaTestAppPreferences.setSubscriberTopicName(SUBSCRIBER_TOPIC_NAME);
+ tcaTestAppPreferences.setSubscriberUserName(SUBSCRIBER_USERNAME);
+ tcaTestAppPreferences.setSubscriberUserPassword(SUBSCRIBER_PASSWORD);
+ tcaTestAppPreferences.setSubscriberProtocol(SUBSCRIBER_HTTP_PROTOCOL);
+ tcaTestAppPreferences.setSubscriberContentType(SUBSCRIBER_CONTENT_TYPE);
+ tcaTestAppPreferences.setSubscriberConsumerId(SUBSCRIBER_CONSUMER_ID);
+ tcaTestAppPreferences.setSubscriberConsumerGroup(SUBSCRIBER_CONSUMER_GROUP_NAME);
+ tcaTestAppPreferences.setSubscriberTimeoutMS(SUBSCRIBER_TIMOUT_MS);
+ tcaTestAppPreferences.setSubscriberMessageLimit(SUBSCRIBER_MESSAGE_LIMIT);
+ tcaTestAppPreferences.setSubscriberPollingInterval(SUBSCRIBER_POLLING_INTERVAL);
+
+ tcaTestAppPreferences.setPublisherHostName(PUBLISHER_HOST_NAME);
+ tcaTestAppPreferences.setPublisherHostPort(PUBLISHER_PORT_NUMBER);
+ tcaTestAppPreferences.setPublisherTopicName(PUBLISHER_TOPIC_NAME);
+ tcaTestAppPreferences.setPublisherUserName(PUBLISHER_USERNAME);
+ tcaTestAppPreferences.setPublisherUserPassword(PUBLISHER_PASSWORD);
+ tcaTestAppPreferences.setPublisherProtocol(PUBLISHER_HTTP_PROTOCOL);
+ tcaTestAppPreferences.setPublisherContentType(PUBLISHER_CONTENT_TYPE);
+ tcaTestAppPreferences.setPublisherMaxBatchSize(PUBLISHER_BATCH_QUEUE_SIZE);
+ tcaTestAppPreferences.setPublisherMaxRecoveryQueueSize(PUBLISHER_RECOVERY_QUEUE_SIZE);
+ tcaTestAppPreferences.setPublisherPollingInterval(PUBLISHER_POLLING_INTERVAL);
+ return tcaTestAppPreferences;
+ }
+
+
+ protected static Map<String, String> getTCAPolicyPreferences() {
+ final Map<String, String> policyPreferences = new LinkedHashMap<>();
+ final Properties policyPreferencesProps =
+ AnalyticsModelIOUtils.loadPropertiesFile(TCA_CONTROLLER_POLICY_FILE_LOCATION);
+ for (Map.Entry<Object, Object> propEntry : policyPreferencesProps.entrySet()) {
+ policyPreferences.put(propEntry.getKey().toString(), propEntry.getValue().toString());
+ }
+
+ return policyPreferences;
+ }
+
+ protected static String serializeModelToJson(Object model) throws JsonProcessingException {
+ return objectMapper.writeValueAsString(model);
+ }
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/BaseAnalyticsTCAUnitTest.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/BaseAnalyticsTCAUnitTest.java
new file mode 100644
index 0000000..38e4ce1
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/BaseAnalyticsTCAUnitTest.java
@@ -0,0 +1,220 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca;
+
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.google.common.base.Suppliers;
+import org.junit.Assert;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.Direction;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.TCAPolicy;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.Threshold;
+import org.openecomp.dcae.analytics.model.util.json.AnalyticsModelObjectMapperSupplier;
+import org.openecomp.dcae.analytics.tca.settings.TCATestAppPreferences;
+import org.openecomp.dcae.analytics.test.BaseDCAEAnalyticsUnitTest;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author Rajiv Singla. Creation Date: 10/25/2016.
+ */
+public class BaseAnalyticsTCAUnitTest extends BaseDCAEAnalyticsUnitTest {
+
+ /**
+ * Object mapper to be used for all TCA Json Parsing
+ */
+ protected static final ObjectMapper ANALYTICS_MODEL_OBJECT_MAPPER =
+ Suppliers.memoize(new AnalyticsModelObjectMapperSupplier()).get();
+
+ protected static final String TCA_POLICY_JSON_FILE_LOCATION = "data/json/policy/tca_policy.json";
+ protected static final String CEF_MESSAGES_JSON_FILE_LOCATION = "data/json/cef/cef_messages.json";
+ protected static final String CEF_MESSAGE_JSON_FILE_LOCATION = "data/json/cef/cef_message.json";
+ protected static final String CEF_MESSAGE_WITH_THRESHOLD_VIOLATION_JSON_FILE_LOCATION =
+ "data/json/cef/cef_message_with_threshold_violation.json";
+
+ protected static final String TCA_CONTROLLER_POLICY_FILE_LOCATION =
+ "data/properties/tca_controller_policy.properties";
+
+
+ /**
+ * Provides TCA Policy that can be used for testing
+ *
+ * @return test TCA Policy Object
+ */
+ protected TCAPolicy getSampleTCAPolicy() {
+ return deserializeJsonFileToModel(TCA_POLICY_JSON_FILE_LOCATION, TCAPolicy.class);
+ }
+
+ /**
+ * Provides list containing 350 CEF messages
+ *
+ * @return CEF Test Message
+ * @throws Exception Exception
+ */
+ protected List<EventListener> getCEFMessages() throws Exception {
+ final String cefMessageAsString = fromStream(CEF_MESSAGES_JSON_FILE_LOCATION);
+ final TypeReference<List<EventListener>> eventListenerListTypeReference =
+ new TypeReference<List<EventListener>>() {
+ };
+ return ANALYTICS_MODEL_OBJECT_MAPPER.readValue(cefMessageAsString, eventListenerListTypeReference);
+ }
+
+ /**
+ * Provides 1 valid CEF messages which does not violate Threshold as String
+ *
+ * @return CEF Test Message String
+ * @throws Exception Exception
+ */
+ protected String getValidCEFMessage() throws Exception {
+ return fromStream(CEF_MESSAGE_JSON_FILE_LOCATION);
+ }
+
+
+ /**
+ * Provides single CEF Test Message
+ *
+ * @return CEF Test Message
+ * @throws Exception Exception
+ */
+ protected EventListener getCEFEventListener() throws Exception {
+ final String cefMessageAsString = fromStream(CEF_MESSAGE_JSON_FILE_LOCATION);
+ return ANALYTICS_MODEL_OBJECT_MAPPER.readValue(cefMessageAsString, EventListener.class);
+ }
+
+ /**
+ * Deserialize given Json file location to given model class and returns it back without any validation check
+ *
+ * @param jsonFileLocation Classpath location of the json file
+ * @param modelClass Model Class type
+ * @param <T> Json Model Type
+ * @return Json model object
+ */
+ public static <T> T deserializeJsonFileToModel(String jsonFileLocation, Class<T> modelClass) {
+ final InputStream jsonFileInputStream =
+ BaseDCAEAnalyticsUnitTest.class.getClassLoader().getResourceAsStream(jsonFileLocation);
+ Assert.assertNotNull("Json File Location must be valid", jsonFileInputStream);
+ try {
+ return ANALYTICS_MODEL_OBJECT_MAPPER.readValue(jsonFileInputStream, modelClass);
+ } catch (IOException ex) {
+ LOG.error("Error while doing assert Json for fileLocation: {}, modelClass: {}, Exception {}",
+ jsonFileLocation, modelClass, ex);
+ throw new RuntimeException(ex);
+ } finally {
+ try {
+ jsonFileInputStream.close();
+ } catch (IOException e) {
+ LOG.error("Error while closing input stream at file location: {}", jsonFileLocation);
+ throw new RuntimeException(e);
+ }
+ }
+ }
+
+ /**
+ * Provides a test application preference for unit testing
+ *
+ * @return tca app preferences
+ */
+ protected static TCATestAppPreferences getTCATestAppPreferences() {
+ final TCATestAppPreferences tcaTestAppPreferences = new TCATestAppPreferences();
+ tcaTestAppPreferences.setSubscriberHostName("SUBSCRIBER_HOST_NAME");
+ tcaTestAppPreferences.setSubscriberHostPortNumber(10000);
+ tcaTestAppPreferences.setSubscriberTopicName("SUBSCRIBER_TOPIC_NAME");
+ tcaTestAppPreferences.setSubscriberUserName("SUBSCRIBER_USERNAME");
+ tcaTestAppPreferences.setSubscriberUserPassword("SUBSCRIBER_PASSWORD");
+ tcaTestAppPreferences.setSubscriberProtocol("https");
+ tcaTestAppPreferences.setSubscriberContentType("application/json");
+ tcaTestAppPreferences.setSubscriberConsumerId("SUBSCRIBER_CONSUMER_ID");
+ tcaTestAppPreferences.setSubscriberConsumerGroup("SUBSCRIBER_CONSUMER_GROUP_NAME");
+ tcaTestAppPreferences.setSubscriberTimeoutMS(10);
+ tcaTestAppPreferences.setSubscriberMessageLimit(100);
+ tcaTestAppPreferences.setSubscriberPollingInterval(1000);
+
+ tcaTestAppPreferences.setPublisherHostName("PUBLISHER_HOST_NAME");
+ tcaTestAppPreferences.setPublisherHostPort(1234);
+ tcaTestAppPreferences.setPublisherTopicName("PUBLISHER_TOPIC_NAME");
+ tcaTestAppPreferences.setPublisherUserName("PUBLISHER_USERNAME");
+ tcaTestAppPreferences.setPublisherUserPassword("PUBLISHER_PASSWORD");
+ tcaTestAppPreferences.setPublisherProtocol("https");
+ tcaTestAppPreferences.setPublisherContentType("application/json");
+ tcaTestAppPreferences.setPublisherMaxBatchSize(100);
+ tcaTestAppPreferences.setPublisherMaxRecoveryQueueSize(100);
+ tcaTestAppPreferences.setPublisherPollingInterval(6000);
+ return tcaTestAppPreferences;
+ }
+
+ protected static Map<String, String> getPreferenceMap() {
+ Map<String, String> preference = new HashMap<>();
+ preference.put("subscriberHostName", "mrlocal-mtnjftle01.homer.com");
+ preference.put("subscriberHostPort", "3905");
+ preference.put("subscriberTopicName", "com.dcae.dmaap.mtnje2.DcaeTestVESPub");
+ preference.put("subscriberProtocol", "https");
+ preference.put("subscriberUserName", "m00502@tca.af.dcae.com");
+ preference.put("subscriberUserPassword", "Te5021abc");
+ preference.put("subscriberContentType", "application/json");
+ preference.put("subscriberConsumerId", "123");
+ preference.put("subscriberConsumerGroup", "testTCAConsumerName-123");
+ preference.put("subscriberTimeoutMS", "-1");
+ preference.put("subscriberMessageLimit", "-1");
+ preference.put("subscriberPollingInterval", "30000");
+
+ preference.put("publisherHostName", "publisherHostName");
+ preference.put("publisherHostPort", "3905");
+ preference.put("publisherTopicName", "publisherTopicName");
+ preference.put("publisherProtocol", "https");
+ preference.put("publisherUserName", "publisherUserName");
+ preference.put("publisherContentType", "application/json");
+ preference.put("publisherMaxBatchSize", "1000");
+ preference.put("publisherMaxRecoveryQueueSize", "100");
+ preference.put("publisherPollingInterval", "6000");
+ return preference;
+ }
+
+ protected static Threshold getCriticalThreshold() {
+ Threshold criticalThreshold = new Threshold();
+ criticalThreshold.setClosedLoopControlName("CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A");
+ criticalThreshold.setThresholdValue(5000L);
+ criticalThreshold.setFieldPath("$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn");
+ criticalThreshold.setDirection(Direction.GREATER_OR_EQUAL);
+ return criticalThreshold;
+ }
+
+ protected static List<Threshold> getThresholds() {
+ Threshold majorThreshold = new Threshold();
+ majorThreshold.setClosedLoopControlName("CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A");
+ majorThreshold.setFieldPath("$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn");
+ majorThreshold.setVersion("Test Version");
+ majorThreshold.setThresholdValue(500L);
+ majorThreshold.setDirection(Direction.LESS_OR_EQUAL);
+
+ Threshold criticalThreshold = new Threshold();
+ criticalThreshold.setClosedLoopControlName("CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A");
+ criticalThreshold.setThresholdValue(5000L);
+ criticalThreshold.setFieldPath("$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn");
+ criticalThreshold.setDirection(Direction.GREATER_OR_EQUAL);
+ return Arrays.asList(majorThreshold, criticalThreshold);
+ }
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/it/TCAnalyticsAppConfigIT.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/it/TCAnalyticsAppConfigIT.java
new file mode 100644
index 0000000..2ed5252
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/it/TCAnalyticsAppConfigIT.java
@@ -0,0 +1,53 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.it;
+
+import org.junit.Test;
+import org.openecomp.dcae.analytics.tca.BaseAnalyticsTCAIT;
+import org.openecomp.dcae.analytics.tca.settings.TCATestAppConfig;
+import org.openecomp.dcae.analytics.tca.settings.TCATestAppConfigHolder;
+import org.openecomp.dcae.analytics.tca.settings.TCATestAppPreferences;
+
+/**
+ *
+ * @author Rajiv Singla. Creation Date: 10/25/2016.
+ */
+public class TCAnalyticsAppConfigIT extends BaseAnalyticsTCAIT {
+
+
+ @Test
+ public void createTestAppConfigJson() throws Exception {
+ final TCATestAppConfig tcaTestAppConfig = getTCATestAppConfig();
+ final TCATestAppConfigHolder appConfigHolder = new TCATestAppConfigHolder(tcaTestAppConfig);
+ final String appConfigJson = serializeModelToJson(appConfigHolder);
+ LOG.info("AppConfigJson: \n{}", appConfigJson);
+ writeToOutputTextFile("appSettings/tca_app_config.json", appConfigJson, TCAnalyticsAppConfigIT.class);
+ }
+
+ @Test
+ public void createTestAppPreferencesJson() throws Exception {
+ final TCATestAppPreferences tcaTestAppPreferences = getTCATestAppPreferences();
+ final String appPreferencesJson = serializeModelToJson(tcaTestAppPreferences);
+ LOG.info("AppPreferences: \n{}", appPreferencesJson);
+ writeToOutputTextFile("appSettings/tca_app_preferences.json",
+ appPreferencesJson, TCAnalyticsAppConfigIT.class);
+ }
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFJsonProcessorTest.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFJsonProcessorTest.java
new file mode 100644
index 0000000..05efcd6
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFJsonProcessorTest.java
@@ -0,0 +1,117 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.processor;
+
+import org.junit.Test;
+import org.openecomp.dcae.analytics.common.exception.MessageProcessingException;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.openecomp.dcae.analytics.tca.BaseAnalyticsTCAUnitTest;
+
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertNotNull;
+
+/**
+ *
+ * @author Rajiv Singla. Creation Date: 11/9/2016.
+ */
+public class TCACEFJsonProcessorTest extends BaseAnalyticsTCAUnitTest {
+
+
+ // A valid CEF Message
+ @Test
+ public void testCEFJsonProcessorWithValidCEFMessage() throws Exception {
+
+ final String cefMessageString = fromStream(CEF_MESSAGE_JSON_FILE_LOCATION);
+ final TCACEFProcessorContext tcacefProcessorContext =
+ new TCACEFProcessorContext(cefMessageString, getSampleTCAPolicy());
+
+ TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();
+ final TCACEFProcessorContext finalProcessorContext = tcacefJsonProcessor.apply(tcacefProcessorContext);
+
+ final EventListener cefEventListener = finalProcessorContext.getCEFEventListener();
+
+ assertNotNull("CEF Event Listener must be present", cefEventListener);
+
+ }
+
+ // Even if message is not a valid CEF format but still a Json - Json Processor will parse it
+ @Test
+ public void testCEFJsonProcessorWithValidJson() throws Exception {
+
+ final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(
+ " { \"key\" : \"value\" } ", getSampleTCAPolicy());
+
+ TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();
+ final TCACEFProcessorContext finalProcessorContext = tcacefJsonProcessor.apply(tcacefProcessorContext);
+ final EventListener cefEventListener = finalProcessorContext.getCEFEventListener();
+
+ assertNotNull("Even if message is not a valid CEF format but a valid Json.Json Processor must be able to " +
+ "parse it",
+ cefEventListener);
+ }
+
+ @Test(expected = MessageProcessingException.class)
+ public void testCEFJsonProcessorWithCEFMessageAsNull() throws Exception {
+
+ final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(null, getSampleTCAPolicy());
+
+ TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();
+ tcacefJsonProcessor.apply(tcacefProcessorContext);
+
+ }
+
+ @Test
+ public void testCEFJsonProcessorWithCEFMessageIsBlank() throws Exception {
+
+ final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(" ", getSampleTCAPolicy());
+
+ TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();
+ final TCACEFProcessorContext finalProcessorContext = tcacefJsonProcessor.apply(tcacefProcessorContext);
+ assertFalse("Blank message must terminate processing of message chain", finalProcessorContext
+ .canProcessingContinue());
+ }
+
+
+ @Test
+ public void testCEFJsonProcessorWithCEFMessageWhichIsNotValidMessage() throws Exception {
+
+ final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(" Invalid Message ",
+ getSampleTCAPolicy());
+
+ TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();
+ final TCACEFProcessorContext finalProcessorContext = tcacefJsonProcessor.apply(tcacefProcessorContext);
+ assertFalse("Invalid message must terminate processing of message chain", finalProcessorContext
+ .canProcessingContinue());
+ }
+
+
+ @Test(expected = MessageProcessingException.class)
+ public void testCEFJsonProcessorWithCEFMessageWhichIsNotValidJson() throws Exception {
+
+ final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(
+ " { \"Invalid Event Listener Json\" } ", getSampleTCAPolicy());
+
+ TCACEFJsonProcessor tcacefJsonProcessor = new TCACEFJsonProcessor();
+ tcacefJsonProcessor.apply(tcacefProcessorContext);
+ }
+
+
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyThresholdsProcessorTest.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyThresholdsProcessorTest.java
new file mode 100644
index 0000000..8d83307
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFPolicyThresholdsProcessorTest.java
@@ -0,0 +1,77 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.processor;
+
+import org.junit.Test;
+import org.openecomp.dcae.analytics.common.service.processor.ProcessingState;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.openecomp.dcae.analytics.tca.BaseAnalyticsTCAUnitTest;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertThat;
+import static org.junit.Assert.assertTrue;
+
+/**
+ *
+ * @author Rajiv Singla. Creation Date: 11/9/2016.
+ */
+public class TCACEFPolicyThresholdsProcessorTest extends BaseAnalyticsTCAUnitTest {
+
+ @Test
+ public void testCEFPolicyThresholdProcessorWithNoThresholdViolation() throws Exception {
+
+ final String cefMessageString = fromStream(CEF_MESSAGE_JSON_FILE_LOCATION);
+ final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(cefMessageString,
+ getSampleTCAPolicy());
+ tcacefProcessorContext.setCEFEventListener(getCEFEventListener());
+
+ AbstractTCAECEFPolicyProcessor policyThresholdsProcessor = new TCACEFPolicyThresholdsProcessor();
+ final TCACEFProcessorContext finalProcessorContext = policyThresholdsProcessor.apply(tcacefProcessorContext);
+
+ assertFalse("Process Context can Processing Continue flag should be false", finalProcessorContext
+ .canProcessingContinue());
+ assertThat("Policy Threshold Processor State must be terminated early",
+ policyThresholdsProcessor.getProcessingState(), is(ProcessingState.PROCESSING_TERMINATED_EARLY));
+
+ }
+
+ @Test
+ public void testCEFPolicyThresholdProcessorWithThresholdViolation() throws Exception {
+
+ final String cefMessageString = fromStream(CEF_MESSAGE_WITH_THRESHOLD_VIOLATION_JSON_FILE_LOCATION);
+ final TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(cefMessageString,
+ getSampleTCAPolicy());
+
+ final EventListener eventListener = getCEFEventListener();
+ tcacefProcessorContext.setCEFEventListener(eventListener);
+
+ AbstractTCAECEFPolicyProcessor policyThresholdsProcessor = new TCACEFPolicyThresholdsProcessor();
+ final TCACEFProcessorContext finalProcessorContext = policyThresholdsProcessor.apply(tcacefProcessorContext);
+
+ assertTrue("Process Context can Processing Continue flag should be true", finalProcessorContext
+ .canProcessingContinue());
+ assertThat("Policy Threshold Processor State must be successful",
+ policyThresholdsProcessor.getProcessingState(), is(ProcessingState.PROCESSING_FINISHED_SUCCESSFULLY));
+
+ }
+
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFProcessorContextTest.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFProcessorContextTest.java
new file mode 100644
index 0000000..d955d81
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/processor/TCACEFProcessorContextTest.java
@@ -0,0 +1,38 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.processor;
+
+import org.junit.Test;
+import org.openecomp.dcae.analytics.tca.BaseAnalyticsTCAUnitTest;
+
+/**
+ *
+ * @author Rajiv Singla. Creation Date: 11/14/2016.
+ */
+public class TCACEFProcessorContextTest extends BaseAnalyticsTCAUnitTest {
+
+ @Test
+ public void testProcessorContextSerialization() throws Exception {
+ TCACEFProcessorContext tcacefProcessorContext = new TCACEFProcessorContext(getValidCEFMessage(),
+ getSampleTCAPolicy());
+ testSerialization(tcacefProcessorContext, TCACEFProcessorContextTest.class);
+ }
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppConfig.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppConfig.java
new file mode 100644
index 0000000..4e057cc
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppConfig.java
@@ -0,0 +1,38 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.settings;
+
+/**
+ * TCA Test App Config is used for testing purposes only
+ *
+ * @author Rajiv Singla. Creation Date: 11/3/2016.
+ */
+public class TCATestAppConfig extends TCAAppConfig {
+
+ public void setAppName(String appName) {
+ this.appName = appName;
+ }
+
+ public void setAppDescription(String appDescription) {
+ this.appDescription = appDescription;
+ }
+
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppConfigHolder.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppConfigHolder.java
new file mode 100644
index 0000000..e854cac
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppConfigHolder.java
@@ -0,0 +1,40 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.settings;
+
+/**
+ * Holder for TCA Test App Config
+ *
+ * @author Rajiv Singla. Creation Date: 11/3/2016.
+ */
+public class TCATestAppConfigHolder {
+
+ private final TCATestAppConfig config;
+
+ public TCATestAppConfigHolder(TCATestAppConfig config) {
+ this.config = config;
+ }
+
+ public TCATestAppConfig getConfig() {
+ return config;
+ }
+
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppPreferences.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppPreferences.java
new file mode 100644
index 0000000..f8a0474
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/settings/TCATestAppPreferences.java
@@ -0,0 +1,136 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.settings;
+
+
+import com.fasterxml.jackson.annotation.JsonAnyGetter;
+
+import java.util.Map;
+
+/**
+ * TCA Test App Preferences are used for testing purposes only
+ *
+ * @author Rajiv Singla. Creation Date: 11/3/2016.
+ */
+public class TCATestAppPreferences extends TCAAppPreferences {
+
+ private Map<String, String> policyPreferences;
+
+ public TCATestAppPreferences() {
+ }
+
+ public TCATestAppPreferences(final Map<String, String> policyPreferences) {
+ this.policyPreferences = policyPreferences;
+ }
+
+ @JsonAnyGetter
+ public Map<String, String> getPolicyPreferences() {
+ return policyPreferences;
+ }
+
+ public void setSubscriberHostName(String subscriberHostName) {
+ this.subscriberHostName = subscriberHostName;
+ }
+
+ public void setSubscriberHostPortNumber(Integer subscriberHostPort) {
+ this.subscriberHostPort = subscriberHostPort;
+ }
+
+ public void setSubscriberTopicName(String subscriberTopicName) {
+ this.subscriberTopicName = subscriberTopicName;
+ }
+
+ public void setSubscriberProtocol(String subscriberProtocol) {
+ this.subscriberProtocol = subscriberProtocol;
+ }
+
+ public void setSubscriberUserName(String subscriberUserName) {
+ this.subscriberUserName = subscriberUserName;
+ }
+
+ public void setSubscriberUserPassword(String subscriberUserPassword) {
+ this.subscriberUserPassword = subscriberUserPassword;
+ }
+
+ public void setSubscriberContentType(String subscriberContentType) {
+ this.subscriberContentType = subscriberContentType;
+ }
+
+ public void setSubscriberConsumerId(String subscriberConsumerId) {
+ this.subscriberConsumerId = subscriberConsumerId;
+ }
+
+ public void setSubscriberConsumerGroup(String subscriberConsumerGroup) {
+ this.subscriberConsumerGroup = subscriberConsumerGroup;
+ }
+
+ public void setSubscriberTimeoutMS(Integer subscriberTimeoutMS) {
+ this.subscriberTimeoutMS = subscriberTimeoutMS;
+ }
+
+ public void setSubscriberMessageLimit(Integer subscriberMessageLimit) {
+ this.subscriberMessageLimit = subscriberMessageLimit;
+ }
+
+ public void setSubscriberPollingInterval(Integer subscriberPollingInterval) {
+ this.subscriberPollingInterval = subscriberPollingInterval;
+ }
+
+ public void setPublisherHostName(String publisherHostName) {
+ this.publisherHostName = publisherHostName;
+ }
+
+ public void setPublisherHostPort(Integer publisherHostPort) {
+ this.publisherHostPort = publisherHostPort;
+ }
+
+ public void setPublisherTopicName(String publisherTopicName) {
+ this.publisherTopicName = publisherTopicName;
+ }
+
+ public void setPublisherProtocol(String publisherProtocol) {
+ this.publisherProtocol = publisherProtocol;
+ }
+
+ public void setPublisherUserName(String publisherUserName) {
+ this.publisherUserName = publisherUserName;
+ }
+
+ public void setPublisherUserPassword(String publisherUserPassword) {
+ this.publisherUserPassword = publisherUserPassword;
+ }
+
+ public void setPublisherContentType(String publisherContentType) {
+ this.publisherContentType = publisherContentType;
+ }
+
+ public void setPublisherMaxBatchSize(Integer publisherMaxBatchSize) {
+ this.publisherMaxBatchSize = publisherMaxBatchSize;
+ }
+
+ public void setPublisherMaxRecoveryQueueSize(Integer publisherMaxRecoveryQueueSize) {
+ this.publisherMaxRecoveryQueueSize = publisherMaxRecoveryQueueSize;
+ }
+
+ public void setPublisherPollingInterval(Integer publisherPollingInterval) {
+ this.publisherPollingInterval = publisherPollingInterval;
+ }
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToPublisherConfigMapperTest.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToPublisherConfigMapperTest.java
new file mode 100644
index 0000000..d66ef52
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToPublisherConfigMapperTest.java
@@ -0,0 +1,58 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.utils;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.openecomp.dcae.analytics.dmaap.domain.config.DMaaPMRPublisherConfig;
+import org.openecomp.dcae.analytics.tca.BaseAnalyticsTCAUnitTest;
+import org.openecomp.dcae.analytics.tca.settings.TCATestAppPreferences;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+/**
+ * @author Manjesh Gowda. Creation Date: 11/21/2016.
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class AppPreferencesToPublisherConfigMapperTest extends BaseAnalyticsTCAUnitTest {
+ @Test
+ public void testMapTCAConfigToSubscriberConfigFunctionGood() {
+ DMaaPMRPublisherConfig dMaaPMRPublisherConfig =
+ (new AppPreferencesToPublisherConfigMapper()).apply(getTCATestAppPreferences());
+ assertEquals(dMaaPMRPublisherConfig.getHostName(), "PUBLISHER_HOST_NAME");
+ }
+
+ @Test
+ public void testMapTCAConfigToSubscriberConfigFunctionMap() {
+ DMaaPMRPublisherConfig dMaaPMRPublisherConfig = AppPreferencesToPublisherConfigMapper.map(
+ getTCATestAppPreferences());
+ assertEquals(dMaaPMRPublisherConfig.getHostName(), "PUBLISHER_HOST_NAME");
+ }
+
+ @Test
+ public void testMapTCAConfigToSubscriberConfigFunctionAllNull() {
+ DMaaPMRPublisherConfig dMaaPMRPublisherConfig =
+ (new AppPreferencesToPublisherConfigMapper()).apply(new TCATestAppPreferences());
+ assertNull(dMaaPMRPublisherConfig.getHostName());
+ }
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToSubscriberConfigMapperTest.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToSubscriberConfigMapperTest.java
new file mode 100644
index 0000000..6963201
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/AppPreferencesToSubscriberConfigMapperTest.java
@@ -0,0 +1,59 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.utils;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.openecomp.dcae.analytics.dmaap.domain.config.DMaaPMRSubscriberConfig;
+import org.openecomp.dcae.analytics.tca.BaseAnalyticsTCAUnitTest;
+import org.openecomp.dcae.analytics.tca.settings.TCATestAppPreferences;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
+
+/**
+ * @author Manjesh Gowda. Creation Date: 11/21/2016.
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class AppPreferencesToSubscriberConfigMapperTest extends BaseAnalyticsTCAUnitTest {
+
+ @Test
+ public void testMapTCAConfigToSubscriberConfigFunctionGood() {
+ DMaaPMRSubscriberConfig dMaaPMRSubscriberConfig =
+ (new AppPreferencesToSubscriberConfigMapper()).apply(getTCATestAppPreferences());
+ assertEquals(dMaaPMRSubscriberConfig.getHostName(), "SUBSCRIBER_HOST_NAME");
+ }
+
+ @Test
+ public void testMapTCAConfigToSubscriberConfigFunctionMap() {
+ DMaaPMRSubscriberConfig dMaaPMRSubscriberConfig =
+ AppPreferencesToSubscriberConfigMapper.map(getTCATestAppPreferences());
+ assertEquals(dMaaPMRSubscriberConfig.getHostName(), "SUBSCRIBER_HOST_NAME");
+ }
+
+ @Test
+ public void testMapTCAConfigToSubscriberConfigFunctionAllNull() {
+ DMaaPMRSubscriberConfig dMaaPMRSubscriberConfig =
+ (new AppPreferencesToSubscriberConfigMapper()).apply(new TCATestAppPreferences());
+ assertNull(dMaaPMRSubscriberConfig.getHostName());
+ }
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/TCAUtilsTest.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/TCAUtilsTest.java
new file mode 100644
index 0000000..19c80d2
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/utils/TCAUtilsTest.java
@@ -0,0 +1,357 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.utils;
+
+import co.cask.cdap.api.RuntimeContext;
+import com.google.common.base.Supplier;
+import com.google.common.collect.ImmutableSet;
+import com.google.common.collect.Table;
+import org.apache.commons.lang3.tuple.Pair;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.rules.ExpectedException;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.openecomp.dcae.analytics.common.exception.MessageProcessingException;
+import org.openecomp.dcae.analytics.model.domain.cef.CommonEventHeader;
+import org.openecomp.dcae.analytics.model.domain.cef.Event;
+import org.openecomp.dcae.analytics.model.domain.cef.EventListener;
+import org.openecomp.dcae.analytics.model.domain.cef.EventSeverity;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.MetricsPerFunctionalRole;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.TCAPolicy;
+import org.openecomp.dcae.analytics.model.domain.policy.tca.Threshold;
+import org.openecomp.dcae.analytics.model.facade.tca.TCAVESResponse;
+import org.openecomp.dcae.analytics.model.util.AnalyticsModelIOUtils;
+import org.openecomp.dcae.analytics.tca.BaseAnalyticsTCAUnitTest;
+import org.openecomp.dcae.analytics.tca.processor.TCACEFProcessorContext;
+import org.openecomp.dcae.analytics.tca.settings.TCAAppPreferences;
+
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+
+import static org.hamcrest.CoreMatchers.is;
+import static org.hamcrest.CoreMatchers.isA;
+import static org.hamcrest.Matchers.containsInAnyOrder;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNotNull;
+import static org.junit.Assert.assertNull;
+import static org.junit.Assert.assertThat;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+/**
+ * @author Rajiv Singla. Creation Date: 11/9/2016.
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class TCAUtilsTest extends BaseAnalyticsTCAUnitTest {
+
+ @Test
+ public void testGetPolicyFunctionalRoles() throws Exception {
+
+ final TCAPolicy sampleTCAPolicy = getSampleTCAPolicy();
+ final List<String> policyFunctionalRoles = TCAUtils.getPolicyFunctionalRoles(sampleTCAPolicy);
+
+ assertThat("Policy Functional Roles must contain vFirewall and vLoadBalancer", policyFunctionalRoles,
+ containsInAnyOrder("vFirewall", "vLoadBalancer"));
+ }
+
+ @Test
+ public void testGetPolicyFunctionalRoleSupplier() throws Exception {
+ final TCAPolicy sampleTCAPolicy = getSampleTCAPolicy();
+ final Supplier<List<String>> policyFunctionalRoleSupplier = TCAUtils.getPolicyFunctionalRoleSupplier
+ (sampleTCAPolicy);
+ final List<String> policyFunctionalRoles = policyFunctionalRoleSupplier.get();
+ assertThat("Policy Functional Roles must contain vFirewall and vLoadBalancer", policyFunctionalRoles,
+ containsInAnyOrder("vFirewall", "vLoadBalancer"));
+ }
+
+ @Test
+ public void testProcessCEFMessage() throws Exception {
+ final String cefMessageString = fromStream(CEF_MESSAGE_JSON_FILE_LOCATION);
+ final TCACEFProcessorContext tcacefProcessorContext = TCAUtils.filterCEFMessage(cefMessageString,
+ getSampleTCAPolicy());
+ assertThat("TCAECEFProcessor Processor Context can continue flag is true", tcacefProcessorContext
+ .canProcessingContinue(), is(true));
+ }
+
+ @Test
+ public void testGetPolicyFRThresholdsTableSupplier() throws Exception {
+ final Table<String, String, List<Threshold>> policyFRThresholdPathTable = TCAUtils
+ .getPolicyFRThresholdsTableSupplier(getSampleTCAPolicy()).get();
+
+ final Map<String, List<Threshold>> vFirewall = policyFRThresholdPathTable.row("vFirewall");
+ final Map<String, List<Threshold>> vLoadBalancer = policyFRThresholdPathTable.row("vLoadBalancer");
+
+ final Set<String> vFirewallThresholdPaths = vFirewall.keySet();
+ final Set<String> vLoadBalancerPaths = vLoadBalancer.keySet();
+
+ assertThat("vFirewall threshold field path size must be " +
+ "\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].bytesIn\"",
+ vFirewallThresholdPaths.iterator().next(),
+ is("$.event.measurementsForVfScalingFields.vNicUsageArray[*].bytesIn"));
+
+ assertThat("vLoadBalancer threshold field path size must be " +
+ "\"\"$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn\"",
+ vLoadBalancerPaths.iterator().next(),
+ is("$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn"));
+
+ final List<Threshold> firewallThresholds = policyFRThresholdPathTable.get("vFirewall",
+ "$.event.measurementsForVfScalingFields.vNicUsageArray[*].bytesIn");
+ final List<Threshold> vLoadBalancerThresholds = policyFRThresholdPathTable.get("vLoadBalancer",
+ "$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn");
+
+ assertThat("vFirewall Threshold size must be 2", firewallThresholds.size(), is(2));
+ assertThat("vLoadBalancer Threshold size must be 2", vLoadBalancerThresholds.size(), is(2));
+ }
+
+ @Test
+ public void testGetJsonPathValueWithValidMessageAndPolicy() throws Exception {
+ final String cefMessageString = fromStream(CEF_MESSAGE_JSON_FILE_LOCATION);
+ final String jsonPath = "$.event.measurementsForVfScalingFields.vNicUsageArray[*].bytesIn";
+ final ImmutableSet<String> fieldPaths = ImmutableSet.of(jsonPath);
+ final Map<String, List<Long>> jsonPathValueMap = TCAUtils.getJsonPathValue(cefMessageString, fieldPaths);
+ assertThat("Json Path value must match", jsonPathValueMap.get(jsonPath).get(0), is(6086L));
+
+ }
+
+ @Test
+ public void testGetJsonPathValueWithValidPath() throws Exception {
+ final String cefMessageString = fromStream(CEF_MESSAGE_JSON_FILE_LOCATION);
+ final String jsonPath = "$.event.measurementsForVfScalingFields.vNicUsageArray[*].invalid";
+ final ImmutableSet<String> fieldPaths = ImmutableSet.of(jsonPath);
+ final Map<String, List<Long>> jsonPathValueMap = TCAUtils.getJsonPathValue(cefMessageString, fieldPaths);
+ assertThat("Json path value must be empty", jsonPathValueMap.size(), is(0));
+
+ }
+
+ @Test
+ public void testGetValidatedTCAAppPreferences() throws Exception {
+ RuntimeContext runtimeContext = mock(RuntimeContext.class);
+ when(runtimeContext.getRuntimeArguments()).thenReturn(getPreferenceMap());
+ TCAAppPreferences validatedTCAAppPreferences = TCAUtils.getValidatedTCAAppPreferences(runtimeContext);
+ assertEquals(validatedTCAAppPreferences.getSubscriberHostName(), "mrlocal-mtnjftle01.homer.com");
+ }
+
+ @Test
+ public void testGetValidatedTCAAppPreferencesWhenDMaaPUrlArePresent() throws Exception {
+ RuntimeContext runtimeContext = mock(RuntimeContext.class);
+ final Map<String, String> preferenceMap = getPreferenceMap();
+ preferenceMap.put("dmaap.in.event-input.dmaapUrl",
+ "http://zldcmtd1njcoll00.research.com/unauthenticated.SEC_MEASUREMENT_OUTPUT");
+ preferenceMap.put("dmaap.out.alert-output.dmaapUrl",
+ "http://zldcmtd1njcoll00.research.com/unauthenticated.TCA_EVENT_OUTPUT");
+
+ preferenceMap.put("dmaap.in.event-input.dmaapUserName", null);
+ preferenceMap.put("dmaap.in.event-input.dmaapPassword", null);
+ preferenceMap.put("dmaap.out.alert-output.dmaapUserName", null);
+ preferenceMap.put("dmaap.out.alert-output.dmaapPassword", null);
+
+ when(runtimeContext.getRuntimeArguments()).thenReturn(preferenceMap);
+ TCAAppPreferences validatedTCAAppPreferences = TCAUtils.getValidatedTCAAppPreferences(runtimeContext);
+
+ assertEquals(validatedTCAAppPreferences.getSubscriberProtocol(), "http");
+ assertEquals(validatedTCAAppPreferences.getPublisherProtocol(), "http");
+
+ assertEquals(validatedTCAAppPreferences.getSubscriberHostName(), "zldcmtd1njcoll00.research.com");
+ assertEquals(validatedTCAAppPreferences.getPublisherHostName(), "zldcmtd1njcoll00.research.com");
+
+ assertEquals(validatedTCAAppPreferences.getSubscriberHostPort(), new Integer(3904));
+ assertEquals(validatedTCAAppPreferences.getPublisherHostPort(), new Integer(3904));
+
+ assertEquals(validatedTCAAppPreferences.getSubscriberTopicName(), "unauthenticated.SEC_MEASUREMENT_OUTPUT");
+ assertEquals(validatedTCAAppPreferences.getPublisherTopicName(), "unauthenticated.TCA_EVENT_OUTPUT");
+
+ assertNull(validatedTCAAppPreferences.getSubscriberUserName());
+ assertNull(validatedTCAAppPreferences.getSubscriberUserPassword());
+ assertNull(validatedTCAAppPreferences.getPublisherUserName());
+ assertNull(validatedTCAAppPreferences.getPublisherUserPassword());
+
+ }
+
+ @Test
+ public void testCreateNewTCAVESResponse() throws Exception {
+ TCACEFProcessorContext tcacefProcessorContext = mock(TCACEFProcessorContext.class);
+
+ MetricsPerFunctionalRole metricsPerFunctionalRole = mock(MetricsPerFunctionalRole.class);
+ when(metricsPerFunctionalRole.getThresholds()).thenReturn(getThresholds());
+ when(metricsPerFunctionalRole.getPolicyScope()).thenReturn("Test Policy scope");
+ when(tcacefProcessorContext.getMetricsPerFunctionalRole()).thenReturn(metricsPerFunctionalRole);
+ when(metricsPerFunctionalRole.getFunctionalRole()).thenReturn("vLoadBalancer");
+
+ when(tcacefProcessorContext.getCEFEventListener()).thenReturn(getCEFEventListener());
+ TCAVESResponse tcaVESResponse = TCAUtils.createNewTCAVESResponse(tcacefProcessorContext, "TCA_APP_NAME");
+
+ //TODO : Add proper assertions, as the usage is not clearly understood
+ assertThat(tcaVESResponse.getClosedLoopControlName(),
+ is("CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A"));
+ assertThat(tcaVESResponse.getVersion(), is("Test Version"));
+ assertThat(tcaVESResponse.getPolicyScope(), is("Test Policy scope"));
+ }
+
+ @Rule
+ public ExpectedException expectedIllegalArgumentException = ExpectedException.none();
+
+ @Test
+ public void testCreateNewTCAVESResponseNullFunctionalRole() throws Exception {
+ expectedIllegalArgumentException.expect(MessageProcessingException.class);
+ expectedIllegalArgumentException.expectCause(isA(IllegalArgumentException.class));
+ expectedIllegalArgumentException.expectMessage("No violations metrics. Unable to create VES Response");
+
+ TCACEFProcessorContext tcacefProcessorContext = mock(TCACEFProcessorContext.class);
+ TCAVESResponse tcaVESResponse = TCAUtils.createNewTCAVESResponse(tcacefProcessorContext, "TCA_APP_NAME");
+ assertNotNull(tcaVESResponse.getClosedLoopControlName());
+ }
+
+ @Test
+ public void testPrioritizeThresholdViolations() throws Exception {
+
+ Map<String, Threshold> thresholdMap = new HashMap<>();
+ Threshold majorThreshold = mock(Threshold.class);
+ when(majorThreshold.getSeverity()).thenReturn(EventSeverity.MAJOR);
+ thresholdMap.put("MAJOR", majorThreshold);
+
+ Threshold result1 = TCAUtils.prioritizeThresholdViolations(thresholdMap);
+ assertEquals(result1.getSeverity(), EventSeverity.MAJOR);
+
+ Threshold criticalThreshold = mock(Threshold.class);
+ when(criticalThreshold.getSeverity()).thenReturn(EventSeverity.CRITICAL);
+ thresholdMap.put("CRITICAL", criticalThreshold);
+
+ Threshold result2 = TCAUtils.prioritizeThresholdViolations(thresholdMap);
+ assertEquals(result2.getSeverity(), EventSeverity.CRITICAL);
+ }
+
+ @Test
+ public void testCreateViolatedMetrics() throws Exception {
+ TCAPolicy tcaPolicy = getSampleTCAPolicy();
+ Threshold violatedThreshold = getCriticalThreshold();
+ String functionalRole = "vFirewall";
+ MetricsPerFunctionalRole result = TCAUtils.createViolatedMetrics(tcaPolicy, violatedThreshold, functionalRole);
+ assertThat(result.getPolicyScope(), is("resource=vFirewall;type=configuration"));
+ assertThat(result.getPolicyName(), is("configuration.dcae.microservice.tca.xml"));
+ }
+
+ @Test
+ public void testCreateViolatedMetricsWrongFunctionalRole() throws Exception {
+ expectedIllegalArgumentException.expect(MessageProcessingException.class);
+ expectedIllegalArgumentException.expectCause(isA(IllegalStateException.class));
+ expectedIllegalArgumentException.expectMessage("TCA Policy must contain functional Role: badFunctionRoleName");
+
+ TCAPolicy tcaPolicy = getSampleTCAPolicy();
+ Threshold violatedThreshold = getCriticalThreshold();
+ String functionalRole = "badFunctionRoleName";
+ MetricsPerFunctionalRole result = TCAUtils.createViolatedMetrics(tcaPolicy, violatedThreshold, functionalRole);
+ }
+
+ @Test
+ public void testGetDomainAndFunctionalRole() {
+ TCACEFProcessorContext tcacefProcessorContext = mock(TCACEFProcessorContext.class);
+ EventListener eventListener = mock(EventListener.class);
+ Event event = mock(Event.class);
+ CommonEventHeader commonEventHeader = mock(CommonEventHeader.class);
+
+ Pair<String, String> result = TCAUtils.getDomainAndFunctionalRole(tcacefProcessorContext);
+ assertNull(result.getLeft());
+ assertNull(result.getRight());
+
+ when(tcacefProcessorContext.getCEFEventListener()).thenReturn(eventListener);
+ result = TCAUtils.getDomainAndFunctionalRole(tcacefProcessorContext);
+ assertNull(result.getLeft());
+ assertNull(result.getRight());
+
+ when(eventListener.getEvent()).thenReturn(event);
+ result = TCAUtils.getDomainAndFunctionalRole(tcacefProcessorContext);
+ assertNull(result.getLeft());
+ assertNull(result.getRight());
+
+ when(event.getCommonEventHeader()).thenReturn(commonEventHeader);
+ result = TCAUtils.getDomainAndFunctionalRole(tcacefProcessorContext);
+ assertNull(result.getLeft());
+ assertNull(result.getRight());
+
+ when(commonEventHeader.getDomain()).thenReturn("testDomain");
+ when(commonEventHeader.getFunctionalRole()).thenReturn("functionalRole");
+
+ result = TCAUtils.getDomainAndFunctionalRole(tcacefProcessorContext);
+ assertEquals(result.getLeft(), "testDomain");
+ assertEquals(result.getRight(), "functionalRole");
+
+ }
+
+ @Test
+ public void testComputeThresholdViolationsNotPresent() throws Exception {
+ TCACEFProcessorContext tcacefProcessorContext = mock(TCACEFProcessorContext.class);
+ when(tcacefProcessorContext.canProcessingContinue()).thenReturn(true);
+ when(tcacefProcessorContext.getMessage()).thenReturn(getValidCEFMessage());
+
+ when(tcacefProcessorContext.getTCAPolicy()).thenReturn(getSampleTCAPolicy());
+ when(tcacefProcessorContext.getCEFEventListener()).thenReturn(getCEFEventListener());
+
+ TCACEFProcessorContext result = TCAUtils.computeThresholdViolations(tcacefProcessorContext);
+ assertNotNull(result);
+ verify(result, times(0)).setMetricsPerFunctionalRole(Mockito.any(MetricsPerFunctionalRole.class));
+ }
+
+ @Test
+ public void testComputeThresholdViolationsPresent() throws Exception {
+ TCACEFProcessorContext tcacefProcessorContext = mock(TCACEFProcessorContext.class);
+ when(tcacefProcessorContext.canProcessingContinue()).thenReturn(true);
+ final String cefMessageString = fromStream(CEF_MESSAGE_WITH_THRESHOLD_VIOLATION_JSON_FILE_LOCATION);
+ when(tcacefProcessorContext.getMessage()).thenReturn(cefMessageString);
+
+ when(tcacefProcessorContext.getTCAPolicy()).thenReturn(getSampleTCAPolicy());
+ when(tcacefProcessorContext.getCEFEventListener()).thenReturn(getCEFEventListener());
+
+ TCACEFProcessorContext result = TCAUtils.computeThresholdViolations(tcacefProcessorContext);
+ verify(result, times(1)).setMetricsPerFunctionalRole(Mockito.any(MetricsPerFunctionalRole.class));
+ }
+
+
+ @Test
+ public void testConvertRuntimeContextToTCAPolicy() throws Exception {
+
+ final Properties controllerProperties =
+ AnalyticsModelIOUtils.loadPropertiesFile(TCA_CONTROLLER_POLICY_FILE_LOCATION);
+
+ Map<String, String> runtimeArgs = new LinkedHashMap<>();
+ for (Map.Entry<Object, Object> property : controllerProperties.entrySet()) {
+ runtimeArgs.put(property.getKey().toString(), property.getValue().toString());
+ }
+
+ RuntimeContext runtimeContext = mock(RuntimeContext.class);
+ when(runtimeContext.getRuntimeArguments()).thenReturn(runtimeArgs);
+ final TCAPolicy tcaPolicy = TCAUtils.getValidatedTCAPolicyPreferences(runtimeContext);
+
+ assertThat("Policy Domain must be measurementsForVfScaling",
+ tcaPolicy.getDomain(), is("measurementsForVfScaling"));
+
+ assertThat("Policy must have 2 metrics per functional roles",
+ tcaPolicy.getMetricsPerFunctionalRole().size(), is(2));
+
+ }
+}
diff --git a/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRSubscriberJobTest.java b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRSubscriberJobTest.java
new file mode 100644
index 0000000..bc8a6f0
--- /dev/null
+++ b/dcae-analytics-tca/src/test/java/org/openecomp/dcae/analytics/tca/worker/TCADMaaPMRSubscriberJobTest.java
@@ -0,0 +1,80 @@
+/*
+ * ============LICENSE_START=========================================================
+ * dcae-analytics
+ * ================================================================================
+ * Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.openecomp.dcae.analytics.tca.worker;
+
+import co.cask.cdap.api.metrics.Metrics;
+import co.cask.cdap.api.worker.WorkerConfigurer;
+import co.cask.cdap.api.worker.WorkerContext;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mockito;
+import org.mockito.runners.MockitoJUnitRunner;
+import org.openecomp.dcae.analytics.common.AnalyticsConstants;
+import org.openecomp.dcae.analytics.dmaap.service.subscriber.DMaaPMRSubscriber;
+import org.openecomp.dcae.analytics.tca.BaseAnalyticsTCAUnitTest;
+import org.quartz.JobDataMap;
+import org.quartz.JobExecutionContext;
+
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.times;
+import static org.mockito.Mockito.verify;
+import static org.mockito.Mockito.when;
+
+/**
+ * @author Manjesh Gowda. Creation Date: 11/18/2016.
+ */
+@RunWith(MockitoJUnitRunner.class)
+public class TCADMaaPMRSubscriberJobTest extends BaseAnalyticsTCAUnitTest {
+
+ @Test
+ public void testExecute() throws Exception {
+
+ DMaaPMRSubscriber mockDMaaPMRSubscriber = mock(DMaaPMRSubscriber.class);
+ Metrics mockMetrics = mock(Metrics.class);
+
+ WorkerContext workerContext = mock(WorkerContext.class);
+ WorkerConfigurer workerConfigurer = mock(WorkerConfigurer.class);
+ //when(workerContext.getRuntimeArguments()).thenReturn(getPreferenceMap());
+
+ JobExecutionContext mockJobExecutionContext = mock(JobExecutionContext.class);
+ JobDataMap mockJobDataMap = mock(JobDataMap.class);
+ when(mockJobExecutionContext.getMergedJobDataMap()).thenReturn(mockJobDataMap);
+
+ /*when(mockJobDataMap.getString(AnalyticsConstants.CDAP_STREAM_VARIABLE_NAME))
+ .thenReturn(CDAPComponentsConstants.TCA_FIXED_SUBSCRIBER_OUTPUT_NAME_STREAM);*/
+
+ when(mockJobDataMap.get(AnalyticsConstants.WORKER_CONTEXT_VARIABLE_NAME))
+ .thenReturn(workerContext);
+
+ when(mockJobDataMap.get(AnalyticsConstants.DMAAP_SUBSCRIBER_VARIABLE_NAME))
+ .thenReturn(mockDMaaPMRSubscriber);
+
+ /*when(mockJobDataMap.get(AnalyticsConstants.DMAAP_SUBSCRIBER_METRICS_VARIABLE_NAME))
+ .thenReturn(mockMetrics);*/
+
+ TCADMaaPMRSubscriberJob tcaDMaaPMRSubscriberJob = new TCADMaaPMRSubscriberJob();
+ tcaDMaaPMRSubscriberJob.execute(mockJobExecutionContext);
+
+ verify(mockJobDataMap, times(1)).getString(Mockito.anyString());
+ verify(mockJobDataMap, times(3)).get(any());
+ }
+}
diff --git a/dcae-analytics-tca/src/test/resources/data/json/cef/cef_message.json b/dcae-analytics-tca/src/test/resources/data/json/cef/cef_message.json
new file mode 100644
index 0000000..52cf53b
--- /dev/null
+++ b/dcae-analytics-tca/src/test/resources/data/json/cef/cef_message.json
@@ -0,0 +1,37 @@
+{
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6086,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7156,
+ "packetsIn": 93,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070210290442,
+ "eventId": "375",
+ "lastEpochMicrosec": 1477070220290442,
+ "priority": "Normal",
+ "sequence": 375,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+}
diff --git a/dcae-analytics-tca/src/test/resources/data/json/cef/cef_message_with_threshold_violation.json b/dcae-analytics-tca/src/test/resources/data/json/cef/cef_message_with_threshold_violation.json
new file mode 100644
index 0000000..bfb1672
--- /dev/null
+++ b/dcae-analytics-tca/src/test/resources/data/json/cef/cef_message_with_threshold_violation.json
@@ -0,0 +1,37 @@
+{
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 20000,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7156,
+ "packetsIn": 93,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070210290442,
+ "eventId": "375",
+ "lastEpochMicrosec": 1477070220290442,
+ "priority": "Normal",
+ "sequence": 375,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+}
diff --git a/dcae-analytics-tca/src/test/resources/data/json/cef/cef_messages.json b/dcae-analytics-tca/src/test/resources/data/json/cef/cef_messages.json
new file mode 100644
index 0000000..bc7a924
--- /dev/null
+++ b/dcae-analytics-tca/src/test/resources/data/json/cef/cef_messages.json
@@ -0,0 +1,12952 @@
+[
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6086,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7156,
+ "packetsIn": 93,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070210290442,
+ "eventId": "375",
+ "lastEpochMicrosec": 1477070220290442,
+ "priority": "Normal",
+ "sequence": 375,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5403,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 4530,
+ "packetsIn": 78,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070260383311,
+ "eventId": "380",
+ "lastEpochMicrosec": 1477070270383311,
+ "priority": "Normal",
+ "sequence": 380,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3972,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5316,
+ "packetsIn": 56,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070290441950,
+ "eventId": "383",
+ "lastEpochMicrosec": 1477070300441950,
+ "priority": "Normal",
+ "sequence": 383,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4761,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5528,
+ "packetsIn": 70,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070380597960,
+ "eventId": "392",
+ "lastEpochMicrosec": 1477070390597960,
+ "priority": "Normal",
+ "sequence": 392,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5828,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5222,
+ "packetsIn": 89,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070390615151,
+ "eventId": "393",
+ "lastEpochMicrosec": 1477070400615151,
+ "priority": "Normal",
+ "sequence": 393,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3834,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4334,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070701189940,
+ "eventId": "424",
+ "lastEpochMicrosec": 1477070711189940,
+ "priority": "Normal",
+ "sequence": 424,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3892,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4400,
+ "packetsIn": 53,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070851466814,
+ "eventId": "439",
+ "lastEpochMicrosec": 1477070861466814,
+ "priority": "Normal",
+ "sequence": 439,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5948,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5215,
+ "packetsIn": 90,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070931613946,
+ "eventId": "447",
+ "lastEpochMicrosec": 1477070941613946,
+ "priority": "Normal",
+ "sequence": 447,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4324,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5436,
+ "packetsIn": 57,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070971689950,
+ "eventId": "451",
+ "lastEpochMicrosec": 1477070981689950,
+ "priority": "Normal",
+ "sequence": 451,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5918,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 34,
+ "bytesOut": 5668,
+ "packetsIn": 91,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070991724150,
+ "eventId": "453",
+ "lastEpochMicrosec": 1477071001724150,
+ "priority": "Normal",
+ "sequence": 453,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4200,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 5192,
+ "packetsIn": 63,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071081905713,
+ "eventId": "462",
+ "lastEpochMicrosec": 1477071091905713,
+ "priority": "Normal",
+ "sequence": 462,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4490,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 36,
+ "bytesOut": 5920,
+ "packetsIn": 67,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071262221510,
+ "eventId": "480",
+ "lastEpochMicrosec": 1477071272221510,
+ "priority": "Normal",
+ "sequence": 480,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 25940,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 157,
+ "bytesOut": 27474,
+ "packetsIn": 303,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071412476618,
+ "eventId": "495",
+ "lastEpochMicrosec": 1477071422476618,
+ "priority": "Normal",
+ "sequence": 495,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7160,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5418,
+ "packetsIn": 112,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071532712315,
+ "eventId": "507",
+ "lastEpochMicrosec": 1477071542712315,
+ "priority": "Normal",
+ "sequence": 507,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5563,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4192,
+ "packetsIn": 81,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071582806156,
+ "eventId": "512",
+ "lastEpochMicrosec": 1477071592806156,
+ "priority": "Normal",
+ "sequence": 512,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4988,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5218,
+ "packetsIn": 77,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071592825964,
+ "eventId": "513",
+ "lastEpochMicrosec": 1477071602825964,
+ "priority": "Normal",
+ "sequence": 513,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 9123,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 53,
+ "bytesOut": 8412,
+ "packetsIn": 127,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071642920935,
+ "eventId": "518",
+ "lastEpochMicrosec": 1477071652920935,
+ "priority": "Normal",
+ "sequence": 518,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 18442,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 112,
+ "bytesOut": 19404,
+ "packetsIn": 218,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071733101176,
+ "eventId": "527",
+ "lastEpochMicrosec": 1477071743101176,
+ "priority": "Normal",
+ "sequence": 527,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5216,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5130,
+ "packetsIn": 80,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071743125902,
+ "eventId": "528",
+ "lastEpochMicrosec": 1477071753125902,
+ "priority": "Normal",
+ "sequence": 528,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5870,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 36,
+ "bytesOut": 6716,
+ "packetsIn": 91,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071903446337,
+ "eventId": "544",
+ "lastEpochMicrosec": 1477071913446337,
+ "priority": "Normal",
+ "sequence": 544,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 35138,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 220,
+ "bytesOut": 47818,
+ "packetsIn": 407,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071953549981,
+ "eventId": "549",
+ "lastEpochMicrosec": 1477071963549981,
+ "priority": "Normal",
+ "sequence": 549,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 63510,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 398,
+ "bytesOut": 71038,
+ "packetsIn": 703,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071963565170,
+ "eventId": "550",
+ "lastEpochMicrosec": 1477071973565170,
+ "priority": "Normal",
+ "sequence": 550,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4250,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 5060,
+ "packetsIn": 64,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072103847337,
+ "eventId": "564",
+ "lastEpochMicrosec": 1477072113847337,
+ "priority": "Normal",
+ "sequence": 564,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3344,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 23,
+ "bytesOut": 4138,
+ "packetsIn": 49,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072163977616,
+ "eventId": "570",
+ "lastEpochMicrosec": 1477072173977616,
+ "priority": "Normal",
+ "sequence": 570,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4190,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 5032,
+ "packetsIn": 63,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072194037594,
+ "eventId": "573",
+ "lastEpochMicrosec": 1477072204037594,
+ "priority": "Normal",
+ "sequence": 573,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4102,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5418,
+ "packetsIn": 54,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072234105966,
+ "eventId": "577",
+ "lastEpochMicrosec": 1477072244105966,
+ "priority": "Normal",
+ "sequence": 577,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4040,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5410,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072284197410,
+ "eventId": "582",
+ "lastEpochMicrosec": 1477072294197410,
+ "priority": "Normal",
+ "sequence": 582,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4348,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5556,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072294217952,
+ "eventId": "583",
+ "lastEpochMicrosec": 1477072304217952,
+ "priority": "Normal",
+ "sequence": 583,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4820,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5402,
+ "packetsIn": 66,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072354321794,
+ "eventId": "589",
+ "lastEpochMicrosec": 1477072364321794,
+ "priority": "Normal",
+ "sequence": 589,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5006,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7156,
+ "packetsIn": 73,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072454499759,
+ "eventId": "599",
+ "lastEpochMicrosec": 1477072464499759,
+ "priority": "Normal",
+ "sequence": 599,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4964,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 35,
+ "bytesOut": 5834,
+ "packetsIn": 75,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072494602015,
+ "eventId": "603",
+ "lastEpochMicrosec": 1477072504602015,
+ "priority": "Normal",
+ "sequence": 603,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5330,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 46,
+ "bytesOut": 7420,
+ "packetsIn": 80,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072634866475,
+ "eventId": "617",
+ "lastEpochMicrosec": 1477072644866475,
+ "priority": "Normal",
+ "sequence": 617,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5330,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 46,
+ "bytesOut": 7420,
+ "packetsIn": 80,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072745069203,
+ "eventId": "628",
+ "lastEpochMicrosec": 1477072755069203,
+ "priority": "Normal",
+ "sequence": 628,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 263112,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 1165,
+ "bytesOut": 337182,
+ "packetsIn": 2570,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072805174346,
+ "eventId": "634",
+ "lastEpochMicrosec": 1477072815174346,
+ "priority": "Normal",
+ "sequence": 634,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 11212,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4232,
+ "packetsIn": 176,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072835250994,
+ "eventId": "637",
+ "lastEpochMicrosec": 1477072845250994,
+ "priority": "Normal",
+ "sequence": 637,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6375,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5516,
+ "packetsIn": 94,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072845276414,
+ "eventId": "638",
+ "lastEpochMicrosec": 1477072855276414,
+ "priority": "Normal",
+ "sequence": 638,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3492,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 5252,
+ "packetsIn": 50,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072995553968,
+ "eventId": "653",
+ "lastEpochMicrosec": 1477073005553968,
+ "priority": "Normal",
+ "sequence": 653,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4256,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5407,
+ "packetsIn": 63,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073095741898,
+ "eventId": "663",
+ "lastEpochMicrosec": 1477073105741898,
+ "priority": "Normal",
+ "sequence": 663,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4280,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4866,
+ "packetsIn": 56,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073195929121,
+ "eventId": "673",
+ "lastEpochMicrosec": 1477073205929121,
+ "priority": "Normal",
+ "sequence": 673,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4076,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5126,
+ "packetsIn": 61,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073286097936,
+ "eventId": "682",
+ "lastEpochMicrosec": 1477073296097936,
+ "priority": "Normal",
+ "sequence": 682,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5054,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 38,
+ "bytesOut": 6600,
+ "packetsIn": 78,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073366234417,
+ "eventId": "690",
+ "lastEpochMicrosec": 1477073376234417,
+ "priority": "Normal",
+ "sequence": 690,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5186,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7220,
+ "packetsIn": 78,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073426339606,
+ "eventId": "696",
+ "lastEpochMicrosec": 1477073436339606,
+ "priority": "Normal",
+ "sequence": 696,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4568,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 39,
+ "bytesOut": 6606,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073556577962,
+ "eventId": "709",
+ "lastEpochMicrosec": 1477073566577962,
+ "priority": "Normal",
+ "sequence": 709,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4472,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5630,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073606669965,
+ "eventId": "714",
+ "lastEpochMicrosec": 1477073616669965,
+ "priority": "Normal",
+ "sequence": 714,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3554,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 5192,
+ "packetsIn": 52,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073666794004,
+ "eventId": "720",
+ "lastEpochMicrosec": 1477073676794004,
+ "priority": "Normal",
+ "sequence": 720,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4682,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 38,
+ "bytesOut": 6540,
+ "packetsIn": 70,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070300458069,
+ "eventId": "384",
+ "lastEpochMicrosec": 1477070310458069,
+ "priority": "Normal",
+ "sequence": 384,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4470,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 43,
+ "bytesOut": 7250,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070350545310,
+ "eventId": "389",
+ "lastEpochMicrosec": 1477070360545310,
+ "priority": "Normal",
+ "sequence": 389,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5864,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 45,
+ "bytesOut": 7318,
+ "packetsIn": 88,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070450716636,
+ "eventId": "399",
+ "lastEpochMicrosec": 1477070460716636,
+ "priority": "Normal",
+ "sequence": 399,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3558,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5362,
+ "packetsIn": 51,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070470756168,
+ "eventId": "401",
+ "lastEpochMicrosec": 1477070480756168,
+ "priority": "Normal",
+ "sequence": 401,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5022,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 45,
+ "bytesOut": 7382,
+ "packetsIn": 74,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070530883239,
+ "eventId": "407",
+ "lastEpochMicrosec": 1477070540883239,
+ "priority": "Normal",
+ "sequence": 407,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4816,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5344,
+ "packetsIn": 66,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070611026436,
+ "eventId": "415",
+ "lastEpochMicrosec": 1477070621026436,
+ "priority": "Normal",
+ "sequence": 415,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 8898,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 63,
+ "bytesOut": 9201,
+ "packetsIn": 113,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070831428780,
+ "eventId": "437",
+ "lastEpochMicrosec": 1477070841428780,
+ "priority": "Normal",
+ "sequence": 437,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3836,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 23,
+ "bytesOut": 4162,
+ "packetsIn": 57,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070941633936,
+ "eventId": "448",
+ "lastEpochMicrosec": 1477070951633936,
+ "priority": "Normal",
+ "sequence": 448,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3248,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 4546,
+ "packetsIn": 47,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071071883807,
+ "eventId": "461",
+ "lastEpochMicrosec": 1477071081883807,
+ "priority": "Normal",
+ "sequence": 461,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5006,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5286,
+ "packetsIn": 76,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071172066272,
+ "eventId": "471",
+ "lastEpochMicrosec": 1477071182066272,
+ "priority": "Normal",
+ "sequence": 471,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5438,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 34,
+ "bytesOut": 6084,
+ "packetsIn": 83,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071182086282,
+ "eventId": "472",
+ "lastEpochMicrosec": 1477071192086282,
+ "priority": "Normal",
+ "sequence": 472,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 14114,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 92,
+ "bytesOut": 16060,
+ "packetsIn": 172,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071382426114,
+ "eventId": "492",
+ "lastEpochMicrosec": 1477071392426114,
+ "priority": "Normal",
+ "sequence": 492,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5617,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5427,
+ "packetsIn": 86,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071542733962,
+ "eventId": "508",
+ "lastEpochMicrosec": 1477071552733962,
+ "priority": "Normal",
+ "sequence": 508,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4448,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 4538,
+ "packetsIn": 67,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071682993575,
+ "eventId": "522",
+ "lastEpochMicrosec": 1477071692993575,
+ "priority": "Normal",
+ "sequence": 522,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6113,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5298,
+ "packetsIn": 87,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071703031027,
+ "eventId": "524",
+ "lastEpochMicrosec": 1477071713031027,
+ "priority": "Normal",
+ "sequence": 524,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5542,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5434,
+ "packetsIn": 78,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071813273088,
+ "eventId": "535",
+ "lastEpochMicrosec": 1477071823273088,
+ "priority": "Normal",
+ "sequence": 535,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 34574,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 214,
+ "bytesOut": 47040,
+ "packetsIn": 395,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072023686281,
+ "eventId": "556",
+ "lastEpochMicrosec": 1477072033686281,
+ "priority": "Normal",
+ "sequence": 556,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 2798,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 22,
+ "bytesOut": 4028,
+ "packetsIn": 40,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072093829958,
+ "eventId": "563",
+ "lastEpochMicrosec": 1477072103829958,
+ "priority": "Normal",
+ "sequence": 563,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3446,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5536,
+ "packetsIn": 50,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072153957985,
+ "eventId": "569",
+ "lastEpochMicrosec": 1477072163957985,
+ "priority": "Normal",
+ "sequence": 569,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4190,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 36,
+ "bytesOut": 6760,
+ "packetsIn": 62,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072204053021,
+ "eventId": "574",
+ "lastEpochMicrosec": 1477072214053021,
+ "priority": "Normal",
+ "sequence": 574,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5939,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 4522,
+ "packetsIn": 85,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072244123508,
+ "eventId": "578",
+ "lastEpochMicrosec": 1477072254123508,
+ "priority": "Normal",
+ "sequence": 578,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4022,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 4584,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072464518421,
+ "eventId": "600",
+ "lastEpochMicrosec": 1477072474518421,
+ "priority": "Normal",
+ "sequence": 600,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3692,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 21,
+ "bytesOut": 3918,
+ "packetsIn": 47,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072654900903,
+ "eventId": "619",
+ "lastEpochMicrosec": 1477072664900903,
+ "priority": "Normal",
+ "sequence": 619,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5006,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5728,
+ "packetsIn": 76,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072704996775,
+ "eventId": "624",
+ "lastEpochMicrosec": 1477072714996775,
+ "priority": "Normal",
+ "sequence": 624,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3836,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 5036,
+ "packetsIn": 57,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072925428340,
+ "eventId": "646",
+ "lastEpochMicrosec": 1477072935428340,
+ "priority": "Normal",
+ "sequence": 646,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4040,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5382,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072985535172,
+ "eventId": "652",
+ "lastEpochMicrosec": 1477072995535172,
+ "priority": "Normal",
+ "sequence": 652,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4694,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5316,
+ "packetsIn": 63,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073075701224,
+ "eventId": "661",
+ "lastEpochMicrosec": 1477073085701224,
+ "priority": "Normal",
+ "sequence": 661,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5066,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7120,
+ "packetsIn": 76,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073105759457,
+ "eventId": "664",
+ "lastEpochMicrosec": 1477073115759457,
+ "priority": "Normal",
+ "sequence": 664,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5510,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 46,
+ "bytesOut": 7421,
+ "packetsIn": 83,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073155858608,
+ "eventId": "669",
+ "lastEpochMicrosec": 1477073165858608,
+ "priority": "Normal",
+ "sequence": 669,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4146,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5214,
+ "packetsIn": 61,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073416320492,
+ "eventId": "695",
+ "lastEpochMicrosec": 1477073426320492,
+ "priority": "Normal",
+ "sequence": 695,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5610,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 44,
+ "bytesOut": 7392,
+ "packetsIn": 76,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073436360527,
+ "eventId": "697",
+ "lastEpochMicrosec": 1477073446360527,
+ "priority": "Normal",
+ "sequence": 697,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6777,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5276,
+ "packetsIn": 101,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073506489807,
+ "eventId": "704",
+ "lastEpochMicrosec": 1477073516489807,
+ "priority": "Normal",
+ "sequence": 704,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4898,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 34,
+ "bytesOut": 6005,
+ "packetsIn": 74,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073516505974,
+ "eventId": "705",
+ "lastEpochMicrosec": 1477073526505974,
+ "priority": "Normal",
+ "sequence": 705,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3902,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5120,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073656765261,
+ "eventId": "719",
+ "lastEpochMicrosec": 1477073666765261,
+ "priority": "Normal",
+ "sequence": 719,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7185,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 37,
+ "bytesOut": 6488,
+ "packetsIn": 108,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073686831588,
+ "eventId": "722",
+ "lastEpochMicrosec": 1477073696831588,
+ "priority": "Normal",
+ "sequence": 722,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4778,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5084,
+ "packetsIn": 72,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070240346627,
+ "eventId": "378",
+ "lastEpochMicrosec": 1477070250346627,
+ "priority": "Normal",
+ "sequence": 378,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5318,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4864,
+ "packetsIn": 82,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070270398947,
+ "eventId": "381",
+ "lastEpochMicrosec": 1477070280398947,
+ "priority": "Normal",
+ "sequence": 381,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5079,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5266,
+ "packetsIn": 71,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070440700538,
+ "eventId": "398",
+ "lastEpochMicrosec": 1477070450700538,
+ "priority": "Normal",
+ "sequence": 398,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3866,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 22,
+ "bytesOut": 3980,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070601009676,
+ "eventId": "414",
+ "lastEpochMicrosec": 1477070611009676,
+ "priority": "Normal",
+ "sequence": 414,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 10154,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 43,
+ "bytesOut": 7884,
+ "packetsIn": 99,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070751281687,
+ "eventId": "429",
+ "lastEpochMicrosec": 1477070761281687,
+ "priority": "Normal",
+ "sequence": 429,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7970,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5427,
+ "packetsIn": 128,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070781332864,
+ "eventId": "432",
+ "lastEpochMicrosec": 1477070791332864,
+ "priority": "Normal",
+ "sequence": 432,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6052,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7480,
+ "packetsIn": 82,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070891536182,
+ "eventId": "443",
+ "lastEpochMicrosec": 1477070901536182,
+ "priority": "Normal",
+ "sequence": 443,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5080,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 44,
+ "bytesOut": 7288,
+ "packetsIn": 69,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071031806592,
+ "eventId": "457",
+ "lastEpochMicrosec": 1477071041806592,
+ "priority": "Normal",
+ "sequence": 457,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4777,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4122,
+ "packetsIn": 67,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071041825555,
+ "eventId": "458",
+ "lastEpochMicrosec": 1477071051825555,
+ "priority": "Normal",
+ "sequence": 458,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4736,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4302,
+ "packetsIn": 72,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071111957977,
+ "eventId": "465",
+ "lastEpochMicrosec": 1477071121957977,
+ "priority": "Normal",
+ "sequence": 465,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6283,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 35,
+ "bytesOut": 5272,
+ "packetsIn": 89,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071162050981,
+ "eventId": "470",
+ "lastEpochMicrosec": 1477071172050981,
+ "priority": "Normal",
+ "sequence": 470,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5010,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 43,
+ "bytesOut": 7250,
+ "packetsIn": 74,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071192103048,
+ "eventId": "473",
+ "lastEpochMicrosec": 1477071202103048,
+ "priority": "Normal",
+ "sequence": 473,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3360,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 5112,
+ "packetsIn": 48,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071252204852,
+ "eventId": "479",
+ "lastEpochMicrosec": 1477071262204852,
+ "priority": "Normal",
+ "sequence": 479,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3912,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5324,
+ "packetsIn": 57,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071312304729,
+ "eventId": "485",
+ "lastEpochMicrosec": 1477071322304729,
+ "priority": "Normal",
+ "sequence": 485,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4568,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5294,
+ "packetsIn": 70,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071352377904,
+ "eventId": "489",
+ "lastEpochMicrosec": 1477071362377904,
+ "priority": "Normal",
+ "sequence": 489,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 26549,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 158,
+ "bytesOut": 28258,
+ "packetsIn": 311,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071402460522,
+ "eventId": "494",
+ "lastEpochMicrosec": 1477071412460522,
+ "priority": "Normal",
+ "sequence": 494,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5329,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4270,
+ "packetsIn": 78,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071462573938,
+ "eventId": "500",
+ "lastEpochMicrosec": 1477071472573938,
+ "priority": "Normal",
+ "sequence": 500,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6232,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 46,
+ "bytesOut": 7420,
+ "packetsIn": 86,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071572787941,
+ "eventId": "511",
+ "lastEpochMicrosec": 1477071582787941,
+ "priority": "Normal",
+ "sequence": 511,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4532,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 20,
+ "bytesOut": 3809,
+ "packetsIn": 69,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071662956095,
+ "eventId": "520",
+ "lastEpochMicrosec": 1477071672956095,
+ "priority": "Normal",
+ "sequence": 520,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4520,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5490,
+ "packetsIn": 68,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071672977950,
+ "eventId": "521",
+ "lastEpochMicrosec": 1477071682977950,
+ "priority": "Normal",
+ "sequence": 521,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5002,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 4734,
+ "packetsIn": 68,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071693013688,
+ "eventId": "523",
+ "lastEpochMicrosec": 1477071703013688,
+ "priority": "Normal",
+ "sequence": 523,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5516,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 5023,
+ "packetsIn": 85,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071893429573,
+ "eventId": "543",
+ "lastEpochMicrosec": 1477071903429573,
+ "priority": "Normal",
+ "sequence": 543,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 18644,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 120,
+ "bytesOut": 20884,
+ "packetsIn": 230,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071923478914,
+ "eventId": "546",
+ "lastEpochMicrosec": 1477071933478914,
+ "priority": "Normal",
+ "sequence": 546,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4914,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5640,
+ "packetsIn": 71,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071983602387,
+ "eventId": "552",
+ "lastEpochMicrosec": 1477071993602387,
+ "priority": "Normal",
+ "sequence": 552,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 8506,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 60,
+ "bytesOut": 11100,
+ "packetsIn": 110,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071993632316,
+ "eventId": "553",
+ "lastEpochMicrosec": 1477072003632316,
+ "priority": "Normal",
+ "sequence": 553,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 17750,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 120,
+ "bytesOut": 25832,
+ "packetsIn": 215,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072043723108,
+ "eventId": "558",
+ "lastEpochMicrosec": 1477072053723108,
+ "priority": "Normal",
+ "sequence": 558,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4592,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5504,
+ "packetsIn": 69,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072143938037,
+ "eventId": "568",
+ "lastEpochMicrosec": 1477072153938037,
+ "priority": "Normal",
+ "sequence": 568,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 8125,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 55,
+ "bytesOut": 8060,
+ "packetsIn": 119,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072364341906,
+ "eventId": "590",
+ "lastEpochMicrosec": 1477072374341906,
+ "priority": "Normal",
+ "sequence": 590,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4136,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5851,
+ "packetsIn": 62,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072374359351,
+ "eventId": "591",
+ "lastEpochMicrosec": 1477072384359351,
+ "priority": "Normal",
+ "sequence": 591,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4388,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5206,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072474537911,
+ "eventId": "601",
+ "lastEpochMicrosec": 1477072484537911,
+ "priority": "Normal",
+ "sequence": 601,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5228,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 38,
+ "bytesOut": 6932,
+ "packetsIn": 71,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072534679739,
+ "eventId": "607",
+ "lastEpochMicrosec": 1477072544679739,
+ "priority": "Normal",
+ "sequence": 607,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3836,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5018,
+ "packetsIn": 55,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072574755001,
+ "eventId": "611",
+ "lastEpochMicrosec": 1477072584755001,
+ "priority": "Normal",
+ "sequence": 611,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6919,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5628,
+ "packetsIn": 104,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072725036569,
+ "eventId": "626",
+ "lastEpochMicrosec": 1477072735036569,
+ "priority": "Normal",
+ "sequence": 626,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4442,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 38,
+ "bytesOut": 6892,
+ "packetsIn": 66,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072855292945,
+ "eventId": "639",
+ "lastEpochMicrosec": 1477072865292945,
+ "priority": "Normal",
+ "sequence": 639,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6909,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 6802,
+ "packetsIn": 102,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072905381152,
+ "eventId": "644",
+ "lastEpochMicrosec": 1477072915381152,
+ "priority": "Normal",
+ "sequence": 644,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4826,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7156,
+ "packetsIn": 72,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072945465009,
+ "eventId": "648",
+ "lastEpochMicrosec": 1477072955465009,
+ "priority": "Normal",
+ "sequence": 648,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3636,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4160,
+ "packetsIn": 53,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073115777000,
+ "eventId": "665",
+ "lastEpochMicrosec": 1477073125777000,
+ "priority": "Normal",
+ "sequence": 665,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4098,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5354,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073235998974,
+ "eventId": "677",
+ "lastEpochMicrosec": 1477073245998974,
+ "priority": "Normal",
+ "sequence": 677,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4508,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5166,
+ "packetsIn": 68,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073246017901,
+ "eventId": "678",
+ "lastEpochMicrosec": 1477073256017901,
+ "priority": "Normal",
+ "sequence": 678,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4026,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5358,
+ "packetsIn": 59,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073296117387,
+ "eventId": "683",
+ "lastEpochMicrosec": 1477073306117387,
+ "priority": "Normal",
+ "sequence": 683,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3938,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4168,
+ "packetsIn": 49,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073376250039,
+ "eventId": "691",
+ "lastEpochMicrosec": 1477073386250039,
+ "priority": "Normal",
+ "sequence": 691,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4514,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5324,
+ "packetsIn": 70,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073586625284,
+ "eventId": "712",
+ "lastEpochMicrosec": 1477073596625284,
+ "priority": "Normal",
+ "sequence": 712,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5193,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 35,
+ "bytesOut": 5748,
+ "packetsIn": 74,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070200274642,
+ "eventId": "374",
+ "lastEpochMicrosec": 1477070210274642,
+ "priority": "Normal",
+ "sequence": 374,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4208,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 4874,
+ "packetsIn": 63,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070220308044,
+ "eventId": "376",
+ "lastEpochMicrosec": 1477070230308044,
+ "priority": "Normal",
+ "sequence": 376,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4102,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5346,
+ "packetsIn": 55,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070490793952,
+ "eventId": "403",
+ "lastEpochMicrosec": 1477070500793952,
+ "priority": "Normal",
+ "sequence": 403,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3278,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 22,
+ "bytesOut": 4036,
+ "packetsIn": 48,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070540900880,
+ "eventId": "408",
+ "lastEpochMicrosec": 1477070550900880,
+ "priority": "Normal",
+ "sequence": 408,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4094,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5333,
+ "packetsIn": 61,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070580972300,
+ "eventId": "412",
+ "lastEpochMicrosec": 1477070590972300,
+ "priority": "Normal",
+ "sequence": 412,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6261,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5472,
+ "packetsIn": 93,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070621041944,
+ "eventId": "416",
+ "lastEpochMicrosec": 1477070631041944,
+ "priority": "Normal",
+ "sequence": 416,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4462,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5302,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070671133935,
+ "eventId": "421",
+ "lastEpochMicrosec": 1477070681133935,
+ "priority": "Normal",
+ "sequence": 421,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3518,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 22,
+ "bytesOut": 4028,
+ "packetsIn": 52,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070721225970,
+ "eventId": "426",
+ "lastEpochMicrosec": 1477070731225970,
+ "priority": "Normal",
+ "sequence": 426,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7454,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 50,
+ "bytesOut": 7435,
+ "packetsIn": 100,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070771317040,
+ "eventId": "431",
+ "lastEpochMicrosec": 1477070781317040,
+ "priority": "Normal",
+ "sequence": 431,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 46408,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 282,
+ "bytesOut": 41467,
+ "packetsIn": 531,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070811385505,
+ "eventId": "435",
+ "lastEpochMicrosec": 1477070821385505,
+ "priority": "Normal",
+ "sequence": 435,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4444,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 4436,
+ "packetsIn": 61,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071091925961,
+ "eventId": "463",
+ "lastEpochMicrosec": 1477071101925961,
+ "priority": "Normal",
+ "sequence": 463,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5120,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 4898,
+ "packetsIn": 77,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071362393895,
+ "eventId": "490",
+ "lastEpochMicrosec": 1477071372393895,
+ "priority": "Normal",
+ "sequence": 490,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4314,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4326,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071372410540,
+ "eventId": "491",
+ "lastEpochMicrosec": 1477071382410540,
+ "priority": "Normal",
+ "sequence": 491,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5072,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5518,
+ "packetsIn": 77,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071422497943,
+ "eventId": "496",
+ "lastEpochMicrosec": 1477071432497943,
+ "priority": "Normal",
+ "sequence": 496,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4868,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5286,
+ "packetsIn": 72,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071602842823,
+ "eventId": "514",
+ "lastEpochMicrosec": 1477071612842823,
+ "priority": "Normal",
+ "sequence": 514,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5534,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5324,
+ "packetsIn": 85,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071863369947,
+ "eventId": "540",
+ "lastEpochMicrosec": 1477071873369947,
+ "priority": "Normal",
+ "sequence": 540,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4594,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 23,
+ "bytesOut": 4074,
+ "packetsIn": 63,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071873389953,
+ "eventId": "541",
+ "lastEpochMicrosec": 1477071883389953,
+ "priority": "Normal",
+ "sequence": 541,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 9377,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 46,
+ "bytesOut": 7894,
+ "packetsIn": 130,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071883407370,
+ "eventId": "542",
+ "lastEpochMicrosec": 1477071893407370,
+ "priority": "Normal",
+ "sequence": 542,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5864,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 45,
+ "bytesOut": 7318,
+ "packetsIn": 88,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071913462011,
+ "eventId": "545",
+ "lastEpochMicrosec": 1477071923462011,
+ "priority": "Normal",
+ "sequence": 545,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 27350,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 164,
+ "bytesOut": 35804,
+ "packetsIn": 324,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072013669950,
+ "eventId": "555",
+ "lastEpochMicrosec": 1477072023669950,
+ "priority": "Normal",
+ "sequence": 555,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5981,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 4364,
+ "packetsIn": 86,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072304235475,
+ "eventId": "584",
+ "lastEpochMicrosec": 1477072314235475,
+ "priority": "Normal",
+ "sequence": 584,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 203574,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 23,
+ "bytesOut": 4122,
+ "packetsIn": 308,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072554718395,
+ "eventId": "609",
+ "lastEpochMicrosec": 1477072564718395,
+ "priority": "Normal",
+ "sequence": 609,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4142,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5495,
+ "packetsIn": 63,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072564737954,
+ "eventId": "610",
+ "lastEpochMicrosec": 1477072574737954,
+ "priority": "Normal",
+ "sequence": 610,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4172,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 23,
+ "bytesOut": 4066,
+ "packetsIn": 63,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072684959633,
+ "eventId": "622",
+ "lastEpochMicrosec": 1477072694959633,
+ "priority": "Normal",
+ "sequence": 622,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4682,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 36,
+ "bytesOut": 6100,
+ "packetsIn": 70,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072694977636,
+ "eventId": "623",
+ "lastEpochMicrosec": 1477072704977636,
+ "priority": "Normal",
+ "sequence": 623,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5024,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 35,
+ "bytesOut": 5999,
+ "packetsIn": 74,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072735051857,
+ "eventId": "627",
+ "lastEpochMicrosec": 1477072745051857,
+ "priority": "Normal",
+ "sequence": 627,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6750,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7198,
+ "packetsIn": 98,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072785141695,
+ "eventId": "632",
+ "lastEpochMicrosec": 1477072795141695,
+ "priority": "Normal",
+ "sequence": 632,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 38530,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 249,
+ "bytesOut": 54426,
+ "packetsIn": 436,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072795156085,
+ "eventId": "633",
+ "lastEpochMicrosec": 1477072805156085,
+ "priority": "Normal",
+ "sequence": 633,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4616,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 37,
+ "bytesOut": 6826,
+ "packetsIn": 69,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072885342781,
+ "eventId": "642",
+ "lastEpochMicrosec": 1477072895342781,
+ "priority": "Normal",
+ "sequence": 642,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4934,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5316,
+ "packetsIn": 67,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072895361934,
+ "eventId": "643",
+ "lastEpochMicrosec": 1477072905361934,
+ "priority": "Normal",
+ "sequence": 643,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4362,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 35,
+ "bytesOut": 6786,
+ "packetsIn": 64,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072935447654,
+ "eventId": "647",
+ "lastEpochMicrosec": 1477072945447654,
+ "priority": "Normal",
+ "sequence": 647,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4562,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 5136,
+ "packetsIn": 68,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073065678387,
+ "eventId": "660",
+ "lastEpochMicrosec": 1477073075678387,
+ "priority": "Normal",
+ "sequence": 660,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7173,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 45,
+ "bytesOut": 7368,
+ "packetsIn": 106,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073085719086,
+ "eventId": "662",
+ "lastEpochMicrosec": 1477073095719086,
+ "priority": "Normal",
+ "sequence": 662,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4826,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 44,
+ "bytesOut": 7120,
+ "packetsIn": 72,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073185910566,
+ "eventId": "672",
+ "lastEpochMicrosec": 1477073195910566,
+ "priority": "Normal",
+ "sequence": 672,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4502,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 5304,
+ "packetsIn": 70,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073336185348,
+ "eventId": "687",
+ "lastEpochMicrosec": 1477073346185348,
+ "priority": "Normal",
+ "sequence": 687,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4448,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5558,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073346200536,
+ "eventId": "688",
+ "lastEpochMicrosec": 1477073356200536,
+ "priority": "Normal",
+ "sequence": 688,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7053,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 45,
+ "bytesOut": 7368,
+ "packetsIn": 105,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073446375491,
+ "eventId": "698",
+ "lastEpochMicrosec": 1477073456375491,
+ "priority": "Normal",
+ "sequence": 698,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3966,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5214,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073596641959,
+ "eventId": "713",
+ "lastEpochMicrosec": 1477073606641959,
+ "priority": "Normal",
+ "sequence": 713,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4318,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 4634,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070250365937,
+ "eventId": "379",
+ "lastEpochMicrosec": 1477070260365937,
+ "priority": "Normal",
+ "sequence": 379,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3746,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5536,
+ "packetsIn": 53,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070340529599,
+ "eventId": "388",
+ "lastEpochMicrosec": 1477070350529599,
+ "priority": "Normal",
+ "sequence": 388,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7322,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 48,
+ "bytesOut": 7616,
+ "packetsIn": 113,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070510835835,
+ "eventId": "405",
+ "lastEpochMicrosec": 1477070520835835,
+ "priority": "Normal",
+ "sequence": 405,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4442,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 38,
+ "bytesOut": 6469,
+ "packetsIn": 66,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070520864347,
+ "eventId": "406",
+ "lastEpochMicrosec": 1477070530864347,
+ "priority": "Normal",
+ "sequence": 406,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3638,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 22,
+ "bytesOut": 4044,
+ "packetsIn": 53,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070651095730,
+ "eventId": "419",
+ "lastEpochMicrosec": 1477070661095730,
+ "priority": "Normal",
+ "sequence": 419,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3416,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5090,
+ "packetsIn": 48,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070711206504,
+ "eventId": "425",
+ "lastEpochMicrosec": 1477070721206504,
+ "priority": "Normal",
+ "sequence": 425,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5908,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 38,
+ "bytesOut": 6213,
+ "packetsIn": 78,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070791351649,
+ "eventId": "433",
+ "lastEpochMicrosec": 1477070801351649,
+ "priority": "Normal",
+ "sequence": 433,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 10199,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 68,
+ "bytesOut": 11842,
+ "packetsIn": 135,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070801369956,
+ "eventId": "434",
+ "lastEpochMicrosec": 1477070811369956,
+ "priority": "Normal",
+ "sequence": 434,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 26090,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 164,
+ "bytesOut": 33153,
+ "packetsIn": 300,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070841450160,
+ "eventId": "438",
+ "lastEpochMicrosec": 1477070851450160,
+ "priority": "Normal",
+ "sequence": 438,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6205,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 34,
+ "bytesOut": 5794,
+ "packetsIn": 90,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070981705399,
+ "eventId": "452",
+ "lastEpochMicrosec": 1477070991705399,
+ "priority": "Normal",
+ "sequence": 452,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3980,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5410,
+ "packetsIn": 59,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071061865954,
+ "eventId": "460",
+ "lastEpochMicrosec": 1477071071865954,
+ "priority": "Normal",
+ "sequence": 460,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 31224,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 197,
+ "bytesOut": 34890,
+ "packetsIn": 357,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071121977934,
+ "eventId": "466",
+ "lastEpochMicrosec": 1477071131977934,
+ "priority": "Normal",
+ "sequence": 466,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 25732,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 162,
+ "bytesOut": 31700,
+ "packetsIn": 302,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071131999094,
+ "eventId": "467",
+ "lastEpochMicrosec": 1477071141999094,
+ "priority": "Normal",
+ "sequence": 467,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 169618,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7186,
+ "packetsIn": 289,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071212141392,
+ "eventId": "475",
+ "lastEpochMicrosec": 1477071222141392,
+ "priority": "Normal",
+ "sequence": 475,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7477,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 46,
+ "bytesOut": 7465,
+ "packetsIn": 110,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071222158382,
+ "eventId": "476",
+ "lastEpochMicrosec": 1477071232158382,
+ "priority": "Normal",
+ "sequence": 476,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5908,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7156,
+ "packetsIn": 83,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071272238317,
+ "eventId": "481",
+ "lastEpochMicrosec": 1477071282238317,
+ "priority": "Normal",
+ "sequence": 481,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4504,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5074,
+ "packetsIn": 61,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071332342318,
+ "eventId": "487",
+ "lastEpochMicrosec": 1477071342342318,
+ "priority": "Normal",
+ "sequence": 487,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6139,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 4836,
+ "packetsIn": 89,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071342361964,
+ "eventId": "488",
+ "lastEpochMicrosec": 1477071352361964,
+ "priority": "Normal",
+ "sequence": 488,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 22038,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 143,
+ "bytesOut": 25109,
+ "packetsIn": 257,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071392443903,
+ "eventId": "493",
+ "lastEpochMicrosec": 1477071402443903,
+ "priority": "Normal",
+ "sequence": 493,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 28990,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 185,
+ "bytesOut": 34734,
+ "packetsIn": 342,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071442534871,
+ "eventId": "498",
+ "lastEpochMicrosec": 1477071452534871,
+ "priority": "Normal",
+ "sequence": 498,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 19000,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 111,
+ "bytesOut": 18886,
+ "packetsIn": 232,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071723077968,
+ "eventId": "526",
+ "lastEpochMicrosec": 1477071733077968,
+ "priority": "Normal",
+ "sequence": 526,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 22554,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 150,
+ "bytesOut": 27120,
+ "packetsIn": 270,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071783210923,
+ "eventId": "532",
+ "lastEpochMicrosec": 1477071793210923,
+ "priority": "Normal",
+ "sequence": 532,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 31406,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 192,
+ "bytesOut": 40382,
+ "packetsIn": 369,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071973585969,
+ "eventId": "551",
+ "lastEpochMicrosec": 1477071983585969,
+ "priority": "Normal",
+ "sequence": 551,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 28415,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 168,
+ "bytesOut": 36888,
+ "packetsIn": 330,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072003648795,
+ "eventId": "554",
+ "lastEpochMicrosec": 1477072013648795,
+ "priority": "Normal",
+ "sequence": 554,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4736,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5027,
+ "packetsIn": 71,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072073789969,
+ "eventId": "561",
+ "lastEpochMicrosec": 1477072083789969,
+ "priority": "Normal",
+ "sequence": 561,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5332,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4082,
+ "packetsIn": 75,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072184014433,
+ "eventId": "572",
+ "lastEpochMicrosec": 1477072194014433,
+ "priority": "Normal",
+ "sequence": 572,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3752,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5666,
+ "packetsIn": 55,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072214069942,
+ "eventId": "575",
+ "lastEpochMicrosec": 1477072224069942,
+ "priority": "Normal",
+ "sequence": 575,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4046,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7120,
+ "packetsIn": 59,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072274176817,
+ "eventId": "581",
+ "lastEpochMicrosec": 1477072284176817,
+ "priority": "Normal",
+ "sequence": 581,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4208,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5166,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072444481666,
+ "eventId": "598",
+ "lastEpochMicrosec": 1477072454481666,
+ "priority": "Normal",
+ "sequence": 598,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6649,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 38,
+ "bytesOut": 6038,
+ "packetsIn": 97,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072484565977,
+ "eventId": "602",
+ "lastEpochMicrosec": 1477072494565977,
+ "priority": "Normal",
+ "sequence": 602,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3848,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 4822,
+ "packetsIn": 57,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072514639844,
+ "eventId": "605",
+ "lastEpochMicrosec": 1477072524639844,
+ "priority": "Normal",
+ "sequence": 605,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6367,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 4624,
+ "packetsIn": 93,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072544701945,
+ "eventId": "608",
+ "lastEpochMicrosec": 1477072554701945,
+ "priority": "Normal",
+ "sequence": 608,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6553,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5362,
+ "packetsIn": 98,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072604809380,
+ "eventId": "614",
+ "lastEpochMicrosec": 1477072614809380,
+ "priority": "Normal",
+ "sequence": 614,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4628,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5412,
+ "packetsIn": 68,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072614829190,
+ "eventId": "615",
+ "lastEpochMicrosec": 1477072624829190,
+ "priority": "Normal",
+ "sequence": 615,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4352,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5630,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072644885943,
+ "eventId": "618",
+ "lastEpochMicrosec": 1477072654885943,
+ "priority": "Normal",
+ "sequence": 618,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5036,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 47,
+ "bytesOut": 7514,
+ "packetsIn": 75,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072755088807,
+ "eventId": "629",
+ "lastEpochMicrosec": 1477072765088807,
+ "priority": "Normal",
+ "sequence": 629,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4370,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4351,
+ "packetsIn": 66,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072915408472,
+ "eventId": "645",
+ "lastEpochMicrosec": 1477072925408472,
+ "priority": "Normal",
+ "sequence": 645,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4304,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4254,
+ "packetsIn": 57,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072955481939,
+ "eventId": "649",
+ "lastEpochMicrosec": 1477072965481939,
+ "priority": "Normal",
+ "sequence": 649,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4388,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5150,
+ "packetsIn": 66,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073005573900,
+ "eventId": "654",
+ "lastEpochMicrosec": 1477073015573900,
+ "priority": "Normal",
+ "sequence": 654,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5906,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7148,
+ "packetsIn": 82,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073015590437,
+ "eventId": "655",
+ "lastEpochMicrosec": 1477073025590437,
+ "priority": "Normal",
+ "sequence": 655,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3764,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 23,
+ "bytesOut": 4122,
+ "packetsIn": 56,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073045647448,
+ "eventId": "658",
+ "lastEpochMicrosec": 1477073055647448,
+ "priority": "Normal",
+ "sequence": 658,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4706,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7220,
+ "packetsIn": 70,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073125796934,
+ "eventId": "666",
+ "lastEpochMicrosec": 1477073135796934,
+ "priority": "Normal",
+ "sequence": 666,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7132,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 43,
+ "bytesOut": 7250,
+ "packetsIn": 103,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073135815158,
+ "eventId": "667",
+ "lastEpochMicrosec": 1477073145815158,
+ "priority": "Normal",
+ "sequence": 667,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7143,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 50,
+ "bytesOut": 7727,
+ "packetsIn": 104,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073145841670,
+ "eventId": "668",
+ "lastEpochMicrosec": 1477073155841670,
+ "priority": "Normal",
+ "sequence": 668,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6135,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5426,
+ "packetsIn": 90,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073266054311,
+ "eventId": "680",
+ "lastEpochMicrosec": 1477073276054311,
+ "priority": "Normal",
+ "sequence": 680,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4052,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5498,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073466418004,
+ "eventId": "700",
+ "lastEpochMicrosec": 1477073476418004,
+ "priority": "Normal",
+ "sequence": 700,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3732,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 5244,
+ "packetsIn": 54,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073476437957,
+ "eventId": "701",
+ "lastEpochMicrosec": 1477073486437957,
+ "priority": "Normal",
+ "sequence": 701,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4688,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5222,
+ "packetsIn": 71,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073526524510,
+ "eventId": "706",
+ "lastEpochMicrosec": 1477073536524510,
+ "priority": "Normal",
+ "sequence": 706,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7963,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 49,
+ "bytesOut": 7608,
+ "packetsIn": 118,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073566594681,
+ "eventId": "710",
+ "lastEpochMicrosec": 1477073576594681,
+ "priority": "Normal",
+ "sequence": 710,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5168,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5214,
+ "packetsIn": 71,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073616685940,
+ "eventId": "715",
+ "lastEpochMicrosec": 1477073626685940,
+ "priority": "Normal",
+ "sequence": 715,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6483,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 34,
+ "bytesOut": 5586,
+ "packetsIn": 95,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073626701958,
+ "eventId": "716",
+ "lastEpochMicrosec": 1477073636701958,
+ "priority": "Normal",
+ "sequence": 716,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3660,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 4712,
+ "packetsIn": 53,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070230330088,
+ "eventId": "377",
+ "lastEpochMicrosec": 1477070240330088,
+ "priority": "Normal",
+ "sequence": 377,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4069,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5506,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070360563689,
+ "eventId": "390",
+ "lastEpochMicrosec": 1477070370563689,
+ "priority": "Normal",
+ "sequence": 390,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4280,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5418,
+ "packetsIn": 64,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070460736142,
+ "eventId": "400",
+ "lastEpochMicrosec": 1477070470736142,
+ "priority": "Normal",
+ "sequence": 400,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4562,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 38,
+ "bytesOut": 6892,
+ "packetsIn": 68,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070480772828,
+ "eventId": "402",
+ "lastEpochMicrosec": 1477070490772828,
+ "priority": "Normal",
+ "sequence": 402,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5129,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5396,
+ "packetsIn": 72,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070500813728,
+ "eventId": "404",
+ "lastEpochMicrosec": 1477070510813728,
+ "priority": "Normal",
+ "sequence": 404,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4456,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5380,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070550916395,
+ "eventId": "409",
+ "lastEpochMicrosec": 1477070560916395,
+ "priority": "Normal",
+ "sequence": 409,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3738,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 4750,
+ "packetsIn": 54,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070590993953,
+ "eventId": "413",
+ "lastEpochMicrosec": 1477070600993953,
+ "priority": "Normal",
+ "sequence": 413,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5954,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5380,
+ "packetsIn": 94,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070631061957,
+ "eventId": "417",
+ "lastEpochMicrosec": 1477070641061957,
+ "priority": "Normal",
+ "sequence": 417,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4416,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 22,
+ "bytesOut": 4020,
+ "packetsIn": 64,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070641079999,
+ "eventId": "418",
+ "lastEpochMicrosec": 1477070651079999,
+ "priority": "Normal",
+ "sequence": 418,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4911,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 4342,
+ "packetsIn": 70,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070681153946,
+ "eventId": "422",
+ "lastEpochMicrosec": 1477070691153946,
+ "priority": "Normal",
+ "sequence": 422,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5228,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5294,
+ "packetsIn": 80,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070691170336,
+ "eventId": "423",
+ "lastEpochMicrosec": 1477070701170336,
+ "priority": "Normal",
+ "sequence": 423,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 137612,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 776,
+ "bytesOut": 136724,
+ "packetsIn": 1458,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070821405142,
+ "eventId": "436",
+ "lastEpochMicrosec": 1477070831405142,
+ "priority": "Normal",
+ "sequence": 436,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6724,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 48,
+ "bytesOut": 8288,
+ "packetsIn": 90,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071021788719,
+ "eventId": "456",
+ "lastEpochMicrosec": 1477071031788719,
+ "priority": "Normal",
+ "sequence": 456,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5216,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5098,
+ "packetsIn": 80,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071051846152,
+ "eventId": "459",
+ "lastEpochMicrosec": 1477071061846152,
+ "priority": "Normal",
+ "sequence": 459,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5965,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 34,
+ "bytesOut": 5686,
+ "packetsIn": 84,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071101941618,
+ "eventId": "464",
+ "lastEpochMicrosec": 1477071111941618,
+ "priority": "Normal",
+ "sequence": 464,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4334,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 5232,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071142014557,
+ "eventId": "468",
+ "lastEpochMicrosec": 1477071152014557,
+ "priority": "Normal",
+ "sequence": 468,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3976,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5360,
+ "packetsIn": 54,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071152034019,
+ "eventId": "469",
+ "lastEpochMicrosec": 1477071162034019,
+ "priority": "Normal",
+ "sequence": 469,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 41028,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5214,
+ "packetsIn": 121,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071202120024,
+ "eventId": "474",
+ "lastEpochMicrosec": 1477071212120024,
+ "priority": "Normal",
+ "sequence": 474,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5066,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7157,
+ "packetsIn": 76,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071242189163,
+ "eventId": "478",
+ "lastEpochMicrosec": 1477071252189163,
+ "priority": "Normal",
+ "sequence": 478,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5528,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5302,
+ "packetsIn": 83,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071472593939,
+ "eventId": "501",
+ "lastEpochMicrosec": 1477071482593939,
+ "priority": "Normal",
+ "sequence": 501,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4190,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 4160,
+ "packetsIn": 63,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071492634731,
+ "eventId": "503",
+ "lastEpochMicrosec": 1477071502634731,
+ "priority": "Normal",
+ "sequence": 503,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5918,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 34,
+ "bytesOut": 6588,
+ "packetsIn": 90,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071502654137,
+ "eventId": "504",
+ "lastEpochMicrosec": 1477071512654137,
+ "priority": "Normal",
+ "sequence": 504,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4270,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 19,
+ "bytesOut": 3650,
+ "packetsIn": 57,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071632900848,
+ "eventId": "517",
+ "lastEpochMicrosec": 1477071642900848,
+ "priority": "Normal",
+ "sequence": 517,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7250,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 47,
+ "bytesOut": 7539,
+ "packetsIn": 112,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071652936794,
+ "eventId": "519",
+ "lastEpochMicrosec": 1477071662936794,
+ "priority": "Normal",
+ "sequence": 519,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 20894,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 127,
+ "bytesOut": 23654,
+ "packetsIn": 256,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071713058031,
+ "eventId": "525",
+ "lastEpochMicrosec": 1477071723058031,
+ "priority": "Normal",
+ "sequence": 525,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7297,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 46,
+ "bytesOut": 7430,
+ "packetsIn": 107,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071763172262,
+ "eventId": "530",
+ "lastEpochMicrosec": 1477071773172262,
+ "priority": "Normal",
+ "sequence": 530,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5472,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5427,
+ "packetsIn": 83,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071773193658,
+ "eventId": "531",
+ "lastEpochMicrosec": 1477071783193658,
+ "priority": "Normal",
+ "sequence": 531,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4784,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4386,
+ "packetsIn": 73,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071803251128,
+ "eventId": "534",
+ "lastEpochMicrosec": 1477071813251128,
+ "priority": "Normal",
+ "sequence": 534,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 33146,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 202,
+ "bytesOut": 45220,
+ "packetsIn": 373,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071933509978,
+ "eventId": "547",
+ "lastEpochMicrosec": 1477071943509978,
+ "priority": "Normal",
+ "sequence": 547,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3640,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 22,
+ "bytesOut": 4128,
+ "packetsIn": 47,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072113869917,
+ "eventId": "565",
+ "lastEpochMicrosec": 1477072123869917,
+ "priority": "Normal",
+ "sequence": 565,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4928,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5412,
+ "packetsIn": 75,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072133905970,
+ "eventId": "567",
+ "lastEpochMicrosec": 1477072143905970,
+ "priority": "Normal",
+ "sequence": 567,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4286,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5436,
+ "packetsIn": 64,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072314253035,
+ "eventId": "585",
+ "lastEpochMicrosec": 1477072324253035,
+ "priority": "Normal",
+ "sequence": 585,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4568,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5602,
+ "packetsIn": 69,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072384378243,
+ "eventId": "592",
+ "lastEpochMicrosec": 1477072394378243,
+ "priority": "Normal",
+ "sequence": 592,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3854,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 4772,
+ "packetsIn": 57,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072404411223,
+ "eventId": "594",
+ "lastEpochMicrosec": 1477072414411223,
+ "priority": "Normal",
+ "sequence": 594,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3740,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 21,
+ "bytesOut": 3862,
+ "packetsIn": 50,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072414424973,
+ "eventId": "595",
+ "lastEpochMicrosec": 1477072424424973,
+ "priority": "Normal",
+ "sequence": 595,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6259,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5072,
+ "packetsIn": 89,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072424442934,
+ "eventId": "596",
+ "lastEpochMicrosec": 1477072434442934,
+ "priority": "Normal",
+ "sequence": 596,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5576,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 46,
+ "bytesOut": 7404,
+ "packetsIn": 84,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072624849269,
+ "eventId": "616",
+ "lastEpochMicrosec": 1477072634849269,
+ "priority": "Normal",
+ "sequence": 616,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5172,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 4998,
+ "packetsIn": 78,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072674941938,
+ "eventId": "621",
+ "lastEpochMicrosec": 1477072684941938,
+ "priority": "Normal",
+ "sequence": 621,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4256,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4294,
+ "packetsIn": 56,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072715018487,
+ "eventId": "625",
+ "lastEpochMicrosec": 1477072725018487,
+ "priority": "Normal",
+ "sequence": 625,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3932,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5526,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072825213947,
+ "eventId": "636",
+ "lastEpochMicrosec": 1477072835213947,
+ "priority": "Normal",
+ "sequence": 636,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3956,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 35,
+ "bytesOut": 6318,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072865310238,
+ "eventId": "640",
+ "lastEpochMicrosec": 1477072875310238,
+ "priority": "Normal",
+ "sequence": 640,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4080,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 4388,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072875328458,
+ "eventId": "641",
+ "lastEpochMicrosec": 1477072885328458,
+ "priority": "Normal",
+ "sequence": 641,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6081,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5528,
+ "packetsIn": 89,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072965498915,
+ "eventId": "650",
+ "lastEpochMicrosec": 1477072975498915,
+ "priority": "Normal",
+ "sequence": 650,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6141,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5528,
+ "packetsIn": 90,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073025609941,
+ "eventId": "656",
+ "lastEpochMicrosec": 1477073035609941,
+ "priority": "Normal",
+ "sequence": 656,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4446,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 39,
+ "bytesOut": 6986,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073175893195,
+ "eventId": "671",
+ "lastEpochMicrosec": 1477073185893195,
+ "priority": "Normal",
+ "sequence": 671,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4232,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 23,
+ "bytesOut": 4066,
+ "packetsIn": 64,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073225981156,
+ "eventId": "676",
+ "lastEpochMicrosec": 1477073235981156,
+ "priority": "Normal",
+ "sequence": 676,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5739,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4138,
+ "packetsIn": 84,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073326167021,
+ "eventId": "686",
+ "lastEpochMicrosec": 1477073336167021,
+ "priority": "Normal",
+ "sequence": 686,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4104,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 22,
+ "bytesOut": 4020,
+ "packetsIn": 61,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073356218618,
+ "eventId": "689",
+ "lastEpochMicrosec": 1477073366218618,
+ "priority": "Normal",
+ "sequence": 689,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4886,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7121,
+ "packetsIn": 72,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073456394852,
+ "eventId": "699",
+ "lastEpochMicrosec": 1477073466394852,
+ "priority": "Normal",
+ "sequence": 699,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4034,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 4808,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073486456069,
+ "eventId": "702",
+ "lastEpochMicrosec": 1477073496456069,
+ "priority": "Normal",
+ "sequence": 702,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4706,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5765,
+ "packetsIn": 71,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073576611503,
+ "eventId": "711",
+ "lastEpochMicrosec": 1477073586611503,
+ "priority": "Normal",
+ "sequence": 711,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6046,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 40,
+ "bytesOut": 9108,
+ "packetsIn": 90,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073636730319,
+ "eventId": "717",
+ "lastEpochMicrosec": 1477073646730319,
+ "priority": "Normal",
+ "sequence": 717,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4450,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5230,
+ "packetsIn": 62,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070310474544,
+ "eventId": "385",
+ "lastEpochMicrosec": 1477070320474544,
+ "priority": "Normal",
+ "sequence": 385,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5703,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 40,
+ "bytesOut": 6658,
+ "packetsIn": 82,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070320490200,
+ "eventId": "386",
+ "lastEpochMicrosec": 1477070330490200,
+ "priority": "Normal",
+ "sequence": 386,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4384,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 5096,
+ "packetsIn": 59,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070370579195,
+ "eventId": "391",
+ "lastEpochMicrosec": 1477070380579195,
+ "priority": "Normal",
+ "sequence": 391,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3986,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5544,
+ "packetsIn": 59,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070400631290,
+ "eventId": "394",
+ "lastEpochMicrosec": 1477070410631290,
+ "priority": "Normal",
+ "sequence": 394,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4428,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 4364,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070410646466,
+ "eventId": "395",
+ "lastEpochMicrosec": 1477070420646466,
+ "priority": "Normal",
+ "sequence": 395,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3776,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 4562,
+ "packetsIn": 56,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070661113931,
+ "eventId": "420",
+ "lastEpochMicrosec": 1477070671113931,
+ "priority": "Normal",
+ "sequence": 420,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5482,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5446,
+ "packetsIn": 77,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070731245952,
+ "eventId": "427",
+ "lastEpochMicrosec": 1477070741245952,
+ "priority": "Normal",
+ "sequence": 427,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 12391,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 78,
+ "bytesOut": 10049,
+ "packetsIn": 124,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070761301949,
+ "eventId": "430",
+ "lastEpochMicrosec": 1477070771301949,
+ "priority": "Normal",
+ "sequence": 430,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 19997,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 132,
+ "bytesOut": 23502,
+ "packetsIn": 240,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070861482944,
+ "eventId": "440",
+ "lastEpochMicrosec": 1477070871482944,
+ "priority": "Normal",
+ "sequence": 440,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 19924,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 116,
+ "bytesOut": 19236,
+ "packetsIn": 243,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070871499185,
+ "eventId": "441",
+ "lastEpochMicrosec": 1477070881499185,
+ "priority": "Normal",
+ "sequence": 441,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4394,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 40,
+ "bytesOut": 7024,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070901553877,
+ "eventId": "444",
+ "lastEpochMicrosec": 1477070911553877,
+ "priority": "Normal",
+ "sequence": 444,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3402,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4950,
+ "packetsIn": 51,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070951649582,
+ "eventId": "449",
+ "lastEpochMicrosec": 1477070961649582,
+ "priority": "Normal",
+ "sequence": 449,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3650,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 5024,
+ "packetsIn": 52,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070961673097,
+ "eventId": "450",
+ "lastEpochMicrosec": 1477070971673097,
+ "priority": "Normal",
+ "sequence": 450,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4681,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 45,
+ "bytesOut": 7354,
+ "packetsIn": 69,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071001744811,
+ "eventId": "454",
+ "lastEpochMicrosec": 1477071011744811,
+ "priority": "Normal",
+ "sequence": 454,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4536,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5168,
+ "packetsIn": 67,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071011760312,
+ "eventId": "455",
+ "lastEpochMicrosec": 1477071021760312,
+ "priority": "Normal",
+ "sequence": 455,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6458,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 36,
+ "bytesOut": 6017,
+ "packetsIn": 100,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071232173922,
+ "eventId": "477",
+ "lastEpochMicrosec": 1477071242173922,
+ "priority": "Normal",
+ "sequence": 477,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6871,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 36,
+ "bytesOut": 6766,
+ "packetsIn": 101,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071282252737,
+ "eventId": "482",
+ "lastEpochMicrosec": 1477071292252737,
+ "priority": "Normal",
+ "sequence": 482,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3884,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4248,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071322325958,
+ "eventId": "486",
+ "lastEpochMicrosec": 1477071332325958,
+ "priority": "Normal",
+ "sequence": 486,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 34518,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 192,
+ "bytesOut": 34192,
+ "packetsIn": 384,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071432517955,
+ "eventId": "497",
+ "lastEpochMicrosec": 1477071442517955,
+ "priority": "Normal",
+ "sequence": 497,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4916,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4318,
+ "packetsIn": 67,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071512671652,
+ "eventId": "505",
+ "lastEpochMicrosec": 1477071522671652,
+ "priority": "Normal",
+ "sequence": 505,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6259,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5600,
+ "packetsIn": 91,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071522697277,
+ "eventId": "506",
+ "lastEpochMicrosec": 1477071532697277,
+ "priority": "Normal",
+ "sequence": 506,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5240,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5426,
+ "packetsIn": 80,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071552753988,
+ "eventId": "509",
+ "lastEpochMicrosec": 1477071562753988,
+ "priority": "Normal",
+ "sequence": 509,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5060,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5434,
+ "packetsIn": 79,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071612865423,
+ "eventId": "515",
+ "lastEpochMicrosec": 1477071622865423,
+ "priority": "Normal",
+ "sequence": 515,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3974,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 4660,
+ "packetsIn": 59,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071793233631,
+ "eventId": "533",
+ "lastEpochMicrosec": 1477071803233631,
+ "priority": "Normal",
+ "sequence": 533,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6859,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 43,
+ "bytesOut": 6912,
+ "packetsIn": 100,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071823290532,
+ "eventId": "536",
+ "lastEpochMicrosec": 1477071833290532,
+ "priority": "Normal",
+ "sequence": 536,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4982,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 26,
+ "bytesOut": 5081,
+ "packetsIn": 76,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071833308226,
+ "eventId": "537",
+ "lastEpochMicrosec": 1477071843308226,
+ "priority": "Normal",
+ "sequence": 537,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4974,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4426,
+ "packetsIn": 75,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071843328660,
+ "eventId": "538",
+ "lastEpochMicrosec": 1477071853328660,
+ "priority": "Normal",
+ "sequence": 538,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 13226,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 89,
+ "bytesOut": 18924,
+ "packetsIn": 153,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072053741964,
+ "eventId": "559",
+ "lastEpochMicrosec": 1477072063741964,
+ "priority": "Normal",
+ "sequence": 559,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 8673,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 53,
+ "bytesOut": 9805,
+ "packetsIn": 117,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072063763247,
+ "eventId": "560",
+ "lastEpochMicrosec": 1477072073763247,
+ "priority": "Normal",
+ "sequence": 560,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4676,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 37,
+ "bytesOut": 6446,
+ "packetsIn": 70,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072224086825,
+ "eventId": "576",
+ "lastEpochMicrosec": 1477072234086825,
+ "priority": "Normal",
+ "sequence": 576,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4262,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5318,
+ "packetsIn": 64,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072254141660,
+ "eventId": "579",
+ "lastEpochMicrosec": 1477072264141660,
+ "priority": "Normal",
+ "sequence": 579,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4946,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7156,
+ "packetsIn": 74,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072344303482,
+ "eventId": "588",
+ "lastEpochMicrosec": 1477072354303482,
+ "priority": "Normal",
+ "sequence": 588,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3800,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5398,
+ "packetsIn": 56,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072584773904,
+ "eventId": "612",
+ "lastEpochMicrosec": 1477072594773904,
+ "priority": "Normal",
+ "sequence": 612,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5264,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 35,
+ "bytesOut": 6018,
+ "packetsIn": 72,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072594792760,
+ "eventId": "613",
+ "lastEpochMicrosec": 1477072604792760,
+ "priority": "Normal",
+ "sequence": 613,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4604,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5722,
+ "packetsIn": 59,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072775124558,
+ "eventId": "631",
+ "lastEpochMicrosec": 1477072785124558,
+ "priority": "Normal",
+ "sequence": 631,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4280,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5410,
+ "packetsIn": 64,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072975517941,
+ "eventId": "651",
+ "lastEpochMicrosec": 1477072985517941,
+ "priority": "Normal",
+ "sequence": 651,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4316,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 27,
+ "bytesOut": 5018,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073035627391,
+ "eventId": "657",
+ "lastEpochMicrosec": 1477073045627391,
+ "priority": "Normal",
+ "sequence": 657,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4915,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 4836,
+ "packetsIn": 74,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073276077930,
+ "eventId": "681",
+ "lastEpochMicrosec": 1477073286077930,
+ "priority": "Normal",
+ "sequence": 681,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4244,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4914,
+ "packetsIn": 64,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073396285928,
+ "eventId": "693",
+ "lastEpochMicrosec": 1477073406285928,
+ "priority": "Normal",
+ "sequence": 693,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4982,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 38,
+ "bytesOut": 6892,
+ "packetsIn": 75,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073406303927,
+ "eventId": "694",
+ "lastEpochMicrosec": 1477073416303927,
+ "priority": "Normal",
+ "sequence": 694,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5000,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5378,
+ "packetsIn": 68,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073496473912,
+ "eventId": "703",
+ "lastEpochMicrosec": 1477073506473912,
+ "priority": "Normal",
+ "sequence": 703,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4406,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7156,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073546558533,
+ "eventId": "708",
+ "lastEpochMicrosec": 1477073556558533,
+ "priority": "Normal",
+ "sequence": 708,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3608,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5230,
+ "packetsIn": 53,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073646749551,
+ "eventId": "718",
+ "lastEpochMicrosec": 1477073656749551,
+ "priority": "Normal",
+ "sequence": 718,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4352,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 4946,
+ "packetsIn": 57,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073676813943,
+ "eventId": "721",
+ "lastEpochMicrosec": 1477073686813943,
+ "priority": "Normal",
+ "sequence": 721,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4864,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 5148,
+ "packetsIn": 67,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070190253108,
+ "eventId": "373",
+ "lastEpochMicrosec": 1477070200253108,
+ "priority": "Normal",
+ "sequence": 373,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4328,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5286,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070280421939,
+ "eventId": "382",
+ "lastEpochMicrosec": 1477070290421939,
+ "priority": "Normal",
+ "sequence": 382,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6206,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 32,
+ "bytesOut": 5512,
+ "packetsIn": 96,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070330509980,
+ "eventId": "387",
+ "lastEpochMicrosec": 1477070340509980,
+ "priority": "Normal",
+ "sequence": 387,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3518,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 22,
+ "bytesOut": 4028,
+ "packetsIn": 53,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070420665950,
+ "eventId": "396",
+ "lastEpochMicrosec": 1477070430665950,
+ "priority": "Normal",
+ "sequence": 396,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4360,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4812,
+ "packetsIn": 59,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070430683794,
+ "eventId": "397",
+ "lastEpochMicrosec": 1477070440683794,
+ "priority": "Normal",
+ "sequence": 397,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5301,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 33,
+ "bytesOut": 5536,
+ "packetsIn": 76,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070560936376,
+ "eventId": "410",
+ "lastEpochMicrosec": 1477070570936376,
+ "priority": "Normal",
+ "sequence": 410,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6866,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7156,
+ "packetsIn": 106,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070570954302,
+ "eventId": "411",
+ "lastEpochMicrosec": 1477070580954302,
+ "priority": "Normal",
+ "sequence": 411,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6681,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 41,
+ "bytesOut": 6568,
+ "packetsIn": 96,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070741264005,
+ "eventId": "428",
+ "lastEpochMicrosec": 1477070751264005,
+ "priority": "Normal",
+ "sequence": 428,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 34880,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 217,
+ "bytesOut": 36350,
+ "packetsIn": 398,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070881514499,
+ "eventId": "442",
+ "lastEpochMicrosec": 1477070891514499,
+ "priority": "Normal",
+ "sequence": 442,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4762,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 4934,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070911574857,
+ "eventId": "445",
+ "lastEpochMicrosec": 1477070921574857,
+ "priority": "Normal",
+ "sequence": 445,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 7057,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 46,
+ "bytesOut": 7462,
+ "packetsIn": 105,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477070921593735,
+ "eventId": "446",
+ "lastEpochMicrosec": 1477070931593735,
+ "priority": "Normal",
+ "sequence": 446,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6740,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 41,
+ "bytesOut": 6775,
+ "packetsIn": 104,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071292270837,
+ "eventId": "483",
+ "lastEpochMicrosec": 1477071302270837,
+ "priority": "Normal",
+ "sequence": 483,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4934,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5325,
+ "packetsIn": 75,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071302289972,
+ "eventId": "484",
+ "lastEpochMicrosec": 1477071312289972,
+ "priority": "Normal",
+ "sequence": 484,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6216,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 39,
+ "bytesOut": 6786,
+ "packetsIn": 81,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071452551360,
+ "eventId": "499",
+ "lastEpochMicrosec": 1477071462551360,
+ "priority": "Normal",
+ "sequence": 499,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6218,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 44,
+ "bytesOut": 7316,
+ "packetsIn": 95,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071482617903,
+ "eventId": "502",
+ "lastEpochMicrosec": 1477071492617903,
+ "priority": "Normal",
+ "sequence": 502,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5634,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 37,
+ "bytesOut": 6446,
+ "packetsIn": 87,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071562771042,
+ "eventId": "510",
+ "lastEpochMicrosec": 1477071572771042,
+ "priority": "Normal",
+ "sequence": 510,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6354,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 47,
+ "bytesOut": 7514,
+ "packetsIn": 96,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071622883746,
+ "eventId": "516",
+ "lastEpochMicrosec": 1477071632883746,
+ "priority": "Normal",
+ "sequence": 516,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 20684,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 138,
+ "bytesOut": 23872,
+ "packetsIn": 242,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071753155902,
+ "eventId": "529",
+ "lastEpochMicrosec": 1477071763155902,
+ "priority": "Normal",
+ "sequence": 529,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4442,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 38,
+ "bytesOut": 6956,
+ "packetsIn": 66,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071853349474,
+ "eventId": "539",
+ "lastEpochMicrosec": 1477071863349474,
+ "priority": "Normal",
+ "sequence": 539,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 66655,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 401,
+ "bytesOut": 64534,
+ "packetsIn": 755,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477071943529023,
+ "eventId": "548",
+ "lastEpochMicrosec": 1477071953529023,
+ "priority": "Normal",
+ "sequence": 548,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 29098,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 186,
+ "bytesOut": 40028,
+ "packetsIn": 338,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072033705953,
+ "eventId": "557",
+ "lastEpochMicrosec": 1477072043705953,
+ "priority": "Normal",
+ "sequence": 557,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3560,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 4758,
+ "packetsIn": 52,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072083807753,
+ "eventId": "562",
+ "lastEpochMicrosec": 1477072093807753,
+ "priority": "Normal",
+ "sequence": 562,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5753,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5248,
+ "packetsIn": 82,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072123885526,
+ "eventId": "566",
+ "lastEpochMicrosec": 1477072133885526,
+ "priority": "Normal",
+ "sequence": 566,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4102,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5462,
+ "packetsIn": 54,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072173997938,
+ "eventId": "571",
+ "lastEpochMicrosec": 1477072183997938,
+ "priority": "Normal",
+ "sequence": 571,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 5054,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 39,
+ "bytesOut": 6906,
+ "packetsIn": 76,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072264158607,
+ "eventId": "580",
+ "lastEpochMicrosec": 1477072274158607,
+ "priority": "Normal",
+ "sequence": 580,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3884,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 23,
+ "bytesOut": 4058,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072324268097,
+ "eventId": "586",
+ "lastEpochMicrosec": 1477072334268097,
+ "priority": "Normal",
+ "sequence": 586,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3182,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 4808,
+ "packetsIn": 46,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072334288872,
+ "eventId": "587",
+ "lastEpochMicrosec": 1477072344288872,
+ "priority": "Normal",
+ "sequence": 587,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4034,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5316,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072394394368,
+ "eventId": "593",
+ "lastEpochMicrosec": 1477072404394368,
+ "priority": "Normal",
+ "sequence": 593,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3872,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 23,
+ "bytesOut": 4074,
+ "packetsIn": 58,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072434461951,
+ "eventId": "597",
+ "lastEpochMicrosec": 1477072444461951,
+ "priority": "Normal",
+ "sequence": 597,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4028,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 29,
+ "bytesOut": 5214,
+ "packetsIn": 60,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072504621951,
+ "eventId": "604",
+ "lastEpochMicrosec": 1477072514621951,
+ "priority": "Normal",
+ "sequence": 604,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4130,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 25,
+ "bytesOut": 4350,
+ "packetsIn": 62,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072524657943,
+ "eventId": "606",
+ "lastEpochMicrosec": 1477072534657943,
+ "priority": "Normal",
+ "sequence": 606,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6691,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 35,
+ "bytesOut": 5804,
+ "packetsIn": 98,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072664921950,
+ "eventId": "620",
+ "lastEpochMicrosec": 1477072674921950,
+ "priority": "Normal",
+ "sequence": 620,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4640,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5426,
+ "packetsIn": 72,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072765105949,
+ "eventId": "630",
+ "lastEpochMicrosec": 1477072775105949,
+ "priority": "Normal",
+ "sequence": 630,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 38076,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 238,
+ "bytesOut": 52028,
+ "packetsIn": 425,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477072815193944,
+ "eventId": "635",
+ "lastEpochMicrosec": 1477072825193944,
+ "priority": "Normal",
+ "sequence": 635,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4806,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 39,
+ "bytesOut": 6986,
+ "packetsIn": 72,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073055662629,
+ "eventId": "659",
+ "lastEpochMicrosec": 1477073065662629,
+ "priority": "Normal",
+ "sequence": 659,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3470,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4240,
+ "packetsIn": 51,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073165876528,
+ "eventId": "670",
+ "lastEpochMicrosec": 1477073175876528,
+ "priority": "Normal",
+ "sequence": 670,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6615,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 30,
+ "bytesOut": 5086,
+ "packetsIn": 98,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073205948758,
+ "eventId": "674",
+ "lastEpochMicrosec": 1477073215948758,
+ "priority": "Normal",
+ "sequence": 674,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4682,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 5600,
+ "packetsIn": 71,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073215965142,
+ "eventId": "675",
+ "lastEpochMicrosec": 1477073225965142,
+ "priority": "Normal",
+ "sequence": 675,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4178,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 24,
+ "bytesOut": 4152,
+ "packetsIn": 55,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073256037943,
+ "eventId": "679",
+ "lastEpochMicrosec": 1477073266037943,
+ "priority": "Normal",
+ "sequence": 679,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4406,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 42,
+ "bytesOut": 7156,
+ "packetsIn": 65,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073306133613,
+ "eventId": "684",
+ "lastEpochMicrosec": 1477073316133613,
+ "priority": "Normal",
+ "sequence": 684,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 3974,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 4644,
+ "packetsIn": 51,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073316150514,
+ "eventId": "685",
+ "lastEpochMicrosec": 1477073326150514,
+ "priority": "Normal",
+ "sequence": 685,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 6375,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 28,
+ "bytesOut": 4538,
+ "packetsIn": 94,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073386268859,
+ "eventId": "692",
+ "lastEpochMicrosec": 1477073396268859,
+ "priority": "Normal",
+ "sequence": 692,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ },
+ {
+ "event": {
+ "measurementsForVfScalingFields": {
+ "measurementInterval": 10,
+ "measurementsForVfScalingVersion": 1.1,
+ "vNicUsageArray": [
+ {
+ "bytesIn": 4458,
+ "multicastPacketsIn": 0,
+ "multicastPacketsOut": 0,
+ "unicastPacketsIn": 0,
+ "broadcastPacketsOut": 0,
+ "packetsOut": 31,
+ "bytesOut": 5418,
+ "packetsIn": 66,
+ "broadcastPacketsIn": 0,
+ "vNicIdentifier": "eth0",
+ "unicastPacketsOut": 0
+ }
+ ]
+ },
+ "commonEventHeader": {
+ "reportingEntityName": "vpp-test",
+ "startEpochMicrosec": 1477073536542160,
+ "eventId": "707",
+ "lastEpochMicrosec": 1477073546542160,
+ "priority": "Normal",
+ "sequence": 707,
+ "sourceName": "Dummy VM name - No Metadata available",
+ "domain": "measurementsForVfScaling",
+ "functionalRole": "vFirewall",
+ "reportingEntityId": "No UUID available",
+ "version": 1.1,
+ "sourceId": "Dummy VM UUID - No Metadata available"
+ }
+ }
+ }
+]
diff --git a/dcae-analytics-tca/src/test/resources/data/json/policy/tca_policy.json b/dcae-analytics-tca/src/test/resources/data/json/policy/tca_policy.json
new file mode 100644
index 0000000..1bf9e83
--- /dev/null
+++ b/dcae-analytics-tca/src/test/resources/data/json/policy/tca_policy.json
@@ -0,0 +1,53 @@
+{
+ "domain": "measurementsForVfScaling",
+ "metricsPerFunctionalRole": [
+ {
+ "functionalRole": "vFirewall",
+ "policyScope": "resource=vFirewall;type=configuration",
+ "policyName": "configuration.dcae.microservice.tca.xml",
+ "policyVersion": "v0.0.1",
+ "thresholds": [
+ {
+ "closedLoopControlName": "CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].bytesIn",
+ "thresholdValue": 4000,
+ "direction": "LESS_OR_EQUAL",
+ "severity": "MAJOR"
+ },
+ {
+ "closedLoopControlName": "CL-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].bytesIn",
+ "thresholdValue": 20000,
+ "direction": "GREATER_OR_EQUAL",
+ "severity": "CRITICAL"
+ }
+ ]
+ },
+ {
+ "functionalRole": "vLoadBalancer",
+ "policyScope": "resource=vLoadBalancer;type=configuration",
+ "policyName": "configuration.dcae.microservice.tca.xml",
+ "policyVersion": "v0.0.1",
+ "thresholds": [
+ {
+ "closedLoopControlName": "CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn",
+ "thresholdValue": 500,
+ "direction": "LESS_OR_EQUAL",
+ "severity": "MAJOR"
+ },
+ {
+ "closedLoopControlName": "CL-LBAL-LOW-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B",
+ "version": "1.0.2",
+ "fieldPath": "$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn",
+ "thresholdValue": 5000,
+ "direction": "GREATER_OR_EQUAL",
+ "severity": "CRITICAL"
+ }
+ ]
+ }
+ ]
+}
diff --git a/dcae-analytics-tca/src/test/resources/data/properties/tca_controller_policy.properties b/dcae-analytics-tca/src/test/resources/data/properties/tca_controller_policy.properties
new file mode 100644
index 0000000..e0e333b
--- /dev/null
+++ b/dcae-analytics-tca/src/test/resources/data/properties/tca_controller_policy.properties
@@ -0,0 +1,59 @@
+#
+# ============LICENSE_START=========================================================
+# dcae-analytics
+# ================================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# ================================================================================
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+# ============LICENSE_END=========================================================
+#
+
+domain=measurementsForVfScaling
+
+configuration.metricsPerFunctionalRole.vFirewall.policy.functionalRole=vFirewall
+configuration.metricsPerFunctionalRole.vFirewall.policyName=configuration.dcae.microservice.tca.xml
+configuration.metricsPerFunctionalRole.vFirewall.policyVersion=v0.0.1
+configuration.metricsPerFunctionalRole.vFirewall.policyScope=resource=vFirewall;type=configuration
+
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.0.policy.closedLoopControlName=CL-FRWL-LOW-TRAFFIC-SIG-d925ed73-8231-4d02-9545-db4e101f88f8
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.0.policy.fieldPath=$.event.measurementsForVfScalingFields.vNicUsageArray[*].bytesIn
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.0.policy.thresholdValue=4000
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.0.policy.direction=LESS_OR_EQUAL
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.0.policy.severity=MAJOR
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.0.policy.version=1.0.2
+
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.1.policy.closedLoopControlName=L-FRWL-HIGH-TRAFFIC-SIG-EA36FE84-9342-5E13-A656-EC5F21309A09
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.1.policy.fieldPath=$.event.measurementsForVfScalingFields.vNicUsageArray[*].bytesIn
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.1.policy.thresholdValue=20000
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.1.policy.direction=GREATER_OR_EQUAL
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.1.policy.severity=CRITICAL
+configuration.metricsPerFunctionalRole.vFirewall.thresholds.1.policy.version=1.0.2
+
+configuration.metricsPerFunctionalRole.vLoadBalancer.policy.functionalRole=vLoadBalancer
+configuration.metricsPerFunctionalRole.vLoadBalancer.policyName=configuration.dcae.microservice.tca.xml
+configuration.metricsPerFunctionalRole.vLoadBalancer.policyVersion=v0.0.1
+configuration.metricsPerFunctionalRole.vLoadBalancer.policyScope=resource=vLoadBalancer;type=configuration
+
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.0.policy.closedLoopControlName=CL-LBAL-LOW-TRAFFIC-SIG-FB480F95-A453-6F24-B767-FD703241AB1A
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.0.policy.fieldPath=$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.0.policy.thresholdValue=500
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.0.policy.direction=LESS_OR_EQUAL
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.0.policy.severity=MAJOR
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.0.policy.version=1.0.2
+
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.1.policy.closedLoopControlName=CL-LBAL-LOW-TRAFFIC-SIG-0C5920A6-B564-8035-C878-0E814352BC2B
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.1.policy.fieldPath=$.event.measurementsForVfScalingFields.vNicUsageArray[*].packetsIn
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.1.policy.thresholdValue=5000
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.1.policy.direction=GREATER_OR_EQUAL
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.1.policy.severity=CRITICAL
+configuration.metricsPerFunctionalRole.vLoadBalancer.thresholds.1.policy.version=1.0.2
diff --git a/dcae-analytics-tca/src/test/resources/logback-test.xml b/dcae-analytics-tca/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..e1cb987
--- /dev/null
+++ b/dcae-analytics-tca/src/test/resources/logback-test.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ ============LICENSE_START=========================================================
+ ~ dcae-analytics
+ ~ ================================================================================
+ ~ Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+ ~ ================================================================================
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License.
+ ~ ============LICENSE_END=========================================================
+ -->
+<configuration debug="false">
+
+ <!--
+ Disabling some chatty loggers.
+ -->
+ <logger name="org.apache.commons.beanutils" level="ERROR"/>
+ <logger name="org.apache.zookeeper.server" level="ERROR"/>
+ <logger name="org.apache.zookeeper" level="ERROR"/>
+ <logger name="com.ning" level="WARN"/>
+ <logger name="org.apache.spark" level="WARN"/>
+ <logger name="org.spark-project" level="WARN"/>
+ <logger name="org.apache.hadoop" level="WARN"/>
+ <logger name="org.apache.hive" level="WARN"/>
+ <logger name="org.quartz.core" level="WARN"/>
+ <logger name="org.eclipse.jetty" level="WARN"/>
+ <logger name="io.netty.util.internal" level="WARN"/>
+
+ <logger name="org.apache.twill" level="WARN"/>
+ <logger name="co.cask.cdap" level="INFO"/>
+ <logger name="org.openecomp" level="DEBUG"/>
+
+ <appender name="Console" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{ISO8601} - %-5p [%t:%C{1}@%L] - %m%n</pattern>
+ </encoder>
+ </appender>
+
+ <root level="ERROR">
+ <appender-ref ref="Console"/>
+ </root>
+
+
+</configuration>
+