aboutsummaryrefslogtreecommitdiffstats
path: root/cps-application/src/main/java/org/onap
diff options
context:
space:
mode:
authoremaclee <lee.anjella.macabuhay@est.tech>2024-12-11 14:58:25 +0000
committerLee Anjella Macabuhay <lee.anjella.macabuhay@est.tech>2025-01-07 12:02:29 +0000
commit0d61c432b2604f0459dea95bbd328c279b04fbef (patch)
tree3cd35b93ed02048699006082ad1086c986c0990f /cps-application/src/main/java/org/onap
parentffac9f27f7183d8e80aa74a7b113f68dcadb3f87 (diff)
Add gauge metric for NCMP "cmhandle states"
Issue-ID: CPS-2456 Change-Id: I1aebcc68dfdc9c48c230c74376742d67b05c0615 Signed-off-by: emaclee <lee.anjella.macabuhay@est.tech>
Diffstat (limited to 'cps-application/src/main/java/org/onap')
-rw-r--r--cps-application/src/main/java/org/onap/cps/config/MicroMeterConfig.java89
1 files changed, 86 insertions, 3 deletions
diff --git a/cps-application/src/main/java/org/onap/cps/config/MicroMeterConfig.java b/cps-application/src/main/java/org/onap/cps/config/MicroMeterConfig.java
index 22194f3ad8..39ed6ef5a7 100644
--- a/cps-application/src/main/java/org/onap/cps/config/MicroMeterConfig.java
+++ b/cps-application/src/main/java/org/onap/cps/config/MicroMeterConfig.java
@@ -1,6 +1,6 @@
/*
* ============LICENSE_START=======================================================
- * Copyright (C) 2023 Nordix Foundation.
+ * Copyright (C) 2023-2025 Nordix Foundation.
* ================================================================================
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,17 +20,100 @@
package org.onap.cps.config;
+import com.hazelcast.map.IMap;
import io.micrometer.core.aop.TimedAspect;
+import io.micrometer.core.instrument.Gauge;
import io.micrometer.core.instrument.MeterRegistry;
+import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
+@RequiredArgsConstructor
public class MicroMeterConfig {
+ private static final String TAG = "state";
+ private static final String CMHANDLE_STATE_GAUGE = "cmHandlesByState";
+ final IMap<String, Integer> cmHandlesByState;
+
+ @Bean
+ public TimedAspect timedAspect(final MeterRegistry meterRegistry) {
+ return new TimedAspect(meterRegistry);
+ }
+
+ /**
+ * Register gauge metric for cm handles with state 'advised'.
+ *
+ * @param meterRegistry meter registry
+ * @return cm handle state gauge
+ */
+ @Bean
+ public Gauge advisedCmHandles(final MeterRegistry meterRegistry) {
+ return Gauge.builder(CMHANDLE_STATE_GAUGE, cmHandlesByState,
+ value -> cmHandlesByState.get("advisedCmHandlesCount"))
+ .tag(TAG, "ADVISED")
+ .description("Current number of cmhandles in advised state")
+ .register(meterRegistry);
+ }
+
+ /**
+ * Register gauge metric for cm handles with state 'ready'.
+ *
+ * @param meterRegistry meter registry
+ * @return cm handle state gauge
+ */
+ @Bean
+ public Gauge readyCmHandles(final MeterRegistry meterRegistry) {
+ return Gauge.builder(CMHANDLE_STATE_GAUGE, cmHandlesByState,
+ value -> cmHandlesByState.get("readyCmHandlesCount"))
+ .tag(TAG, "READY")
+ .description("Current number of cmhandles in ready state")
+ .register(meterRegistry);
+ }
+
+ /**
+ * Register gauge metric for cm handles with state 'locked'.
+ *
+ * @param meterRegistry meter registry
+ * @return cm handle state gauge
+ */
+ @Bean
+ public Gauge lockedCmHandles(final MeterRegistry meterRegistry) {
+ return Gauge.builder(CMHANDLE_STATE_GAUGE, cmHandlesByState,
+ value -> cmHandlesByState.get("lockedCmHandlesCount"))
+ .tag(TAG, "LOCKED")
+ .description("Current number of cmhandles in locked state")
+ .register(meterRegistry);
+ }
+
+ /**
+ * Register gauge metric for cm handles with state 'deleting'.
+ *
+ * @param meterRegistry meter registry
+ * @return cm handle state gauge
+ */
+ @Bean
+ public Gauge deletingCmHandles(final MeterRegistry meterRegistry) {
+ return Gauge.builder(CMHANDLE_STATE_GAUGE, cmHandlesByState,
+ value -> cmHandlesByState.get("deletingCmHandlesCount"))
+ .tag(TAG, "DELETING")
+ .description("Current number of cmhandles in deleting state")
+ .register(meterRegistry);
+ }
+
+ /**
+ * Register gauge metric for cm handles with state 'deleted'.
+ *
+ * @param meterRegistry meter registry
+ * @return cm handle state gauge
+ */
@Bean
- public TimedAspect timedAspect(final MeterRegistry registry) {
- return new TimedAspect(registry);
+ public Gauge deletedCmHandles(final MeterRegistry meterRegistry) {
+ return Gauge.builder(CMHANDLE_STATE_GAUGE, cmHandlesByState,
+ value -> cmHandlesByState.get("deletedCmHandlesCount"))
+ .tag(TAG, "DELETED")
+ .description("Current number of cmhandles in deleted state")
+ .register(meterRegistry);
}
}