diff options
author | jhh <jorge.hernandez-herrero@att.com> | 2021-02-18 18:08:34 -0600 |
---|---|---|
committer | jhh <jorge.hernandez-herrero@att.com> | 2021-02-19 12:53:20 -0600 |
commit | ea029d57c8c132b8dac6a280b7037ff495c184a4 (patch) | |
tree | edfac385efdb459244a6fabbfe22c4caff22f728 /controlloop/common/feature-controlloop-trans/src/main/java | |
parent | bb7c33c3d181f1dbeb83bda815f41256a54b5a32 (diff) |
support control loop transaction metrics
Issue-ID: POLICY-3033
Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
Change-Id: Ic13275607a56b36506a0c79d1880603ff374b0c2
Signed-off-by: jhh <jorge.hernandez-herrero@att.com>
Diffstat (limited to 'controlloop/common/feature-controlloop-trans/src/main/java')
-rw-r--r-- | controlloop/common/feature-controlloop-trans/src/main/java/org/onap/policy/drools/apps/controlloop/feature/trans/CacheBasedControlLoopMetricsManager.java | 33 |
1 files changed, 18 insertions, 15 deletions
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 956d28ed8..468c2ea9a 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-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. @@ -29,6 +29,7 @@ import java.time.ZonedDateTime; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.Properties; import java.util.UUID; import java.util.concurrent.TimeUnit; @@ -38,6 +39,7 @@ import org.onap.policy.controlloop.ControlLoopOperation; import org.onap.policy.controlloop.VirtualControlLoopNotification; import org.onap.policy.drools.persistence.SystemPersistenceConstants; import org.onap.policy.drools.system.PolicyController; +import org.onap.policy.drools.system.PolicyEngineConstants; import org.onap.policy.drools.utils.logging.MdcTransaction; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -163,7 +165,7 @@ class CacheBasedControlLoopMetricsManager implements ControlLoopMetrics { case FINAL_FAILURE: case FINAL_SUCCESS: case FINAL_OPENLOOP: - endTransaction(notification); + endTransaction(controller, notification); break; case ACTIVE: case OPERATION: @@ -224,18 +226,15 @@ class CacheBasedControlLoopMetricsManager implements ControlLoopMetrics { /** * End of a control loop transaction. * + * @param controller controller * @param notification control loop notification */ - protected void endTransaction(VirtualControlLoopNotification notification) { + protected void endTransaction(PolicyController controller, VirtualControlLoopNotification notification) { ZonedDateTime startTime; VirtualControlLoopNotification startNotification = cache.getIfPresent(notification.getRequestId()); - if (startNotification != null) { - startTime = startNotification.getNotificationTime(); - } else { - startTime = notification.getNotificationTime(); - } + startTime = Objects.requireNonNullElse(startNotification, notification).getNotificationTime(); - this.transaction(notification, startTime); + this.transaction(controller, notification, startTime); if (startNotification != null) { removeTransaction(startNotification.getRequestId()); } @@ -349,7 +348,8 @@ class CacheBasedControlLoopMetricsManager implements ControlLoopMetrics { return trans; } - protected void transaction(VirtualControlLoopNotification notification, ZonedDateTime startTime) { + protected void transaction(PolicyController controller, + VirtualControlLoopNotification notification, ZonedDateTime startTime) { MdcTransaction trans = getMdcTransaction(notification) .setStartTime(startTime.toInstant()) .setEndTime(notification.getNotificationTime().toInstant()); @@ -372,6 +372,13 @@ class CacheBasedControlLoopMetricsManager implements ControlLoopMetrics { break; } + try { + PolicyEngineConstants.getManager().transaction(controller.getName(), + notification.getClosedLoopControlName(), trans.getMetric()); + } catch (RuntimeException rex) { + logger.info("error pegging control loop transaction: {}", trans.getMetric(), rex); + } + trans.transaction().resetTransaction(); } @@ -387,10 +394,6 @@ class CacheBasedControlLoopMetricsManager implements ControlLoopMetrics { private String notificationTypeToResponseCode(String notificationType) { String code = note2code.get(notificationType); - if (code != null) { - return code; - } else { - return UNKNOWN_RESPONSE_CODE; - } + return Objects.requireNonNullElse(code, UNKNOWN_RESPONSE_CODE); } } |