From 1ce041490b2b4aafb700c905b23d17037e42f153 Mon Sep 17 00:00:00 2001 From: jhh Date: Wed, 9 Feb 2022 21:09:30 -0600 Subject: transaction records cleanup Issue-ID: POLICY-3761 Signed-off-by: jhh Change-Id: Id842d8ca5773d0c1104ae387519375fb914bdf4f Signed-off-by: jhh --- .../src/main/resources/usecases.drl | 44 ++++++++++++++++------ .../org/onap/policy/controlloop/UsecasesTest.java | 20 ++++++---- .../trans/CacheBasedControlLoopMetricsManager.java | 25 +++++++++--- 3 files changed, 64 insertions(+), 25 deletions(-) diff --git a/controlloop/common/controller-usecases/src/main/resources/usecases.drl b/controlloop/common/controller-usecases/src/main/resources/usecases.drl index 932b08cf6..0e1f7de66 100644 --- a/controlloop/common/controller-usecases/src/main/resources/usecases.drl +++ b/controlloop/common/controller-usecases/src/main/resources/usecases.drl @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2020-2022 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. @@ -160,7 +160,8 @@ rule "EVENT" notification.setNotification(ControlLoopNotificationType.REJECTED); notification.setFrom("policy"); notification.setMessage("Missing requestId"); - notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($params.getPolicyName()); notification.setPolicyVersion($params.getPolicyVersion()); } else { @@ -179,7 +180,9 @@ rule "EVENT" notification = manager.makeNotification(); notification.setNotification(ControlLoopNotificationType.ACTIVE); - notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($params.getPolicyName()); + notification.setPolicyVersion($params.getPolicyVersion()); } else { // Note: the notification will be generated lazily @@ -197,7 +200,8 @@ rule "EVENT" notification = new VirtualControlLoopNotification($event); notification.setNotification(ControlLoopNotificationType.REJECTED); notification.setMessage("Exception occurred: " + e.getMessage()); - notification.setPolicyName($params.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($params.getPolicyName()); notification.setPolicyVersion($params.getPolicyVersion()); } // @@ -374,7 +378,9 @@ rule "EVENT.MANAGER.ACCEPT" VirtualControlLoopNotification notification = $manager.makeNotification(); notification.setNotification(ControlLoopNotificationType.ACTIVE); - notification.setPolicyName($manager.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($manager.getPolicyName()); + notification.setPolicyVersion($manager.getPolicyVersion()); $manager.deliver("POLICY-CL-MGT", notification, "notification", drools.getRule().getName()); } catch(RuntimeException e) { @@ -508,7 +514,9 @@ rule "EVENT.MANAGER.PROCESS.GUARD.OUTCOME" try { VirtualControlLoopNotification notification = $manager.makeNotification(); notification.setNotification(ControlLoopNotificationType.OPERATION); - notification.setPolicyName($manager.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($manager.getPolicyName()); + notification.setPolicyVersion($manager.getPolicyVersion()); notification.setHistory(Collections.emptyList()); // get actor/operation name from the policy step, not from the guard step @@ -570,7 +578,9 @@ rule "EVENT.MANAGER.PROCESS.POLICY.STARTED" VirtualControlLoopNotification notification = $manager.makeNotification(); notification.setNotification(ControlLoopNotificationType.OPERATION); - notification.setPolicyName($manager.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($manager.getPolicyName()); + notification.setPolicyVersion($manager.getPolicyVersion()); notification.setHistory(Collections.emptyList()); notification.setMessage($manager.getOperationMessage()); @@ -662,7 +672,9 @@ rule "EVENT.MANAGER.PROCESS.POLICY.SUCCESS" VirtualControlLoopNotification notification = $manager.makeNotification(); notification.setNotification(ControlLoopNotificationType.OPERATION_SUCCESS); - notification.setPolicyName($manager.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($manager.getPolicyName()); + notification.setPolicyVersion($manager.getPolicyVersion()); notification.setHistory($manager.getPartialHistory().stream().map(OperationOutcome2::getClOperation) .collect(Collectors.toList())); @@ -724,7 +736,9 @@ rule "EVENT.MANAGER.PROCESS.FINAL.FAILURE.ACCEPTED" VirtualControlLoopNotification notification = $manager.makeNotification(); notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE); - notification.setPolicyName($manager.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($manager.getPolicyName()); + notification.setPolicyVersion($manager.getPolicyVersion()); notification.setHistory($manager.getPartialHistory().stream().map(OperationOutcome2::getClOperation) .collect(Collectors.toList())); @@ -781,7 +795,9 @@ rule "EVENT.MANAGER.PROCESS.FINAL.FAILURE.REJECTED" VirtualControlLoopNotification notification = $manager.makeNotification(); notification.setNotification(ControlLoopNotificationType.REJECTED); - notification.setPolicyName($manager.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($manager.getPolicyName()); + notification.setPolicyVersion($manager.getPolicyVersion()); notification.setHistory($manager.getPartialHistory().stream().map(OperationOutcome2::getClOperation) .collect(Collectors.toList())); @@ -835,7 +851,9 @@ rule "EVENT.MANAGER.PROCESS.POLICY.FAILURE" VirtualControlLoopNotification notification = $manager.makeNotification(); notification.setNotification(ControlLoopNotificationType.OPERATION_FAILURE); - notification.setPolicyName($manager.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($manager.getPolicyName()); + notification.setPolicyVersion($manager.getPolicyVersion()); $manager.deliver("POLICY-CL-MGT", notification, "notification", drools.getRule().getName()); @@ -981,7 +999,9 @@ rule "EVENT.MANAGER.FINAL" try { VirtualControlLoopNotification notification = $manager.makeNotification(); - notification.setPolicyName($manager.getPolicyName() + "." + drools.getRule().getName()); + notification.setPolicyScope(drools.getRule().getName()); + notification.setPolicyName($manager.getPolicyName()); + notification.setPolicyVersion($manager.getPolicyVersion()); notification.setHistory($manager.getFullHistory().stream().map(OperationOutcome2::getClOperation) .collect(Collectors.toList())); diff --git a/controlloop/common/controller-usecases/src/test/java/org/onap/policy/controlloop/UsecasesTest.java b/controlloop/common/controller-usecases/src/test/java/org/onap/policy/controlloop/UsecasesTest.java index ef40d302e..5077f8fb8 100644 --- a/controlloop/common/controller-usecases/src/test/java/org/onap/policy/controlloop/UsecasesTest.java +++ b/controlloop/common/controller-usecases/src/test/java/org/onap/policy/controlloop/UsecasesTest.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2020-2021 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2020-2022 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. @@ -90,18 +90,23 @@ public class UsecasesTest extends DroolsRuleTest { String policyName = policy.getIdentifier().getName(); policyClMgt.await(notif -> notif.getNotification() == ControlLoopNotificationType.ACTIVE - && (policyName + ".EVENT.MANAGER.ACCEPT").equals(notif.getPolicyName())); + && "EVENT.MANAGER.ACCEPT".equals(notif.getPolicyScope()) + && policyName.equals(notif.getPolicyName())); policyClMgt.await(notif -> notif.getNotification() == ControlLoopNotificationType.OPERATION - && (policyName + ".EVENT.MANAGER.PROCESS.GUARD.OUTCOME").equals(notif.getPolicyName()) + && "EVENT.MANAGER.PROCESS.GUARD.OUTCOME".equals(notif.getPolicyScope()) + && policyName.equals(notif.getPolicyName()) && notif.getMessage().startsWith("Sending guard query")); policyClMgt.await(notif -> notif.getNotification() == ControlLoopNotificationType.OPERATION - && (policyName + ".EVENT.MANAGER.PROCESS.GUARD.OUTCOME").equals(notif.getPolicyName()) - && notif.getMessage().startsWith("Guard result") && notif.getMessage().endsWith("Permit")); + && "EVENT.MANAGER.PROCESS.GUARD.OUTCOME".equals(notif.getPolicyScope()) + && policyName.equals(notif.getPolicyName()) + && notif.getMessage().startsWith("Guard result") + && notif.getMessage().endsWith("Permit")); policyClMgt.await(notif -> notif.getNotification() == ControlLoopNotificationType.OPERATION - && (policyName + ".EVENT.MANAGER.PROCESS.POLICY.STARTED").equals(notif.getPolicyName()) + && "EVENT.MANAGER.PROCESS.POLICY.STARTED".equals(notif.getPolicyScope()) + && policyName.equals(notif.getPolicyName()) && notif.getMessage().startsWith("actor=")); } @@ -110,7 +115,8 @@ public class UsecasesTest extends DroolsRuleTest { Listener policyClMgt, ControlLoopNotificationType finalType) { return policyClMgt.await(notif -> notif.getNotification() == finalType - && (policy.getIdentifier().getName() + ".EVENT.MANAGER.FINAL").equals(notif.getPolicyName())); + && "EVENT.MANAGER.FINAL".equals(notif.getPolicyScope()) + && (policy.getIdentifier().getName()).equals(notif.getPolicyName())); } @Override diff --git a/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/CacheBasedControlLoopMetricsManager.java b/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/CacheBasedControlLoopMetricsManager.java index d0b79125b..66a975024 100644 --- a/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/CacheBasedControlLoopMetricsManager.java +++ b/controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/CacheBasedControlLoopMetricsManager.java @@ -2,7 +2,7 @@ * ============LICENSE_START======================================================= * ONAP * ================================================================================ - * Copyright (C) 2019-2021 AT&T Intellectual Property. All rights reserved. + * Copyright (C) 2019-2022 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. @@ -248,9 +248,22 @@ class CacheBasedControlLoopMetricsManager implements ControlLoopMetrics { protected void evicted(VirtualControlLoopNotification notification) { MdcTransaction .newTransaction(notification.getRequestId().toString(), notification.getFrom()) - .setServiceName(notification.getClosedLoopControlName()).setTargetEntity(notification.getTarget()) - .setStartTime(notification.getNotificationTime().toInstant()).setEndTime(Instant.now()) - .setResponseDescription("EVICTED").setStatusCode(false).metric().resetTransaction(); + .setServiceName(notification.getClosedLoopControlName()) + .setServiceInstanceId(notification.getPolicyName() + ":" + notification.getPolicyVersion()) + .setProcessKey("" + notification.getAai()) + .setTargetEntity(notification.getTargetType() + "." + notification.getTarget()) + .setResponseCode(UNKNOWN_RESPONSE_CODE) + .setStartTime(notification.getNotificationTime().toInstant()) + .setEndTime(Instant.now()) + .setResponseDescription("EVICTED") + .setStatusCode(false) + .setCustomField1((notification.getNotification() != null) + ? notification.getNotification().name() : "") + .setCustomField2(notification.getPolicyScope()) + .setClientIpAddress(notification.getClosedLoopEventClient()) + .metric() + .resetTransaction(); + } @Override @@ -291,8 +304,7 @@ class CacheBasedControlLoopMetricsManager implements ControlLoopMetrics { return MdcTransaction .newTransaction(notification.getRequestId().toString(), notification.getFrom()) .setServiceName(notification.getClosedLoopControlName()) - .setServiceInstanceId(notification.getPolicyScope() - + ":" + notification.getPolicyName() + ":" + notification.getPolicyVersion()) + .setServiceInstanceId(notification.getPolicyName() + ":" + notification.getPolicyVersion()) .setProcessKey("" + notification.getAai()) .setTargetEntity(notification.getTargetType() + "." + notification.getTarget()) .setResponseCode((notification.getNotification() != null) @@ -300,6 +312,7 @@ class CacheBasedControlLoopMetricsManager implements ControlLoopMetrics { : UNKNOWN_RESPONSE_CODE) .setCustomField1((notification.getNotification() != null) ? notification.getNotification().name() : "") + .setCustomField2(notification.getPolicyScope()) .setResponseDescription(notification.getMessage()) .setClientIpAddress(notification.getClosedLoopEventClient()); } -- cgit 1.2.3-korg