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.natservice.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 class NatServiceCounters {
19 private final Meter installDefaultNatFlowMeter;
20 private final Meter removeDefaultNatFlowMeter;
21 private final Meter removeExternalNetworkGroupMeter;
22 private final Meter subnetmapAddMeter;
23 private final Meter subnetmapRemoveMeter;
24 private final Meter subnetmapUpdateMeter;
25 private final Meter garpSentMeter;
26 private final Meter garpFailedIpv6Meter;
27 private final Meter garpFailedMissingInterfaceMeter;
28 private final Meter garpFailedSendMeter;
31 public NatServiceCounters(MetricProvider metricProvider) {
32 this.installDefaultNatFlowMeter = meter(metricProvider, "install_default_nat_flow");
33 this.removeDefaultNatFlowMeter = meter(metricProvider, "remove_default_nat_flow");
34 this.removeExternalNetworkGroupMeter = meter(metricProvider, "remove_external_network_group");
35 this.subnetmapAddMeter = meter(metricProvider, "subnetmap_add");
36 this.subnetmapRemoveMeter = meter(metricProvider, "subnetmap_remove");
37 this.subnetmapUpdateMeter = meter(metricProvider, "subnetmap_update");
38 this.garpSentMeter = meter(metricProvider, "garp_sent");
39 this.garpFailedIpv6Meter = meter(metricProvider, "garp_failed_ipv6");
40 this.garpFailedMissingInterfaceMeter = meter(metricProvider, "garp_failed_missing_interface");
41 this.garpFailedSendMeter = meter(metricProvider, "garp_failed_send");
44 private Meter meter(MetricProvider metricProvider, String id) {
45 return metricProvider.newMeter(
46 MetricDescriptor.builder().anchor(this).project("netvirt").module("natservice").id(id).build());
49 public void installDefaultNatFlow() {
50 installDefaultNatFlowMeter.mark();
53 public void removeDefaultNatFlow() {
54 removeDefaultNatFlowMeter.mark();
57 public void removeExternalNetworkGroup() {
58 removeExternalNetworkGroupMeter.mark();
61 public void subnetmapAdd() {
62 subnetmapAddMeter.mark();
65 public void subnetmapRemove() {
66 subnetmapRemoveMeter.mark();
69 public void subnetmapUpdate() {
70 subnetmapUpdateMeter.mark();
73 public void garpSent() {
77 public void garpFailedIpv6() {
78 garpFailedIpv6Meter.mark();
81 public void garpFailedMissingInterface() {
82 garpFailedMissingInterfaceMeter.mark();
85 public void garpFailedSend() {
86 garpFailedSendMeter.mark();