b500c88ea0f15a11d8cc048918c569e6d17843e2
[netvirt.git] / elanmanager / impl / src / main / java / org / opendaylight / netvirt / elan / internal / ElanManagerCounters.java
1 /*
2  * Copyright (c) 2016 Hewlett-Packard Enterprise and others.  All rights reserved.
3  *
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
7  */
8
9 package org.opendaylight.netvirt.elan.internal;
10
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;
16
17 @Singleton
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;
26
27     @Inject
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");
41     }
42
43     private Meter meter(MetricProvider metricProvider, String id) {
44         return metricProvider.newMeter(
45                 MetricDescriptor.builder().anchor(this).project("netvirt").module("elanmanager").id(id).build());
46     }
47
48     public void unknownSmacPktinForwardingEntriesRemoved() {
49         unknownSmacPktinForwardingEntriesRemovedMeter.mark();
50     }
51
52     public void unknownSmacPktinRcv() {
53         unknownSmacPktinRcvMeter.mark();
54     }
55
56     public void unknownSmacPktinLearned() {
57         unknownSmacPktinLearnedMeter.mark();
58     }
59
60     public void unknownSmacPktinIgnoredDueProtection() {
61         unknownSmacPktinIgnoredDueProtectionMeter.mark();
62     }
63
64     public void unknownSmacPktinFlowsRemovedForRelearned() {
65         unknownSmacPktinFlowsRemovedForRelearnedMeter.mark();
66     }
67
68     public void unknownSmacPktinRemovedForRelearned() {
69         unknownSmacPktinRemovedForRelearnedMeter.mark();
70     }
71
72     public void unknownSmacPktinMacMigrationIgnoredDueToProtection() {
73         unknownSmacPktinMacMigrationIgnoredDueToProtectionMeter.mark();
74     }
75 }