Add new metrics to the get data node method 93/133593/2
authorkissand <andras.zoltan.kiss@est.tech>
Thu, 2 Mar 2023 12:30:17 +0000 (13:30 +0100)
committerkissand <andras.zoltan.kiss@est.tech>
Thu, 9 Mar 2023 10:18:01 +0000 (11:18 +0100)
Issue-ID: CPS-1509
Change-Id: I2eded9a23b56f5263591c710c7a707cf281f93d7
Signed-off-by: kissand <andras.zoltan.kiss@est.tech>
cps-rest/src/main/java/org/onap/cps/rest/controller/DataRestController.java
cps-rest/src/main/java/org/onap/cps/rest/controller/QueryRestController.java
cps-ri/src/main/java/org/onap/cps/spi/impl/CpsDataPersistenceServiceImpl.java
cps-service/src/main/java/org/onap/cps/api/impl/CpsQueryServiceImpl.java

index 80cfb8c..edfeab3 100755 (executable)
@@ -24,6 +24,7 @@
 
 package org.onap.cps.rest.controller;
 
+import io.micrometer.core.annotation.Timed;
 import java.time.OffsetDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.ArrayList;
@@ -97,6 +98,8 @@ public class DataRestController implements CpsDataApi {
     }
 
     @Override
+    @Timed(value = "cps.data.controller.datanode.get.v1",
+            description = "Time taken to get data node")
     public ResponseEntity<Object> getNodeByDataspaceAndAnchor(final String dataspaceName,
         final String anchorName, final String xpath, final Boolean includeDescendants) {
         final FetchDescendantsOption fetchDescendantsOption = Boolean.TRUE.equals(includeDescendants)
@@ -108,6 +111,8 @@ public class DataRestController implements CpsDataApi {
     }
 
     @Override
+    @Timed(value = "cps.data.controller.datanode.get.v2",
+            description = "Time taken to get data node")
     public ResponseEntity<Object> getNodeByDataspaceAndAnchorV2(final String dataspaceName, final String anchorName,
                                                                 final String xpath,
                                                                 final String fetchDescendantsOptionAsString) {
index 81938dc..5f4283d 100644 (file)
@@ -22,6 +22,7 @@
 
 package org.onap.cps.rest.controller;
 
+import io.micrometer.core.annotation.Timed;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.List;
@@ -49,6 +50,8 @@ public class QueryRestController implements CpsQueryApi {
     private final PrefixResolver prefixResolver;
 
     @Override
+    @Timed(value = "cps.data.controller.datanode.query.v1",
+            description = "Time taken to query data nodes")
     public ResponseEntity<Object> getNodesByDataspaceAndAnchorAndCpsPath(final String dataspaceName,
         final String anchorName, final String cpsPath, final Boolean includeDescendants) {
         final FetchDescendantsOption fetchDescendantsOption = Boolean.TRUE.equals(includeDescendants)
@@ -58,6 +61,8 @@ public class QueryRestController implements CpsQueryApi {
     }
 
     @Override
+    @Timed(value = "cps.data.controller.datanode.query.v2",
+            description = "Time taken to query data nodes")
     public ResponseEntity<Object> getNodesByDataspaceAndAnchorAndCpsPathV2(final String dataspaceName,
         final String anchorName, final String cpsPath, final String fetchDescendantsOptionAsString) {
         final FetchDescendantsOption fetchDescendantsOption =
index f634008..95058ee 100644 (file)
@@ -25,6 +25,7 @@ package org.onap.cps.spi.impl;
 
 import com.google.common.collect.ImmutableSet;
 import com.google.common.collect.ImmutableSet.Builder;
+import io.micrometer.core.annotation.Timed;
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.Collection;
@@ -80,7 +81,7 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService
     private final JsonObjectMapper jsonObjectMapper;
     private final SessionManager sessionManager;
 
-    private static final String REG_EX_FOR_OPTIONAL_LIST_INDEX = "(\\[@[\\s\\S]+?]){0,1})";
+    private static final String REG_EX_FOR_OPTIONAL_LIST_INDEX = "(\\[@[\\s\\S]+?])?)";
 
     @Override
     public void addChildDataNode(final String dataspaceName, final String anchorName, final String parentNodeXpath,
@@ -250,6 +251,8 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService
     }
 
     @Override
+    @Timed(value = "cps.data.persistence.service.datanode.get",
+            description = "Time taken to get a data node")
     public Collection<DataNode> getDataNodes(final String dataspaceName, final String anchorName,
                                              final String xpath,
                                              final FetchDescendantsOption fetchDescendantsOption) {
@@ -263,6 +266,8 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService
     }
 
     @Override
+    @Timed(value = "cps.data.persistence.service.datanode.batch.get",
+            description = "Time taken to get data nodes")
     public Collection<DataNode> getDataNodesForMultipleXpaths(final String dataspaceName, final String anchorName,
                                                               final Collection<String> xpaths,
                                                               final FetchDescendantsOption fetchDescendantsOption) {
@@ -330,6 +335,8 @@ public class CpsDataPersistenceServiceImpl implements CpsDataPersistenceService
     }
 
     @Override
+    @Timed(value = "cps.data.persistence.service.datanode.query",
+            description = "Time taken to query data nodes")
     public List<DataNode> queryDataNodes(final String dataspaceName, final String anchorName, final String cpsPath,
                                          final FetchDescendantsOption fetchDescendantsOption) {
         final DataspaceEntity dataspaceEntity = dataspaceRepository.getByName(dataspaceName);
index 7b9043a..a63faab 100644 (file)
@@ -20,6 +20,7 @@
 
 package org.onap.cps.api.impl;
 
+import io.micrometer.core.annotation.Timed;
 import java.util.Collection;
 import lombok.RequiredArgsConstructor;
 import org.onap.cps.api.CpsQueryService;
@@ -37,6 +38,8 @@ public class CpsQueryServiceImpl implements CpsQueryService {
     private final CpsValidator cpsValidator;
 
     @Override
+    @Timed(value = "cps.data.service.datanode.query",
+            description = "Time taken to query data nodes")
     public Collection<DataNode> queryDataNodes(final String dataspaceName, final String anchorName,
         final String cpsPath, final FetchDescendantsOption fetchDescendantsOption) {
         cpsValidator.validateNameCharacters(dataspaceName, anchorName);