aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/apps/metrics/src/main/java/org/onosproject/metrics/intent/IntentMetrics.java
diff options
context:
space:
mode:
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.java234
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();
- }
-}