From 8eb77a1d2ade5eff3c2e736d7a7517d14e2a2d92 Mon Sep 17 00:00:00 2001 From: jhh Date: Wed, 3 Mar 2021 12:05:02 -0600 Subject: enable viewing lifecycle statistics with telemetry Issue-ID: POLICY-3121 Signed-off-by: jhh Change-Id: I25e8c4439c0a6beabe532c17cc58919f369f17f0 Signed-off-by: jhh --- .../java/org/onap/policy/drools/lifecycle/LifecycleFsm.java | 5 ++++- .../policy/drools/server/restful/RestLifecycleManager.java | 12 ++++++++++++ .../drools/server/restful/RestLifecycleManagerTest.java | 7 ++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java index 4f1a4f31..ea5e49f4 100644 --- a/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java +++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/lifecycle/LifecycleFsm.java @@ -595,7 +595,10 @@ public class LifecycleFsm implements Startable { return status; } - private PdpStatistics statisticsPayload() { + /** + * It provides a snapshot of the current statistics. + */ + public PdpStatistics statisticsPayload() { PdpStatistics updateStats = new PdpStatistics(stats); updateStats.setTimeStamp(Instant.now()); diff --git a/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java b/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java index e9969094..9af78ae6 100644 --- a/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java +++ b/feature-lifecycle/src/main/java/org/onap/policy/drools/server/restful/RestLifecycleManager.java @@ -45,6 +45,7 @@ import org.onap.policy.common.utils.coder.StandardCoder; import org.onap.policy.drools.lifecycle.LifecycleFeature; import org.onap.policy.drools.lifecycle.PolicyTypeController; import org.onap.policy.models.pdp.concepts.PdpStateChange; +import org.onap.policy.models.pdp.concepts.PdpStatistics; import org.onap.policy.models.pdp.concepts.PdpUpdate; import org.onap.policy.models.pdp.enums.PdpState; import org.onap.policy.models.tosca.authorative.concepts.ToscaConceptIdentifier; @@ -408,6 +409,17 @@ public class RestLifecycleManager { return Response.status(Response.Status.OK).entity(Collections.emptyList()).build(); } + /** + * Get current counts. + */ + + @GET + @Path("statistics") + @ApiOperation(value = "Gets Policy Statistics", response = PdpStatistics.class) + public Response stats() { + return Response.status(Response.Status.OK).entity(LifecycleFeature.getFsm().statisticsPayload()).build(); + } + private Response deployUndeployOperation(String policy, boolean deploy) { ToscaPolicy toscaPolicy = getToscaPolicy(policy); if (toscaPolicy == null) { diff --git a/feature-lifecycle/src/test/java/org/onap/policy/drools/server/restful/RestLifecycleManagerTest.java b/feature-lifecycle/src/test/java/org/onap/policy/drools/server/restful/RestLifecycleManagerTest.java index 43d3fe32..de67c027 100644 --- a/feature-lifecycle/src/test/java/org/onap/policy/drools/server/restful/RestLifecycleManagerTest.java +++ b/feature-lifecycle/src/test/java/org/onap/policy/drools/server/restful/RestLifecycleManagerTest.java @@ -1,6 +1,6 @@ /*- * ============LICENSE_START======================================================= - * Copyright (C) 2019-2020 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. * ================================================================================ * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -91,8 +91,8 @@ public class RestLifecycleManagerTest { private static final String VCPE_OPERATIONAL_DROOLS_POLICY_JSON = "policies/vCPE.policy.operational.input.tosca.json"; - private static StandardCoder coder = new StandardCoder(); - private static ControllerSupport controllerSupport = new ControllerSupport("lifecycle"); + private static final StandardCoder coder = new StandardCoder(); + private static final ControllerSupport controllerSupport = new ControllerSupport("lifecycle"); private LifecycleFsm fsm; private HttpClient client; @@ -235,6 +235,7 @@ public class RestLifecycleManagerTest { resourceLists("policies", 2); get("policies/example.controller/1.0.0", Status.OK.getStatusCode()); get("policies/example.artifact/1.0.0", Status.OK.getStatusCode()); + get("statistics", Status.OK.getStatusCode()); /* add tosca compliant operational policy */ -- cgit 1.2.3-korg