diff options
Diffstat (limited to 'framework/src/onos/apps/metrics/src/main/java/org/onosproject/metrics/intent/IntentMetrics.java')
-rw-r--r-- | framework/src/onos/apps/metrics/src/main/java/org/onosproject/metrics/intent/IntentMetrics.java | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/framework/src/onos/apps/metrics/src/main/java/org/onosproject/metrics/intent/IntentMetrics.java b/framework/src/onos/apps/metrics/src/main/java/org/onosproject/metrics/intent/IntentMetrics.java deleted file mode 100644 index 9a42e9ee..00000000 --- a/framework/src/onos/apps/metrics/src/main/java/org/onosproject/metrics/intent/IntentMetrics.java +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright 2014-2015 Open Networking Laboratory - * - * 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. - */ -package org.onosproject.metrics.intent; - -import static org.slf4j.LoggerFactory.getLogger; - -import java.util.LinkedList; -import java.util.List; - -import com.google.common.collect.ImmutableList; -import org.apache.felix.scr.annotations.Activate; -import org.apache.felix.scr.annotations.Component; -import org.apache.felix.scr.annotations.Deactivate; -import org.apache.felix.scr.annotations.Reference; -import org.apache.felix.scr.annotations.ReferenceCardinality; -import org.apache.felix.scr.annotations.Service; -import org.onlab.metrics.EventMetric; -import org.onlab.metrics.MetricsService; -import org.onosproject.core.ApplicationId; -import org.onosproject.core.CoreService; -import org.onosproject.net.intent.IntentEvent; -import org.onosproject.net.intent.IntentListener; -import org.onosproject.net.intent.IntentService; -import org.slf4j.Logger; - -/** - * ONOS Intent Metrics Application that collects intent-related metrics. - */ -@Component(immediate = true) -@Service -public class IntentMetrics implements IntentMetricsService, - IntentListener { - private static final Logger log = getLogger(IntentMetrics.class); - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected CoreService coreService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected IntentService intentService; - - @Reference(cardinality = ReferenceCardinality.MANDATORY_UNARY) - protected MetricsService metricsService; - - private ApplicationId appId; - - private LinkedList<IntentEvent> lastEvents = new LinkedList<>(); - private static final int LAST_EVENTS_MAX_N = 100; - - // - // Metrics - // - private static final String COMPONENT_NAME = "Intent"; - private static final String FEATURE_SUBMITTED_NAME = "Submitted"; - private static final String FEATURE_INSTALLED_NAME = "Installed"; - private static final String FEATURE_FAILED_NAME = "Failed"; - private static final String FEATURE_WITHDRAW_REQUESTED_NAME = - "WithdrawRequested"; - private static final String FEATURE_WITHDRAWN_NAME = "Withdrawn"; - private static final String FEATURE_PURGED_NAME = "Purged"; - // - // Event metrics: - // - Intent Submitted API operation - // - Intent Installed operation completion - // - Intent Failed compilation or installation - // - Intent Withdraw Requested API operation - // - Intent Withdrawn operation completion - // - Intent Purged operation completion - // - private EventMetric intentSubmittedEventMetric; - private EventMetric intentInstalledEventMetric; - private EventMetric intentFailedEventMetric; - private EventMetric intentWithdrawRequestedEventMetric; - private EventMetric intentWithdrawnEventMetric; - private EventMetric intentPurgedEventMetric; - - @Activate - protected void activate() { - appId = coreService.registerApplication("org.onosproject.metrics"); - - clear(); - registerMetrics(); - intentService.addListener(this); - log.info("Started with Application ID {}", appId.id()); - } - - @Deactivate - public void deactivate() { - intentService.removeListener(this); - removeMetrics(); - clear(); - log.info("Stopped"); - } - - @Override - public List<IntentEvent> getEvents() { - synchronized (lastEvents) { - return ImmutableList.copyOf(lastEvents); - } - } - - @Override - public EventMetric intentSubmittedEventMetric() { - return intentSubmittedEventMetric; - } - - @Override - public EventMetric intentInstalledEventMetric() { - return intentInstalledEventMetric; - } - - @Override - public EventMetric intentFailedEventMetric() { - return intentFailedEventMetric; - } - - @Override - public EventMetric intentWithdrawRequestedEventMetric() { - return intentWithdrawRequestedEventMetric; - } - - @Override - public EventMetric intentWithdrawnEventMetric() { - return intentWithdrawnEventMetric; - } - - @Override - public EventMetric intentPurgedEventMetric() { - return intentPurgedEventMetric; - } - - @Override - public void event(IntentEvent event) { - synchronized (lastEvents) { - switch (event.type()) { - case INSTALL_REQ: - intentSubmittedEventMetric.eventReceived(); - break; - case INSTALLED: - intentInstalledEventMetric.eventReceived(); - break; - case FAILED: - intentFailedEventMetric.eventReceived(); - break; - case WITHDRAW_REQ: - intentWithdrawRequestedEventMetric.eventReceived(); - break; - case WITHDRAWN: - intentWithdrawnEventMetric.eventReceived(); - break; - case PURGED: - intentPurgedEventMetric.eventReceived(); - break; - default: - break; - } - - // - // Keep only the last N events, where N = LAST_EVENTS_MAX_N - // - while (lastEvents.size() >= LAST_EVENTS_MAX_N) { - lastEvents.remove(); - } - lastEvents.add(event); - } - - log.debug("Intent Event: time = {} type = {} event = {}", - event.time(), event.type(), event); - } - - /** - * Clears the internal state. - */ - private void clear() { - synchronized (lastEvents) { - lastEvents.clear(); - } - } - - /** - * Registers the metrics. - */ - private void registerMetrics() { - intentSubmittedEventMetric = - new EventMetric(metricsService, COMPONENT_NAME, - FEATURE_SUBMITTED_NAME); - intentInstalledEventMetric = - new EventMetric(metricsService, COMPONENT_NAME, - FEATURE_INSTALLED_NAME); - intentFailedEventMetric = - new EventMetric(metricsService, COMPONENT_NAME, - FEATURE_FAILED_NAME); - intentWithdrawRequestedEventMetric = - new EventMetric(metricsService, COMPONENT_NAME, - FEATURE_WITHDRAW_REQUESTED_NAME); - intentWithdrawnEventMetric = - new EventMetric(metricsService, COMPONENT_NAME, - FEATURE_WITHDRAWN_NAME); - intentPurgedEventMetric = - new EventMetric(metricsService, COMPONENT_NAME, - FEATURE_PURGED_NAME); - - intentSubmittedEventMetric.registerMetrics(); - intentInstalledEventMetric.registerMetrics(); - intentFailedEventMetric.registerMetrics(); - intentWithdrawRequestedEventMetric.registerMetrics(); - intentWithdrawnEventMetric.registerMetrics(); - intentPurgedEventMetric.registerMetrics(); - } - - /** - * Removes the metrics. - */ - private void removeMetrics() { - intentSubmittedEventMetric.removeMetrics(); - intentInstalledEventMetric.removeMetrics(); - intentFailedEventMetric.removeMetrics(); - intentWithdrawRequestedEventMetric.removeMetrics(); - intentWithdrawnEventMetric.removeMetrics(); - intentPurgedEventMetric.removeMetrics(); - } -} |