package org.onap.policy.pap.main.notification;
+import io.micrometer.core.instrument.Counter;
import io.micrometer.core.instrument.MeterRegistry;
import java.util.ArrayList;
import java.util.HashMap;
private PolicyStatusService policyStatusService;
+ private Counter deploymentSuccessCounter;
+ private Counter unDeploymentSuccessCounter;
+ private Counter deploymentFailureCounter;
+ private Counter unDeploymentFailureCounter;
/**
* Constructs the object.
*/
public DeploymentStatus(PolicyStatusService policyStatusService) {
this.policyStatusService = policyStatusService;
+ initializeMetrics();
+ }
+
+ private void initializeMetrics() {
+ String counterName = "pap_" + PrometheusUtils.POLICY_DEPLOYMENTS_METRIC;
+ MeterRegistry meterRegistry = Registry.get(PapConstants.REG_METER_REGISTRY, MeterRegistry.class);
+ deploymentSuccessCounter =
+ Counter.builder(counterName).tags(PrometheusUtils.OPERATION_METRIC_LABEL, PrometheusUtils.DEPLOY_OPERATION,
+ PrometheusUtils.STATUS_METRIC_LABEL, State.SUCCESS.name()).register(meterRegistry);
+
+ unDeploymentSuccessCounter = Counter.builder(counterName).tags(PrometheusUtils.OPERATION_METRIC_LABEL,
+ PrometheusUtils.UNDEPLOY_OPERATION, PrometheusUtils.STATUS_METRIC_LABEL, State.SUCCESS.name())
+ .register(meterRegistry);
+
+ deploymentFailureCounter =
+ Counter.builder(counterName).tags(PrometheusUtils.OPERATION_METRIC_LABEL, PrometheusUtils.DEPLOY_OPERATION,
+ PrometheusUtils.STATUS_METRIC_LABEL, State.FAILURE.name()).register(meterRegistry);
+
+ unDeploymentFailureCounter = Counter.builder(counterName).tags(PrometheusUtils.OPERATION_METRIC_LABEL,
+ PrometheusUtils.UNDEPLOY_OPERATION, PrometheusUtils.STATUS_METRIC_LABEL, State.FAILURE.name())
+ .register(meterRegistry);
}
/**
}
private void updateMetrics() {
- MeterRegistry meterRegistry = Registry.get(PapConstants.REG_METER_REGISTRY, MeterRegistry.class);
- String counterName = "pap_" + PrometheusUtils.POLICY_DEPLOYMENTS_METRIC;
recordMap.forEach((key, value) -> {
if (value.getAction().equals(StatusAction.Action.UPDATED)) {
if (value.getStatus().getState().equals(State.SUCCESS)) {
- meterRegistry.counter(counterName, PrometheusUtils.OPERATION_METRIC_LABEL,
- value.getStatus().isDeploy() ? PrometheusUtils.DEPLOY_OPERATION
- : PrometheusUtils.UNDEPLOY_OPERATION,
- PrometheusUtils.STATUS_METRIC_LABEL, State.SUCCESS.name()).increment();
+ (value.getStatus().isDeploy() ? deploymentSuccessCounter : unDeploymentSuccessCounter).increment();
} else if (value.getStatus().getState().equals(State.FAILURE)) {
- meterRegistry.counter(counterName, PrometheusUtils.OPERATION_METRIC_LABEL,
- value.getStatus().isDeploy() ? PrometheusUtils.DEPLOY_OPERATION
- : PrometheusUtils.UNDEPLOY_OPERATION,
- PrometheusUtils.STATUS_METRIC_LABEL, State.FAILURE.name()).increment();
+ (value.getStatus().isDeploy() ? deploymentFailureCounter : unDeploymentFailureCounter).increment();
}
}
});
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
import java.util.Collections;
import java.util.LinkedList;
import java.util.Queue;
import java.util.function.Consumer;
import org.junit.Before;
+import org.junit.BeforeClass;
import org.mockito.ArgumentCaptor;
import org.mockito.invocation.InvocationOnMock;
import org.mockito.stubbing.Answer;
import org.onap.policy.common.endpoints.event.comm.Topic.CommInfrastructure;
import org.onap.policy.common.endpoints.listeners.RequestIdDispatcher;
import org.onap.policy.common.endpoints.listeners.TypedMessageListener;
+import org.onap.policy.common.utils.services.Registry;
import org.onap.policy.models.pdp.concepts.PdpMessage;
import org.onap.policy.models.pdp.concepts.PdpStateChange;
import org.onap.policy.models.pdp.concepts.PdpStatus;
protected RequestParams reqParams;
protected PdpModifyRequestMapParams mapParams;
+ @BeforeClass
+ public static void setupBeforeAll() {
+ Registry.registerOrReplace(PapConstants.REG_METER_REGISTRY, new SimpleMeterRegistry());
+ }
+
/**
* Sets up.
*
import static org.mockito.Mockito.verify;
import static org.mockito.Mockito.when;
+import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
import java.util.Collections;
import java.util.Set;
import javax.ws.rs.core.Response.Status;
import org.mockito.Captor;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.policy.common.utils.services.Registry;
import org.onap.policy.models.base.PfModelException;
import org.onap.policy.models.base.PfModelRuntimeException;
import org.onap.policy.models.pap.concepts.PolicyNotification;
import org.onap.policy.models.pap.concepts.PolicyStatus;
import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier;
+import org.onap.policy.pap.main.PapConstants;
import org.onap.policy.pap.main.PolicyPapRuntimeException;
import org.onap.policy.pap.main.comm.Publisher;
import org.onap.policy.pap.main.comm.QueueToken;
public void setUp() {
try {
when(policyStatusService.getGroupPolicyStatus(anyString())).thenReturn(Collections.emptyList());
-
+ Registry.registerOrReplace(PapConstants.REG_METER_REGISTRY, new SimpleMeterRegistry());
notifier = new MyNotifier(publisher);
} catch (PfModelException e) {