2 * Copyright (c) 2016 Hewlett-Packard Enterprise and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
9 package org.opendaylight.netvirt.elan.internal;
11 import javax.inject.Inject;
12 import javax.inject.Singleton;
13 import org.opendaylight.infrautils.metrics.Meter;
14 import org.opendaylight.infrautils.metrics.MetricDescriptor;
15 import org.opendaylight.infrautils.metrics.MetricProvider;
18 public final class ElanManagerCounters {
19 private final Meter unknownSmacPktinForwardingEntriesRemovedMeter;
20 private final Meter unknownSmacPktinRcvMeter;
21 private final Meter unknownSmacPktinLearnedMeter;
22 private final Meter unknownSmacPktinIgnoredDueProtectionMeter;
23 private final Meter unknownSmacPktinFlowsRemovedForRelearnedMeter;
24 private final Meter unknownSmacPktinRemovedForRelearnedMeter;
25 private final Meter unknownSmacPktinMacMigrationIgnoredDueToProtectionMeter;
28 public ElanManagerCounters(MetricProvider metricProvider) {
29 this.unknownSmacPktinForwardingEntriesRemovedMeter =
30 meter(metricProvider, "unknown_smac_pktin_forwarding_entries_removed");
31 this.unknownSmacPktinRcvMeter = meter(metricProvider, "unknown_smac_pktin_rcv");
32 this.unknownSmacPktinLearnedMeter = meter(metricProvider, "unknown_smac_pktin_learned");
33 this.unknownSmacPktinIgnoredDueProtectionMeter =
34 meter(metricProvider, "unknown_smac_pktin_ignored_due_protection");
35 this.unknownSmacPktinFlowsRemovedForRelearnedMeter =
36 meter(metricProvider, "unknown_smac_pktin_flows_removed_for_relearned");
37 this.unknownSmacPktinRemovedForRelearnedMeter =
38 meter(metricProvider, "unknown_smac_pktin_removed_for_relearned");
39 this.unknownSmacPktinMacMigrationIgnoredDueToProtectionMeter =
40 meter(metricProvider, "unknown_smac_pktin_mac_migration_ignored_due_to_protection");
43 private Meter meter(MetricProvider metricProvider, String id) {
44 return metricProvider.newMeter(
45 MetricDescriptor.builder().anchor(this).project("netvirt").module("elanmanager").id(id).build());
48 public void unknownSmacPktinForwardingEntriesRemoved() {
49 unknownSmacPktinForwardingEntriesRemovedMeter.mark();
52 public void unknownSmacPktinRcv() {
53 unknownSmacPktinRcvMeter.mark();
56 public void unknownSmacPktinLearned() {
57 unknownSmacPktinLearnedMeter.mark();
60 public void unknownSmacPktinIgnoredDueProtection() {
61 unknownSmacPktinIgnoredDueProtectionMeter.mark();
64 public void unknownSmacPktinFlowsRemovedForRelearned() {
65 unknownSmacPktinFlowsRemovedForRelearnedMeter.mark();
68 public void unknownSmacPktinRemovedForRelearned() {
69 unknownSmacPktinRemovedForRelearnedMeter.mark();
72 public void unknownSmacPktinMacMigrationIgnoredDueToProtection() {
73 unknownSmacPktinMacMigrationIgnoredDueToProtectionMeter.mark();