From c347165e5e6d7adce48940a1acbe4b648ae25937 Mon Sep 17 00:00:00 2001 From: holdonbei <54311580+Holdonbei@users.noreply.github.com> Date: Tue, 28 Sep 2021 11:48:11 +0800 Subject: [PATCH 1/2] clean git log. (#5) * delete MetricsMonitor.java in core module. * delete MetricsMonitor.java in config module. * remove some unnecessary code in MetricsMonitor.java from naming module. * add a NacosMetersReporter which is aimed to transfer JRaft metrics into micrometer metrics. * fix code style. * delete unnecessary code and add a groupName String for NacosMetersReporter.java. * delete unnecessary notes. * add some JRaft metrics into MetricsManger. * fix code style error. * delete append-logs and replicate-entries timer, nacos only collect theirs times. * add prefix for JRaft metrics. * add distro metrics in core module. * fix code style. * rename gaugesMap into gauges, countersMap into counters and timersMap into timers. --- .../server/aspect/RequestLogAspect.java | 30 +-- .../exception/GlobalExceptionHandler.java | 18 +- .../config/server/manager/TaskManager.java | 18 +- .../config/server/monitor/MemoryMonitor.java | 12 +- .../config/server/monitor/MetricsMonitor.java | 149 ------------ .../server/monitor/PrintMemoryTask.java | 6 +- .../monitor/ThreadTaskQueueMonitorTask.java | 12 +- .../server/service/LongPollingService.java | 6 +- .../ExternalDataSourceServiceImpl.java | 12 +- .../service/notify/AsyncNotifyService.java | 36 +-- .../service/notify/NotifyTaskProcessor.java | 18 +- .../service/trace/ConfigTraceService.java | 6 +- .../execute/AbstractDistroExecuteTask.java | 12 + .../task/verify/DistroVerifyExecuteTask.java | 12 + .../core/distributed/raft/JRaftServer.java | 10 + .../raft/utils/NacosMetersReporter.java | 222 +++++++++++++++++ .../nacos/core/monitor/MetricsMonitor.java | 33 --- .../nacos/core/remote/ConnectionManager.java | 6 +- .../MetricsClientConnectionEventListener.java | 8 +- .../filter/MetricsGrpcRequestCountFilter.java | 6 +- .../core/monitor/MetricsMonitorTest.java | 21 +- .../manager/ConfigMetricsConstant.java | 39 +-- .../metrics/manager/CoreMetricsConstant.java | 87 ++++++- .../nacos/metrics/manager/MetricsManager.java | 21 +- .../manager/NamingMetricsConstant.java | 57 ++--- .../consistency/persistent/raft/RaftCore.java | 18 +- .../persistent/raft/RaftStore.java | 12 +- .../naming/controllers/HealthController.java | 6 +- .../controllers/OperatorController.java | 42 ++-- .../controllers/UpgradeOpsController.java | 18 +- .../naming/core/v2/client/AbstractClient.java | 12 +- .../v2/upgrade/DefaultSelfUpgradeChecker.java | 12 +- .../healthcheck/HttpHealthCheckProcessor.java | 6 +- .../MysqlHealthCheckProcessor.java | 6 +- .../healthcheck/TcpSuperSenseProcessor.java | 6 +- .../processor/HttpHealthCheckProcessor.java | 6 +- .../processor/MysqlHealthCheckProcessor.java | 6 +- .../v2/processor/TcpHealthCheckProcessor.java | 6 +- .../nacos/naming/monitor/MetricsMonitor.java | 224 +++++------------- .../monitor/PerformanceLoggerThread.java | 90 +++---- .../nacos/naming/push/UdpPushService.java | 6 +- .../v2/hook/NacosMonitorPushResultHook.java | 32 +-- .../naming/monitor/MetricsMonitorTest.java | 24 +- .../push/v2/task/PushExecuteTaskTest.java | 30 +-- 44 files changed, 726 insertions(+), 693 deletions(-) delete mode 100644 config/src/main/java/com/alibaba/nacos/config/server/monitor/MetricsMonitor.java create mode 100644 core/src/main/java/com/alibaba/nacos/core/distributed/raft/utils/NacosMetersReporter.java diff --git a/config/src/main/java/com/alibaba/nacos/config/server/aspect/RequestLogAspect.java b/config/src/main/java/com/alibaba/nacos/config/server/aspect/RequestLogAspect.java index e169efbb6e2..996d2c4c647 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/aspect/RequestLogAspect.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/aspect/RequestLogAspect.java @@ -110,9 +110,9 @@ public Object interfacePublishSingleRpc(ProceedingJoinPoint pjp, ConfigPublishRe throws Throwable { final String md5 = request.getContent() == null ? null : MD5Utils.md5Hex(request.getContent(), Constants.ENCODE); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_PUBLISH) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.PUBLISH) .incrementAndGet(); return logClientRequestRpc("publish", pjp, request, meta, request.getDataId(), request.getGroup(), request.getTenant(), md5); @@ -125,9 +125,9 @@ public Object interfacePublishSingleRpc(ProceedingJoinPoint pjp, ConfigPublishRe public Object interfacePublishSingle(ProceedingJoinPoint pjp, HttpServletRequest request, HttpServletResponse response, String dataId, String group, String tenant, String content) throws Throwable { final String md5 = content == null ? null : MD5Utils.md5Hex(content, Constants.ENCODE); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_PUBLISH) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.PUBLISH) .incrementAndGet(); return logClientRequest("publish", pjp, request, response, dataId, group, tenant, md5); } @@ -159,9 +159,9 @@ public Object interfaceGetConfig(ProceedingJoinPoint pjp, HttpServletRequest req String dataId, String group, String tenant) throws Throwable { final String groupKey = GroupKey2.getKey(dataId, group, tenant); final String md5 = ConfigCacheService.getContentMd5(groupKey); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_GET_CONFIG) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.GET_CONFIG) .incrementAndGet(); return logClientRequest("get", pjp, request, response, dataId, group, tenant, md5); } @@ -174,9 +174,9 @@ public Object interfaceGetConfigRpc(ProceedingJoinPoint pjp, ConfigQueryRequest throws Throwable { final String groupKey = GroupKey2.getKey(request.getDataId(), request.getGroup(), request.getTenant()); final String md5 = ConfigCacheService.getContentMd5(groupKey); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_GET_CONFIG) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.GET_CONFIG) .incrementAndGet(); return logClientRequestRpc("get", pjp, request, meta, request.getDataId(), request.getGroup(), request.getTenant(), md5); @@ -224,9 +224,9 @@ private Object logClientRequestRpc(String requestType, ProceedingJoinPoint pjp, @Around(CLIENT_INTERFACE_LISTEN_CONFIG_RPC) public Object interfaceListenConfigRpc(ProceedingJoinPoint pjp, ConfigBatchListenRequest request, RequestMeta meta) throws Throwable { - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_GET_CONFIG) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.GET_CONFIG) .incrementAndGet(); final String requestIp = meta.getClientIp(); String appName = request.getHeader(RequestUtil.CLIENT_APPNAME_HEADER); diff --git a/config/src/main/java/com/alibaba/nacos/config/server/exception/GlobalExceptionHandler.java b/config/src/main/java/com/alibaba/nacos/config/server/exception/GlobalExceptionHandler.java index 549ceffd18e..9e4603022b2 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/exception/GlobalExceptionHandler.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/exception/GlobalExceptionHandler.java @@ -43,9 +43,9 @@ public class GlobalExceptionHandler { */ @ExceptionHandler(IllegalArgumentException.class) public ResponseEntity handleIllegalArgumentException(Exception ex) throws IOException { - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_ILLEGAL_ARGUMENT) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.ILLEGAL_ARGUMENT) .increment(); return ResponseEntity.status(400).body(ExceptionUtil.getAllExceptionMsg(ex)); } @@ -57,9 +57,9 @@ public ResponseEntity handleIllegalArgumentException(Exception ex) throw */ @ExceptionHandler(NacosException.class) public ResponseEntity handleNacosException(NacosException ex) throws IOException { - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_NACOS) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.NACOS) .increment(); return ResponseEntity.status(ex.getErrCode()).body(ExceptionUtil.getAllExceptionMsg(ex)); } @@ -71,9 +71,9 @@ public ResponseEntity handleNacosException(NacosException ex) throws IOE */ @ExceptionHandler(DataAccessException.class) public ResponseEntity handleDataAccessException(DataAccessException ex) throws DataAccessException { - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_DB) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.DB) .increment(); return ResponseEntity.status(500).body(ExceptionUtil.getAllExceptionMsg(ex)); } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/manager/TaskManager.java b/config/src/main/java/com/alibaba/nacos/config/server/manager/TaskManager.java index 40e2d550ed2..5535d92b4da 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/manager/TaskManager.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/manager/TaskManager.java @@ -100,18 +100,18 @@ public boolean await(long timeout, TimeUnit unit) throws InterruptedException { @Override public void addTask(Object key, AbstractDelayTask newTask) { super.addTask(key, newTask); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_DUMP_TASK) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.DUMP_TASK) .set(tasks.size()); } @Override public AbstractDelayTask removeTask(Object key) { AbstractDelayTask result = super.removeTask(key); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_DUMP_TASK) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.DUMP_TASK) .set(tasks.size()); return result; } @@ -119,9 +119,9 @@ public AbstractDelayTask removeTask(Object key) { @Override protected void processTasks() { super.processTasks(); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_DUMP_TASK) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.DUMP_TASK) .set(tasks.size()); if (tasks.isEmpty()) { this.lock.lock(); diff --git a/config/src/main/java/com/alibaba/nacos/config/server/monitor/MemoryMonitor.java b/config/src/main/java/com/alibaba/nacos/config/server/monitor/MemoryMonitor.java index 96b737ba429..ab314e5ec9a 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/monitor/MemoryMonitor.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/monitor/MemoryMonitor.java @@ -55,14 +55,14 @@ public MemoryMonitor(AsyncNotifyService notifySingleService) { */ @Scheduled(cron = "0 0 0 * * ?") public void clear() { - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_GET_CONFIG) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.GET_CONFIG) .set(0); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_PUBLISH) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.PUBLISH) .set(0); } } \ No newline at end of file diff --git a/config/src/main/java/com/alibaba/nacos/config/server/monitor/MetricsMonitor.java b/config/src/main/java/com/alibaba/nacos/config/server/monitor/MetricsMonitor.java deleted file mode 100644 index 1526c5e8432..00000000000 --- a/config/src/main/java/com/alibaba/nacos/config/server/monitor/MetricsMonitor.java +++ /dev/null @@ -1,149 +0,0 @@ -/* - * Copyright 1999-2018 Alibaba Group Holding Ltd. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package com.alibaba.nacos.config.server.monitor; - -import io.micrometer.core.instrument.Counter; -import io.micrometer.core.instrument.ImmutableTag; -import io.micrometer.core.instrument.Metrics; -import io.micrometer.core.instrument.Tag; -import io.micrometer.core.instrument.Timer; - -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; - -/** - * Metrics Monitor. - * - * @author Nacos - */ -public class MetricsMonitor { - - private static AtomicInteger getConfig = new AtomicInteger(); - - private static AtomicInteger publish = new AtomicInteger(); - - /** - * task for notify config change to sub client of http long polling.. - */ - private static AtomicInteger longPolling = new AtomicInteger(); - - private static AtomicInteger configCount = new AtomicInteger(); - - /** - * task for ntify config change to cluster server. - */ - private static AtomicInteger notifyTask = new AtomicInteger(); - - /** - * task for notify config change to sub client of long connection. - */ - private static AtomicInteger notifyClientTask = new AtomicInteger(); - - private static AtomicInteger dumpTask = new AtomicInteger(); - - static { - List tags = new ArrayList(); - tags.add(new ImmutableTag("module", "config")); - tags.add(new ImmutableTag("name", "getConfig")); - Metrics.gauge("nacos_monitor", tags, getConfig); - - tags = new ArrayList(); - tags.add(new ImmutableTag("module", "config")); - tags.add(new ImmutableTag("name", "publish")); - Metrics.gauge("nacos_monitor", tags, publish); - - tags = new ArrayList(); - tags.add(new ImmutableTag("module", "config")); - tags.add(new ImmutableTag("name", "longPolling")); - Metrics.gauge("nacos_monitor", tags, longPolling); - - tags = new ArrayList(); - tags.add(new ImmutableTag("module", "config")); - tags.add(new ImmutableTag("name", "configCount")); - Metrics.gauge("nacos_monitor", tags, configCount); - - tags = new ArrayList(); - tags.add(new ImmutableTag("module", "config")); - tags.add(new ImmutableTag("name", "notifyTask")); - Metrics.gauge("nacos_monitor", tags, notifyTask); - - tags = new ArrayList(); - tags.add(new ImmutableTag("module", "config")); - tags.add(new ImmutableTag("name", "notifyClientTask")); - Metrics.gauge("nacos_monitor", tags, notifyClientTask); - - tags = new ArrayList(); - tags.add(new ImmutableTag("module", "config")); - tags.add(new ImmutableTag("name", "dumpTask")); - - Metrics.gauge("nacos_monitor", tags, dumpTask); - } - - public static AtomicInteger getConfigMonitor() { - return getConfig; - } - - public static AtomicInteger getPublishMonitor() { - return publish; - } - - public static AtomicInteger getLongPollingMonitor() { - return longPolling; - } - - public static AtomicInteger getConfigCountMonitor() { - return configCount; - } - - public static AtomicInteger getNotifyTaskMonitor() { - return notifyTask; - } - - public static AtomicInteger getNotifyClientTaskMonitor() { - return notifyClientTask; - } - - public static AtomicInteger getDumpTaskMonitor() { - return dumpTask; - } - - public static Timer getNotifyRtTimer() { - return Metrics.timer("nacos_timer", "module", "config", "name", "notifyRt"); - } - - public static Counter getIllegalArgumentException() { - return Metrics.counter("nacos_exception", "module", "config", "name", "illegalArgument"); - } - - public static Counter getNacosException() { - return Metrics.counter("nacos_exception", "module", "config", "name", "nacos"); - } - - public static Counter getDbException() { - return Metrics.counter("nacos_exception", "module", "config", "name", "db"); - } - - public static Counter getConfigNotifyException() { - return Metrics.counter("nacos_exception", "module", "config", "name", "configNotify"); - } - - public static Counter getUnhealthException() { - return Metrics.counter("nacos_exception", "module", "config", "name", "unhealth"); - } - -} diff --git a/config/src/main/java/com/alibaba/nacos/config/server/monitor/PrintMemoryTask.java b/config/src/main/java/com/alibaba/nacos/config/server/monitor/PrintMemoryTask.java index a81a0cf8963..74f66636a59 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/monitor/PrintMemoryTask.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/monitor/PrintMemoryTask.java @@ -37,8 +37,8 @@ public void run() { long subCount = ClientTrackService.subscriberCount(); MEMORY_LOG.info("groupCount = {}, subscriberClientCount = {}, subscriberCount = {}", groupCount, subClientCount, subCount); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_CONFIG_COUNT).set(groupCount); + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.CONFIG_COUNT).set(groupCount); } } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/monitor/ThreadTaskQueueMonitorTask.java b/config/src/main/java/com/alibaba/nacos/config/server/monitor/ThreadTaskQueueMonitorTask.java index f43fc69d279..3c05f303a8f 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/monitor/ThreadTaskQueueMonitorTask.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/monitor/ThreadTaskQueueMonitorTask.java @@ -42,13 +42,13 @@ public void run() { int notifierClientSize = ConfigExecutor.asyncCofigChangeClientNotifyQueueSize(); MEMORY_LOG.info("toNotifyTaskSize = {}", size); MEMORY_LOG.info("toClientNotifyTaskSize = {}", notifierClientSize); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_NOTIFY_TASK) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.NOTIFY_TASK) .set(size); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_NOTIFY_CLIENT_TASK) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.NOTIFY_CLIENT_TASK) .set(notifierClientSize); } } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/LongPollingService.java b/config/src/main/java/com/alibaba/nacos/config/server/service/LongPollingService.java index dbb34865de6..8653fe5fa69 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/service/LongPollingService.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/service/LongPollingService.java @@ -385,9 +385,9 @@ class StatTask implements Runnable { @Override public void run() { MEMORY_LOG.info("[long-pulling] client count " + allSubs.size()); - MetricsManager.gauge(ConfigMetricsConstant.N_NACOS_MONITOR, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_LONG_POLLING) + MetricsManager.gauge(ConfigMetricsConstant.NACOS_MONITOR, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.LONG_POLLING) .set(allSubs.size()); } } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/ExternalDataSourceServiceImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/ExternalDataSourceServiceImpl.java index 9a7f0a846db..740d15bfd9e 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/ExternalDataSourceServiceImpl.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/service/datasource/ExternalDataSourceServiceImpl.java @@ -226,9 +226,9 @@ public void run() { if (!isFound) { FATAL_LOG.error("[master-db] master db not found."); - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_DB) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.DB) .increment(); } } @@ -259,9 +259,9 @@ public void run() { } isHealthList.set(i, Boolean.FALSE); - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_DB) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.DB) .increment(); } } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/notify/AsyncNotifyService.java b/config/src/main/java/com/alibaba/nacos/config/server/service/notify/AsyncNotifyService.java index 22fc09c9f9f..993776dd0c8 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/service/notify/AsyncNotifyService.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/service/notify/AsyncNotifyService.java @@ -235,9 +235,9 @@ public void run() { configClusterRpcClientProxy .syncConfigChange(member, syncRequest, new AsyncRpcNotifyCallBack(task)); } catch (Exception e) { - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_CONFIG_NOTIFY) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.CONFIG_NOTIFY) .increment(); asyncTaskExecute(task); } @@ -316,9 +316,9 @@ public void onReceive(RestResult result) { .error("[notify-retry] target:{} dataId:{} group:{} ts:{}", task.target, task.getDataId(), task.getGroup(), task.getLastModified()); - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_CONFIG_NOTIFY) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.CONFIG_NOTIFY) .increment(); } } @@ -338,9 +338,9 @@ public void onError(Throwable ex) { LogUtil.NOTIFY_LOG.error("[notify-retry] target:{} dataId:{} group:{} ts:{}", task.target, task.getDataId(), task.getGroup(), task.getLastModified()); - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_CONFIG_NOTIFY) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.CONFIG_NOTIFY) .increment(); } @@ -355,9 +355,9 @@ public void onCancel() { LogUtil.NOTIFY_LOG.error("[notify-retry] target:{} dataId:{} group:{} ts:{}", task.target, task.getDataId(), task.getGroup(), task.getLastModified()); - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_CONFIG_NOTIFY) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.CONFIG_NOTIFY) .increment(); } } @@ -401,9 +401,9 @@ public void onResponse(ConfigChangeClusterSyncResponse response) { LogUtil.NOTIFY_LOG.error("[notify-retry] target:{} dataId:{} group:{} ts:{}", task.member.getAddress(), task.getDataId(), task.getGroup(), task.getLastModified()); - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_CONFIG_NOTIFY) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.CONFIG_NOTIFY) .increment(); } } @@ -423,9 +423,9 @@ public void onException(Throwable ex) { LogUtil.NOTIFY_LOG.error("[notify-retry] target:{} dataId:{} group:{} ts:{}", task.member.getAddress(), task.getDataId(), task.getGroup(), task.getLastModified()); - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_CONFIG_NOTIFY) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.CONFIG_NOTIFY) .increment(); } } diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/notify/NotifyTaskProcessor.java b/config/src/main/java/com/alibaba/nacos/config/server/service/notify/NotifyTaskProcessor.java index 449beea2270..1f9fad264c0 100755 --- a/config/src/main/java/com/alibaba/nacos/config/server/service/notify/NotifyTaskProcessor.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/service/notify/NotifyTaskProcessor.java @@ -90,15 +90,15 @@ boolean notifyToDump(String dataId, String group, String tenant, long lastModifi ConfigTraceService.logNotifyEvent(dataId, group, tenant, null, lastModified, InetUtils.getSelfIP(), ConfigTraceService.NOTIFY_EVENT_OK, delayed, serverIp); - MetricsManager.timer(ConfigMetricsConstant.N_NACOS_TIMER, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_NOTIFY_RT) + MetricsManager.timer(ConfigMetricsConstant.NACOS_TIMER, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.NOTIFY_RT) .record(delayed, TimeUnit.MILLISECONDS); return true; } else { - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_CONFIG_NOTIFY) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.CONFIG_NOTIFY) .increment(); LOGGER.error("[notify-error] {}, {}, to {}, result {}", dataId, group, serverIp, result.getCode()); ConfigTraceService.logNotifyEvent(dataId, group, tenant, null, lastModified, InetUtils.getSelfIP(), @@ -106,9 +106,9 @@ boolean notifyToDump(String dataId, String group, String tenant, long lastModifi return false; } } catch (Exception e) { - MetricsManager.counter(ConfigMetricsConstant.N_NACOS_EXCEPTION, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_CONFIG_NOTIFY) + MetricsManager.counter(ConfigMetricsConstant.NACOS_EXCEPTION, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.CONFIG_NOTIFY) .increment(); String message = "[notify-exception] " + dataId + ", " + group + ", to " + serverIp + ", " + e.toString(); LOGGER.error(message); diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/trace/ConfigTraceService.java b/config/src/main/java/com/alibaba/nacos/config/server/service/trace/ConfigTraceService.java index 77f25ccd8aa..75a72a42050 100644 --- a/config/src/main/java/com/alibaba/nacos/config/server/service/trace/ConfigTraceService.java +++ b/config/src/main/java/com/alibaba/nacos/config/server/service/trace/ConfigTraceService.java @@ -110,9 +110,9 @@ public static void logNotifyEvent(String dataId, String group, String tenant, St if (!LogUtil.TRACE_LOG.isInfoEnabled()) { return; } - MetricsManager.timer(ConfigMetricsConstant.N_NACOS_TIMER, - ConfigMetricsConstant.TK_MODULE, ConfigMetricsConstant.TV_CONFIG, - ConfigMetricsConstant.TK_NAME, ConfigMetricsConstant.TV_NOTIFY_RT) + MetricsManager.timer(ConfigMetricsConstant.NACOS_TIMER, + ConfigMetricsConstant.MODULE, ConfigMetricsConstant.CONFIG, + ConfigMetricsConstant.NAME, ConfigMetricsConstant.NOTIFY_RT) .record(delayed, TimeUnit.MILLISECONDS); // Convenient tlog segmentation if (StringUtils.isBlank(tenant)) { diff --git a/core/src/main/java/com/alibaba/nacos/core/distributed/distro/task/execute/AbstractDistroExecuteTask.java b/core/src/main/java/com/alibaba/nacos/core/distributed/distro/task/execute/AbstractDistroExecuteTask.java index 3de661f274c..56a8893e52e 100644 --- a/core/src/main/java/com/alibaba/nacos/core/distributed/distro/task/execute/AbstractDistroExecuteTask.java +++ b/core/src/main/java/com/alibaba/nacos/core/distributed/distro/task/execute/AbstractDistroExecuteTask.java @@ -26,6 +26,8 @@ import com.alibaba.nacos.core.distributed.distro.monitor.DistroRecord; import com.alibaba.nacos.core.distributed.distro.monitor.DistroRecordsHolder; import com.alibaba.nacos.core.utils.Loggers; +import com.alibaba.nacos.metrics.manager.CoreMetricsConstant; +import com.alibaba.nacos.metrics.manager.MetricsManager; /** * Abstract distro execute task. @@ -120,6 +122,11 @@ private class DistroExecuteCallback implements DistroCallback { public void onSuccess() { DistroRecord distroRecord = DistroRecordsHolder.getInstance().getRecord(getDistroKey().getResourceType()); distroRecord.syncSuccess(); + MetricsManager.counter(CoreMetricsConstant.DISTRO_SYNC, + CoreMetricsConstant.RESOURCE_TYPE, distroKey.getResourceType(), + CoreMetricsConstant.TARGET_SERVER, distroKey.getTargetServer(), + CoreMetricsConstant.SUCCESS, CoreMetricsConstant.TRUE) + .increment(); Loggers.DISTRO.info("[DISTRO-END] {} result: true", getDistroKey().toString()); } @@ -127,6 +134,11 @@ public void onSuccess() { public void onFailed(Throwable throwable) { DistroRecord distroRecord = DistroRecordsHolder.getInstance().getRecord(getDistroKey().getResourceType()); distroRecord.syncFail(); + MetricsManager.counter(CoreMetricsConstant.DISTRO_SYNC, + CoreMetricsConstant.RESOURCE_TYPE, distroKey.getResourceType(), + CoreMetricsConstant.TARGET_SERVER, distroKey.getTargetServer(), + CoreMetricsConstant.SUCCESS, CoreMetricsConstant.FALSE) + .increment(); if (null == throwable) { Loggers.DISTRO.info("[DISTRO-END] {} result: false", getDistroKey().toString()); } else { diff --git a/core/src/main/java/com/alibaba/nacos/core/distributed/distro/task/verify/DistroVerifyExecuteTask.java b/core/src/main/java/com/alibaba/nacos/core/distributed/distro/task/verify/DistroVerifyExecuteTask.java index 6ca0cc79b58..c96f8cfa486 100644 --- a/core/src/main/java/com/alibaba/nacos/core/distributed/distro/task/verify/DistroVerifyExecuteTask.java +++ b/core/src/main/java/com/alibaba/nacos/core/distributed/distro/task/verify/DistroVerifyExecuteTask.java @@ -23,6 +23,8 @@ import com.alibaba.nacos.core.distributed.distro.monitor.DistroRecord; import com.alibaba.nacos.core.distributed.distro.monitor.DistroRecordsHolder; import com.alibaba.nacos.core.utils.Loggers; +import com.alibaba.nacos.metrics.manager.CoreMetricsConstant; +import com.alibaba.nacos.metrics.manager.MetricsManager; import java.util.List; @@ -77,6 +79,11 @@ private class DistroVerifyCallback implements DistroCallback { @Override public void onSuccess() { + MetricsManager.counter(CoreMetricsConstant.DISTRO_VERIFY, + CoreMetricsConstant.RESOURCE_TYPE, resourceType, + CoreMetricsConstant.TARGET_SERVER, targetServer, + CoreMetricsConstant.SUCCESS, CoreMetricsConstant.TRUE) + .increment(); if (Loggers.DISTRO.isDebugEnabled()) { Loggers.DISTRO.debug("[DISTRO] verify data for type {} to {} success", resourceType, targetServer); } @@ -86,6 +93,11 @@ public void onSuccess() { public void onFailed(Throwable throwable) { DistroRecord distroRecord = DistroRecordsHolder.getInstance().getRecord(resourceType); distroRecord.verifyFail(); + MetricsManager.counter(CoreMetricsConstant.DISTRO_VERIFY, + CoreMetricsConstant.RESOURCE_TYPE, resourceType, + CoreMetricsConstant.TARGET_SERVER, targetServer, + CoreMetricsConstant.SUCCESS, CoreMetricsConstant.FALSE) + .increment(); if (Loggers.DISTRO.isDebugEnabled()) { Loggers.DISTRO .debug("[DISTRO-FAILED] verify data for type {} to {} failed.", resourceType, targetServer, diff --git a/core/src/main/java/com/alibaba/nacos/core/distributed/raft/JRaftServer.java b/core/src/main/java/com/alibaba/nacos/core/distributed/raft/JRaftServer.java index ffec3d1b744..c24defa600a 100644 --- a/core/src/main/java/com/alibaba/nacos/core/distributed/raft/JRaftServer.java +++ b/core/src/main/java/com/alibaba/nacos/core/distributed/raft/JRaftServer.java @@ -38,6 +38,7 @@ import com.alibaba.nacos.core.distributed.raft.utils.FailoverClosureImpl; import com.alibaba.nacos.core.distributed.raft.utils.JRaftConstants; import com.alibaba.nacos.core.distributed.raft.utils.JRaftUtils; +import com.alibaba.nacos.core.distributed.raft.utils.NacosMetersReporter; import com.alibaba.nacos.core.distributed.raft.utils.RaftExecutor; import com.alibaba.nacos.core.distributed.raft.utils.RaftOptionsBuilder; import com.alibaba.nacos.core.monitor.MetricsMonitor; @@ -266,6 +267,15 @@ synchronized void createMultiRaftGroup(Collection processor // Because BaseRpcServer has been started before, it is not allowed to start again here Node node = raftGroupService.start(false); + + // open metrics + NacosMetersReporter reporter = NacosMetersReporter.forRegistry(node.getNodeMetrics().getMetricRegistry()) + .convertRatesTo(TimeUnit.SECONDS) + .convertDurationsTo(TimeUnit.MILLISECONDS) + .setGroupName(groupName) + .build(); + reporter.start(15, TimeUnit.SECONDS); + machine.setNode(node); RouteTable.getInstance().updateConfiguration(groupName, configuration); diff --git a/core/src/main/java/com/alibaba/nacos/core/distributed/raft/utils/NacosMetersReporter.java b/core/src/main/java/com/alibaba/nacos/core/distributed/raft/utils/NacosMetersReporter.java new file mode 100644 index 00000000000..f6d2c13f63f --- /dev/null +++ b/core/src/main/java/com/alibaba/nacos/core/distributed/raft/utils/NacosMetersReporter.java @@ -0,0 +1,222 @@ +/* + * Copyright 1999-2018 Alibaba Group Holding Ltd. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package com.alibaba.nacos.core.distributed.raft.utils; + +import com.alibaba.nacos.metrics.manager.CoreMetricsConstant; +import com.alibaba.nacos.metrics.manager.MetricsManager; +import com.codahale.metrics.ConsoleReporter; +import com.codahale.metrics.Counter; +import com.codahale.metrics.Gauge; +import com.codahale.metrics.Histogram; +import com.codahale.metrics.Meter; +import com.codahale.metrics.MetricAttribute; +import com.codahale.metrics.MetricFilter; +import com.codahale.metrics.MetricRegistry; +import com.codahale.metrics.ScheduledReporter; +import com.codahale.metrics.Timer; + +import java.util.Collections; +import java.util.Map; +import java.util.Set; +import java.util.SortedMap; +import java.util.concurrent.ScheduledExecutorService; +import java.util.concurrent.TimeUnit; + +/** + * A reporter which outputs measurements to a Micrometer Registry. + * + * @author holdonbei + */ +public class NacosMetersReporter extends ScheduledReporter { + + private String groupName; + + private static final String PREFIX = "jraft_"; + + /** + * Returns a new {@link Builder} for {@link NacosMetersReporter}. + * + * @param registry the registry to report + * @return a {@link Builder} instance for a {@link ConsoleReporter} + */ + public static Builder forRegistry(MetricRegistry registry) { + return new Builder(registry); + } + + /** + * A builder for {@link NacosMetersReporter} instances. + */ + public static class Builder { + + private final MetricRegistry registry; + + private String groupName; + + private TimeUnit rateUnit; + + private TimeUnit durationUnit; + + private MetricFilter filter; + + private ScheduledExecutorService executor; + + private boolean shutdownExecutorOnStop; + + private Set disabledMetricAttributes; + + private Builder(MetricRegistry registry) { + this.registry = registry; + this.rateUnit = TimeUnit.SECONDS; + this.durationUnit = TimeUnit.MILLISECONDS; + this.filter = MetricFilter.ALL; + this.executor = null; + this.shutdownExecutorOnStop = true; + disabledMetricAttributes = Collections.emptySet(); + } + + /** + * Convert rates to the given time unit. + * + * @param rateUnit a unit of time + * @return {@code this} + */ + public Builder convertRatesTo(TimeUnit rateUnit) { + this.rateUnit = rateUnit; + return this; + } + + /** + * Convert durations to the given time unit. + * + * @param durationUnit a unit of time + * @return {@code this} + */ + public Builder convertDurationsTo(TimeUnit durationUnit) { + this.durationUnit = durationUnit; + return this; + } + + /** + * Only report metrics which match the given filter. + * + * @param filter a {@link MetricFilter} + * @return {@code this} + */ + public Builder filter(MetricFilter filter) { + this.filter = filter; + return this; + } + + /** + * Don't report the passed metric attributes for all metrics (e.g. "p999", "stddev" or "m15"). + * See {@link MetricAttribute}. + * + * @param disabledMetricAttributes a {@link MetricFilter} + * @return {@code this} + */ + public Builder disabledMetricAttributes(Set disabledMetricAttributes) { + this.disabledMetricAttributes = disabledMetricAttributes; + return this; + } + + /** + * groupName for this reporter. + * + * @param groupName groupName + * @return {@code this} + */ + public Builder setGroupName(String groupName) { + this.groupName = groupName; + return this; + } + + /** + * Builds a {@link ConsoleReporter} with the given properties. + * + * @return a {@link ConsoleReporter} + */ + public NacosMetersReporter build() { + return new NacosMetersReporter(registry, + groupName, + rateUnit, + durationUnit, + filter, + executor, + shutdownExecutorOnStop, + disabledMetricAttributes); + } + } + + private NacosMetersReporter(MetricRegistry registry, + String groupName, + TimeUnit rateUnit, + TimeUnit durationUnit, + MetricFilter filter, + ScheduledExecutorService executor, + boolean shutdownExecutorOnStop, + Set disabledMetricAttributes) { + super(registry, "nacos-meters--reporter", filter, rateUnit, durationUnit, executor, shutdownExecutorOnStop, disabledMetricAttributes); + this.groupName = groupName; + } + + @Override + public void report(SortedMap gauges, SortedMap counters, + SortedMap histograms, SortedMap meters, SortedMap timers) { + + for (Map.Entry entry : gauges.entrySet()) { + reportGauge(entry.getKey(), entry.getValue()); + } + + for (Map.Entry entry : histograms.entrySet()) { + reportHistogram(entry.getKey(), entry.getValue()); + } + + for (Map.Entry entry : timers.entrySet()) { + reportTimer(entry.getKey(), entry.getValue()); + } + } + + private void reportTimer(String key, Timer value) { + String metricsKey = key.replace("-", "_"); + if (metricsKey.equals(CoreMetricsConstant.PRE_VOTE) + || metricsKey.equals(CoreMetricsConstant.REQUEST_VOTE)) { + MetricsManager.gauge(PREFIX + metricsKey.concat("_count"), + CoreMetricsConstant.GROUP_NAME, groupName) + .getAndAdd(value.getCount()); + } + } + + private void reportHistogram(String key, Histogram value) { + String metricsKey = key.replace("-", "_"); + if (metricsKey.equals(CoreMetricsConstant.APPEND_LOGS_COUNT) + || metricsKey.equals(CoreMetricsConstant.REPLICATE_ENTRIES_COUNT)) { + MetricsManager.gauge(PREFIX + metricsKey, + CoreMetricsConstant.GROUP_NAME, groupName) + .set(value.getCount()); + } + } + + private void reportGauge(String key, Gauge value) { + String metricsKey = key.replace("-", "_"); + if (metricsKey.equals(CoreMetricsConstant.NEXT_INDEX) + || metricsKey.equals(CoreMetricsConstant.LOG_LAGS)) { + MetricsManager.gauge(PREFIX + metricsKey, + CoreMetricsConstant.GROUP_NAME, groupName) + .set(Long.parseLong(value.getValue().toString())); + } + } +} diff --git a/core/src/main/java/com/alibaba/nacos/core/monitor/MetricsMonitor.java b/core/src/main/java/com/alibaba/nacos/core/monitor/MetricsMonitor.java index 47e3fbabf50..27642649225 100644 --- a/core/src/main/java/com/alibaba/nacos/core/monitor/MetricsMonitor.java +++ b/core/src/main/java/com/alibaba/nacos/core/monitor/MetricsMonitor.java @@ -16,17 +16,9 @@ package com.alibaba.nacos.core.monitor; -import io.micrometer.core.instrument.Counter; import io.micrometer.core.instrument.DistributionSummary; -import io.micrometer.core.instrument.ImmutableTag; -import io.micrometer.core.instrument.Metrics; -import io.micrometer.core.instrument.Tag; import io.micrometer.core.instrument.Timer; -import java.util.ArrayList; -import java.util.List; -import java.util.concurrent.atomic.AtomicInteger; - /** * The Metrics center. * @@ -42,34 +34,12 @@ public final class MetricsMonitor { private static final Timer RAFT_APPLY_READ_TIMER; - private static AtomicInteger longConnection = new AtomicInteger(); - - private static AtomicInteger clientTotalConnection = new AtomicInteger(); - static { RAFT_READ_INDEX_FAILED = NacosMeterRegistry.summary("protocol", "raft_read_index_failed"); RAFT_FROM_LEADER = NacosMeterRegistry.summary("protocol", "raft_read_from_leader"); RAFT_APPLY_LOG_TIMER = NacosMeterRegistry.timer("protocol", "raft_apply_log_timer"); RAFT_APPLY_READ_TIMER = NacosMeterRegistry.timer("protocol", "raft_apply_read_timer"); - - List tags = new ArrayList(); - tags.add(new ImmutableTag("module", "config")); - tags.add(new ImmutableTag("name", "longConnection")); - Metrics.gauge("nacos_monitor", tags, longConnection); - - // new metrics - tags = new ArrayList(); - tags.add(new ImmutableTag("module", "core")); - Metrics.gauge("nacos_client_total_connections", tags, clientTotalConnection); - } - - public static AtomicInteger getClientTotalConnection() { - return clientTotalConnection; - } - - public static AtomicInteger getLongConnectionMonitor() { - return longConnection; } public static void raftReadIndexFailed() { @@ -96,7 +66,4 @@ public static DistributionSummary getRaftFromLeader() { return RAFT_FROM_LEADER; } - public static Counter getGrpcRequestCount(String requestName) { - return Metrics.counter("nacos_grpc_request_count", "module", "core", "name", requestName); - } } diff --git a/core/src/main/java/com/alibaba/nacos/core/remote/ConnectionManager.java b/core/src/main/java/com/alibaba/nacos/core/remote/ConnectionManager.java index bc2c9720126..1e698644341 100644 --- a/core/src/main/java/com/alibaba/nacos/core/remote/ConnectionManager.java +++ b/core/src/main/java/com/alibaba/nacos/core/remote/ConnectionManager.java @@ -297,9 +297,9 @@ public void run() { int totalCount = connections.size(); Loggers.REMOTE_DIGEST.info("Connection check task start"); - MetricsManager.gauge(CoreMetricsConstant.N_NACOS_MONITOR, - CoreMetricsConstant.TK_MODULE, CoreMetricsConstant.TV_CONFIG, - CoreMetricsConstant.TK_NAME, CoreMetricsConstant.TV_LONG_CONNECTION) + MetricsManager.gauge(CoreMetricsConstant.NACOS_MONITOR, + CoreMetricsConstant.MODULE, CoreMetricsConstant.CONFIG, + CoreMetricsConstant.NAME, CoreMetricsConstant.LONG_CONNECTION) .set(totalCount); Set> entries = connections.entrySet(); int currentSdkClientCount = currentSdkClientCount(); diff --git a/core/src/main/java/com/alibaba/nacos/core/remote/MetricsClientConnectionEventListener.java b/core/src/main/java/com/alibaba/nacos/core/remote/MetricsClientConnectionEventListener.java index 510bda070bb..cb447194804 100644 --- a/core/src/main/java/com/alibaba/nacos/core/remote/MetricsClientConnectionEventListener.java +++ b/core/src/main/java/com/alibaba/nacos/core/remote/MetricsClientConnectionEventListener.java @@ -30,15 +30,15 @@ public class MetricsClientConnectionEventListener extends ClientConnectionEventL @Override public void clientConnected(Connection connect) { - MetricsManager.gauge(CoreMetricsConstant.N_NACOS_CLIENT_TOTAL_CONNECTIONS, - CoreMetricsConstant.TK_MODULE, CoreMetricsConstant.TV_CORE) + MetricsManager.gauge(CoreMetricsConstant.NACOS_CLIENT_TOTAL_CONNECTIONS, + CoreMetricsConstant.MODULE, CoreMetricsConstant.CORE) .incrementAndGet(); } @Override public void clientDisConnected(Connection connect) { - MetricsManager.gauge(CoreMetricsConstant.N_NACOS_CLIENT_TOTAL_CONNECTIONS, - CoreMetricsConstant.TK_MODULE, CoreMetricsConstant.TV_CORE) + MetricsManager.gauge(CoreMetricsConstant.NACOS_CLIENT_TOTAL_CONNECTIONS, + CoreMetricsConstant.MODULE, CoreMetricsConstant.CORE) .decrementAndGet(); } } \ No newline at end of file diff --git a/core/src/main/java/com/alibaba/nacos/core/remote/grpc/filter/MetricsGrpcRequestCountFilter.java b/core/src/main/java/com/alibaba/nacos/core/remote/grpc/filter/MetricsGrpcRequestCountFilter.java index 445f61c7d24..4a885fda75a 100644 --- a/core/src/main/java/com/alibaba/nacos/core/remote/grpc/filter/MetricsGrpcRequestCountFilter.java +++ b/core/src/main/java/com/alibaba/nacos/core/remote/grpc/filter/MetricsGrpcRequestCountFilter.java @@ -38,9 +38,9 @@ public class MetricsGrpcRequestCountFilter extends AbstractRequestFilter { */ @Override protected Response filter(Request request, RequestMeta meta, Class handlerClazz) throws NacosException { - MetricsManager.counter(CoreMetricsConstant.N_NACOS_GRPC_REQUEST_COUNT, - CoreMetricsConstant.TK_MODULE, CoreMetricsConstant.TV_CORE, - CoreMetricsConstant.TK_NAME, request.getClass().getSimpleName()) + MetricsManager.counter(CoreMetricsConstant.NACOS_GRPC_REQUEST_COUNT, + CoreMetricsConstant.MODULE, CoreMetricsConstant.CORE, + CoreMetricsConstant.NAME, request.getClass().getSimpleName()) .increment(); return null; } diff --git a/core/src/test/java/com/alibaba/nacos/core/monitor/MetricsMonitorTest.java b/core/src/test/java/com/alibaba/nacos/core/monitor/MetricsMonitorTest.java index 0603fdafc61..1cfaa3a4455 100644 --- a/core/src/test/java/com/alibaba/nacos/core/monitor/MetricsMonitorTest.java +++ b/core/src/test/java/com/alibaba/nacos/core/monitor/MetricsMonitorTest.java @@ -25,7 +25,6 @@ import org.junit.Test; import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; /** * {@link MetricsMonitor} and {@link NacosMeterRegistry} unit tests. @@ -42,8 +41,10 @@ public void initMeterRegistry() { @Test public void testGetLongConnectionMonitor() { - AtomicInteger atomicInteger = MetricsMonitor.getLongConnectionMonitor(); - Assert.assertEquals(atomicInteger.get(), 0); + Assert.assertEquals( + MetricsManager.gauge(CoreMetricsConstant.NACOS_MONITOR, + CoreMetricsConstant.MODULE, CoreMetricsConstant.CONFIG, + CoreMetricsConstant.NAME, CoreMetricsConstant.LONG_CONNECTION).get(), 0); } @Test @@ -81,20 +82,20 @@ public void testRaftApplyReadTimer() { @Test public void testClientTotalConnection() { - MetricsManager.gauge(CoreMetricsConstant.N_NACOS_CLIENT_TOTAL_CONNECTIONS, - CoreMetricsConstant.TK_MODULE, CoreMetricsConstant.TV_CORE) + MetricsManager.gauge(CoreMetricsConstant.NACOS_CLIENT_TOTAL_CONNECTIONS, + CoreMetricsConstant.MODULE, CoreMetricsConstant.CORE) .incrementAndGet(); Assert.assertEquals( - MetricsManager.gauge(CoreMetricsConstant.N_NACOS_CLIENT_TOTAL_CONNECTIONS, - CoreMetricsConstant.TK_MODULE, CoreMetricsConstant.TV_CORE) + MetricsManager.gauge(CoreMetricsConstant.NACOS_CLIENT_TOTAL_CONNECTIONS, + CoreMetricsConstant.MODULE, CoreMetricsConstant.CORE) .get(), 1); } @Test public void testRequestGrpcCount() { Assert.assertEquals(0D, - MetricsManager.counter(CoreMetricsConstant.N_NACOS_GRPC_REQUEST_COUNT, - CoreMetricsConstant.TK_MODULE, CoreMetricsConstant.TV_CORE, - CoreMetricsConstant.TK_NAME, "nacos_grpc_request").count(), 0.01); + MetricsManager.counter(CoreMetricsConstant.NACOS_GRPC_REQUEST_COUNT, + CoreMetricsConstant.MODULE, CoreMetricsConstant.CORE, + CoreMetricsConstant.NAME, "nacos_grpc_request").count(), 0.01); } } diff --git a/metrics/src/main/java/com/alibaba/nacos/metrics/manager/ConfigMetricsConstant.java b/metrics/src/main/java/com/alibaba/nacos/metrics/manager/ConfigMetricsConstant.java index 05d0bbfbf27..4a0f5d4774b 100644 --- a/metrics/src/main/java/com/alibaba/nacos/metrics/manager/ConfigMetricsConstant.java +++ b/metrics/src/main/java/com/alibaba/nacos/metrics/manager/ConfigMetricsConstant.java @@ -18,6 +18,7 @@ /** * Config Metrics Constant. + * * @author holdonbei */ public class ConfigMetricsConstant { @@ -25,96 +26,96 @@ public class ConfigMetricsConstant { /** * metrics name. */ - public static final String N_NACOS_MONITOR = "nacos_monitor"; + public static final String NACOS_MONITOR = "nacos_monitor"; /** * metrics name. */ - public static final String N_NACOS_TIMER = "nacos_timer"; + public static final String NACOS_TIMER = "nacos_timer"; /** * metrics name. */ - public static final String N_NACOS_EXCEPTION = "nacos_exception"; + public static final String NACOS_EXCEPTION = "nacos_exception"; /** * metrics tag key. */ - public static final String TK_MODULE = "module"; + public static final String MODULE = "module"; /** * metrics tag key. */ - public static final String TK_NAME = "name"; + public static final String NAME = "name"; /** * metrics tag value. */ - public static final String TV_CONFIG = "config"; + public static final String CONFIG = "config"; /** * metrics tag value. */ - public static final String TV_GET_CONFIG = "getConfig"; + public static final String GET_CONFIG = "getConfig"; /** * metrics tag value. */ - public static final String TV_PUBLISH = "publish"; + public static final String PUBLISH = "publish"; /** * metrics tag value. */ - public static final String TV_LONG_POLLING = "longPolling"; + public static final String LONG_POLLING = "longPolling"; /** * metrics tag value. */ - public static final String TV_CONFIG_COUNT = "configCount"; + public static final String CONFIG_COUNT = "configCount"; /** * metrics tag value. */ - public static final String TV_NOTIFY_TASK = "notifyTask"; + public static final String NOTIFY_TASK = "notifyTask"; /** * metrics tag value. */ - public static final String TV_NOTIFY_CLIENT_TASK = "notifyClientTask"; + public static final String NOTIFY_CLIENT_TASK = "notifyClientTask"; /** * metrics tag value. */ - public static final String TV_DUMP_TASK = "dumpTask"; + public static final String DUMP_TASK = "dumpTask"; /** * metrics tag value. */ - public static final String TV_NOTIFY_RT = "notifyRt"; + public static final String NOTIFY_RT = "notifyRt"; /** * metrics tag value. */ - public static final String TV_ILLEGAL_ARGUMENT = "illegalArgument"; + public static final String ILLEGAL_ARGUMENT = "illegalArgument"; /** * metrics tag value. */ - public static final String TV_NACOS = "nacos"; + public static final String NACOS = "nacos"; /** * metrics tag value. */ - public static final String TV_DB = "db"; + public static final String DB = "db"; /** * metrics tag value. */ - public static final String TV_CONFIG_NOTIFY = "configNotify"; + public static final String CONFIG_NOTIFY = "configNotify"; /** * metrics tag value. */ - public static final String TV_UN_HEALTH = "unhealth"; + public static final String UNHEALTH = "unhealth"; } \ No newline at end of file diff --git a/metrics/src/main/java/com/alibaba/nacos/metrics/manager/CoreMetricsConstant.java b/metrics/src/main/java/com/alibaba/nacos/metrics/manager/CoreMetricsConstant.java index bb0b3cdc56a..9ce2e6d883a 100644 --- a/metrics/src/main/java/com/alibaba/nacos/metrics/manager/CoreMetricsConstant.java +++ b/metrics/src/main/java/com/alibaba/nacos/metrics/manager/CoreMetricsConstant.java @@ -18,6 +18,7 @@ /** * Core Metrics Constant. + * * @author holdonbei */ public class CoreMetricsConstant { @@ -25,40 +26,110 @@ public class CoreMetricsConstant { /** * metrics name. */ - public static final String N_NACOS_MONITOR = "nacos_monitor"; + public static final String NACOS_MONITOR = "nacos_monitor"; + + /** + * metrics name. + */ + public static final String NACOS_CLIENT_TOTAL_CONNECTIONS = "nacos_client_total_connections"; + + /** + * metrics name. + */ + public static final String NACOS_GRPC_REQUEST_COUNT = "nacos_grpc_request_count"; + + /** + * metrics name. + */ + public static final String DISTRO_VERIFY = "distro_verify"; + + /** + * metrics name. + */ + public static final String APPEND_LOGS_COUNT = "append_logs_count"; + + /** + * metrics name. + */ + public static final String DISTRO_SYNC = "distro_sync"; + + /** + * metrics name. + */ + public static final String REPLICATE_ENTRIES_COUNT = "replicate_entries_count"; + + /** + * metrics name. + */ + public static final String NEXT_INDEX = "next_index"; /** * metrics name. */ - public static final String N_NACOS_CLIENT_TOTAL_CONNECTIONS = "nacos_client_total_connections"; + public static final String LOG_LAGS = "log_lags"; /** * metrics name. */ - public static final String N_NACOS_GRPC_REQUEST_COUNT = "nacos_grpc_request_count"; + public static final String PRE_VOTE = "pre_vote"; + + /** + * metrics name. + */ + public static final String REQUEST_VOTE = "request_vote"; + + /** + * metrics tag key. + */ + public static final String MODULE = "module"; + + /** + * metrics tag key. + */ + public static final String NAME = "name"; + + /** + * metrics tag key. + */ + public static final String RESOURCE_TYPE = "resourceType"; /** * metrics tag key. */ - public static final String TK_MODULE = "module"; + public static final String TARGET_SERVER = "targetServer"; /** * metrics tag key. */ - public static final String TK_NAME = "name"; + public static final String SUCCESS = "success"; + + /** + * metrics tag key. + */ + public static final String GROUP_NAME = "group_name"; + + /** + * metrics tag value. + */ + public static final String CORE = "core"; + + /** + * metrics tag value. + */ + public static final String CONFIG = "config"; /** * metrics tag value. */ - public static final String TV_CORE = "core"; + public static final String LONG_CONNECTION = "longConnection"; /** * metrics tag value. */ - public static final String TV_CONFIG = "config"; + public static final String TRUE = "ture"; /** * metrics tag value. */ - public static final String TV_LONG_CONNECTION = "longConnection"; + public static final String FALSE = "false"; } \ No newline at end of file diff --git a/metrics/src/main/java/com/alibaba/nacos/metrics/manager/MetricsManager.java b/metrics/src/main/java/com/alibaba/nacos/metrics/manager/MetricsManager.java index 1ff61ef5ade..533453797ee 100644 --- a/metrics/src/main/java/com/alibaba/nacos/metrics/manager/MetricsManager.java +++ b/metrics/src/main/java/com/alibaba/nacos/metrics/manager/MetricsManager.java @@ -43,23 +43,23 @@ public class MetricsManager { /** * manager Gauge. */ - private final Map gaugesMap = new ConcurrentHashMap<>(); + private final Map gauges = new ConcurrentHashMap<>(); /** * manager Counter. */ - private final Map countersMap = new ConcurrentHashMap<>(); + private final Map counters = new ConcurrentHashMap<>(); /** * manager Timer. */ - private final Map timersMap = new ConcurrentHashMap<>(); + private final Map timers = new ConcurrentHashMap<>(); /** * register counter with description. */ public static Counter counter(String name, String... tags) { - return INSTANCE.countersMap.computeIfAbsent(getKey(name, tags), + return INSTANCE.counters.computeIfAbsent(getKey(name, tags), s -> Counter.builder(name).tags(tags).register(Metrics.globalRegistry)); } @@ -67,7 +67,7 @@ public static Counter counter(String name, String... tags) { * register timer with description. */ public static Timer timer(String name, String... tags) { - return INSTANCE.timersMap.computeIfAbsent(getKey(name, tags), + return INSTANCE.timers.computeIfAbsent(getKey(name, tags), s -> Timer.builder(name).tags(tags).register(Metrics.globalRegistry)); } @@ -78,20 +78,13 @@ public static AtomicLong gauge(String name, String... tags) { if ((tags.length & 1) == 1) { throw new IllegalArgumentException("tags' length is odd, gauge need even."); } - return INSTANCE.gaugesMap.computeIfAbsent(getKey(name, tags), s -> { + return INSTANCE.gauges.computeIfAbsent(getKey(name, tags), s -> { AtomicLong gauge = new AtomicLong(); Gauge.builder(name, () -> gauge).tags(tags).register(Metrics.globalRegistry); return gauge; }); } - - /** - * exporter for Metrics. - */ - private static List exporter() { - return null; - } - + /** * create key for metrics. */ diff --git a/metrics/src/main/java/com/alibaba/nacos/metrics/manager/NamingMetricsConstant.java b/metrics/src/main/java/com/alibaba/nacos/metrics/manager/NamingMetricsConstant.java index 318dcadadb0..9c103c52948 100644 --- a/metrics/src/main/java/com/alibaba/nacos/metrics/manager/NamingMetricsConstant.java +++ b/metrics/src/main/java/com/alibaba/nacos/metrics/manager/NamingMetricsConstant.java @@ -18,6 +18,7 @@ /** * Naming Metrics Constant. + * * @author holdonbei */ public class NamingMetricsConstant { @@ -25,141 +26,141 @@ public class NamingMetricsConstant { /** * metrics name. */ - public static final String N_NACOS_MONITOR = "nacos_monitor"; + public static final String NACOS_MONITOR = "nacos_monitor"; /** * metrics name. */ - public static final String N_NACOS_EXCEPTION = "nacos_exception"; + public static final String NACOS_EXCEPTION = "nacos_exception"; /** * metrics name. */ - public static final String N_NACOS_SERVER_PUSH = "nacos_server_push"; + public static final String NACOS_SERVER_PUSH = "nacos_server_push"; /** * metrics name. */ - public static final String N_NACOS_SERVER_PUSH_COUNT = "nacos_server_push_count"; + public static final String NACOS_SERVER_PUSH_COUNT = "nacos_server_push_count"; /** * metrics tag key. */ - public static final String TK_MODULE = "module"; + public static final String MODULE = "module"; /** * metrics tag key. */ - public static final String TK_NAME = "name"; + public static final String NAME = "name"; /** * metrics tag key. */ - public static final String TK_TYPE = "type"; + public static final String TYPE = "type"; /** * metrics tag key. */ - public static final String TK_SUCCESS = "success"; + public static final String SUCCESS = "success"; /** * metrics tag value. */ - public static final String TV_NAMING = "naming"; + public static final String NAMING = "naming"; /** * metrics tag value. */ - public static final String TV_MYSQL_HEALTH_CHECK = "mysqlHealthCheck"; + public static final String MYSQL_HEALTH_CHECK = "mysqlHealthCheck"; /** * metrics tag value. */ - public static final String TV_HTTP_HEALTH_CHECK = "httpHealthCheck"; + public static final String HTTP_HEALTH_CHECK = "httpHealthCheck"; /** * metrics tag value. */ - public static final String TV_TCP_HEALTH_CHECK = "tcpHealthCheck"; + public static final String TCP_HEALTH_CHECK = "tcpHealthCheck"; /** * metrics tag value. */ - public static final String TV_SERVICE_COUNT = "serviceCount"; + public static final String SERVICE_COUNT = "serviceCount"; /** * metrics tag value. */ - public static final String TV_IP_COUNT = "ipCount"; + public static final String IP_COUNT = "ipCount"; /** * metrics tag value. */ - public static final String TV_SUBSCRIBER_COUNT = "subscriberCount"; + public static final String SUBSCRIBER_COUNT = "subscriberCount"; /** * metrics tag value. */ - public static final String TV_MAX_PUSH_COST = "maxPushCost"; + public static final String MAX_PUSH_COST = "maxPushCost"; /** * metrics tag value. */ - public static final String TV_AVG_PUSH_COST = "avgPushCost"; + public static final String AVG_PUSH_COST = "avgPushCost"; /** * metrics tag value. */ - public static final String TV_LEADER_STATUS = "leaderStatus"; + public static final String LEADER_STATUS = "leaderStatus"; /** * metrics tag value. */ - public static final String TV_TOTAL_PUSH = "totalPush"; + public static final String TOTAL_PUSH = "totalPush"; /** * metrics tag value. */ - public static final String TV_FAILED_PUSH = "failedPush"; + public static final String FAILED_PUSH = "failedPush"; /** * metrics tag value. */ - public static final String TV_TOTAL_PUSH_COUNT_FOR_AVG = "totalPushCountForAvg"; + public static final String TOTAL_PUSH_COUNT_FOR_AVG = "totalPushCountForAvg"; /** * metrics tag value. */ - public static final String TV_TOTAL_PUSH_COST_FOR_AVG = "totalPushCostForAvg"; + public static final String TOTAL_PUSH_COST_FOR_AVG = "totalPushCostForAvg"; /** * metrics tag value. */ - public static final String TV_DISK = "disk"; + public static final String DISK = "disk"; /** * metrics tag value. */ - public static final String TV_LEADER_SEND_BEAT_FAILED = "leaderSendBeatFailed"; + public static final String LEADER_SEND_BEAT_FAILED = "leaderSendBeatFailed"; /** * metrics tag value. */ - public static final String TV_GRPC = "grpc"; + public static final String GRPC = "grpc"; /** * metrics tag value. */ - public static final String TV_UDP = "udp"; + public static final String UDP = "udp"; /** * metrics tag value. */ - public static final String TV_TRUE = "true"; + public static final String TRUE = "true"; /** * metrics tag value. */ - public static final String TV_FALSE = "false"; + public static final String FALSE = "false"; } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftCore.java b/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftCore.java index 7a93dbb8893..b7b4996c5b5 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftCore.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftCore.java @@ -681,9 +681,9 @@ private void sendBeat() throws IOException, InterruptedException { public void onReceive(RestResult result) { if (!result.ok()) { Loggers.RAFT.error("NACOS-RAFT beat failed: {}, peer: {}", result.getCode(), server); - MetricsManager.counter(NamingMetricsConstant.N_NACOS_EXCEPTION, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_LEADER_SEND_BEAT_FAILED) + MetricsManager.counter(NamingMetricsConstant.NACOS_EXCEPTION, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.LEADER_SEND_BEAT_FAILED) .increment(); return; } @@ -698,9 +698,9 @@ public void onReceive(RestResult result) { public void onError(Throwable throwable) { Loggers.RAFT.error("NACOS-RAFT error while sending heart-beat to peer: {} {}", server, throwable); - MetricsManager.counter(NamingMetricsConstant.N_NACOS_EXCEPTION, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_LEADER_SEND_BEAT_FAILED) + MetricsManager.counter(NamingMetricsConstant.NACOS_EXCEPTION, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.LEADER_SEND_BEAT_FAILED) .increment(); } @@ -711,9 +711,9 @@ public void onCancel() { }); } catch (Exception e) { Loggers.RAFT.error("error while sending heart-beat to peer: {} {}", server, e); - MetricsManager.counter(NamingMetricsConstant.N_NACOS_EXCEPTION, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_LEADER_SEND_BEAT_FAILED) + MetricsManager.counter(NamingMetricsConstant.NACOS_EXCEPTION, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.LEADER_SEND_BEAT_FAILED) .increment(); } } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftStore.java b/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftStore.java index c14c1485bd3..c3dd1651a26 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftStore.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/consistency/persistent/raft/RaftStore.java @@ -257,9 +257,9 @@ public synchronized void write(final Datum datum) throws Exception { File cacheFile = new File(cacheFileName(namespaceId, datum.key)); if (!cacheFile.exists() && !cacheFile.getParentFile().mkdirs() && !cacheFile.createNewFile()) { - MetricsManager.counter(NamingMetricsConstant.N_NACOS_EXCEPTION, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_DISK).increment(); + MetricsManager.counter(NamingMetricsConstant.NACOS_EXCEPTION, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.DISK).increment(); throw new IllegalStateException("can not make cache file: " + cacheFile.getName()); } @@ -272,9 +272,9 @@ public synchronized void write(final Datum datum) throws Exception { fc.write(data, data.position()); fc.force(true); } catch (Exception e) { - MetricsManager.counter(NamingMetricsConstant.N_NACOS_EXCEPTION, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_DISK).increment(); + MetricsManager.counter(NamingMetricsConstant.NACOS_EXCEPTION, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.DISK).increment(); throw e; } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/controllers/HealthController.java b/naming/src/main/java/com/alibaba/nacos/naming/controllers/HealthController.java index c8380a14d34..3da3bc1cb58 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/controllers/HealthController.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/controllers/HealthController.java @@ -85,9 +85,9 @@ public class HealthController { public ResponseEntity server() { ObjectNode result = JacksonUtils.createEmptyJsonNode(); result.put("msg", "Hello! I am Nacos-Naming and healthy! total services: " - + MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SERVICE_COUNT) + + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SERVICE_COUNT) + ", local port:" + EnvUtil.getPort()); return ResponseEntity.ok(result); } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/controllers/OperatorController.java b/naming/src/main/java/com/alibaba/nacos/naming/controllers/OperatorController.java index ecf5bc17d9b..eeafc76d552 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/controllers/OperatorController.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/controllers/OperatorController.java @@ -111,12 +111,12 @@ public OperatorController(SwitchManager switchManager, ServerListManager serverL public ObjectNode pushState(@RequestParam(required = false) boolean detail, @RequestParam(required = false) boolean reset) { ObjectNode result = JacksonUtils.createEmptyJsonNode(); - long failedPushCount = MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_FAILED_PUSH).get(); - long totalPushCount = MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH).get(); + long failedPushCount = MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.FAILED_PUSH).get(); + long totalPushCount = MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH).get(); result.put("succeed", totalPushCount - failedPushCount); result.put("total", totalPushCount); if (totalPushCount > 0) { @@ -127,13 +127,13 @@ public ObjectNode pushState(@RequestParam(required = false) boolean detail, if (detail) { ObjectNode detailNode = JacksonUtils.createEmptyJsonNode(); detailNode.put("avgPushCost", - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_MAX_PUSH_COST).get()); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.MAX_PUSH_COST).get()); detailNode.put("maxPushCost", - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_AVG_PUSH_COST).get()); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.AVG_PUSH_COST).get()); result.replace("detail", detailNode); } if (reset) { @@ -210,17 +210,17 @@ public ObjectNode metrics(HttpServletRequest request) { int responsibleDomCount = serviceManager.getResponsibleServiceCount(); int responsibleIpCount = serviceManager.getResponsibleInstanceCount(); result.put("serviceCount", - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SERVICE_COUNT).get()); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SERVICE_COUNT).get()); result.put("instanceCount", - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_IP_COUNT).get()); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.IP_COUNT).get()); result.put("subscribeCount", - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SUBSCRIBER_COUNT).get()); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SUBSCRIBER_COUNT).get()); result.put("raftNotifyTaskCount", raftCore.getNotifyTaskCount()); result.put("responsibleServiceCount", responsibleDomCount); result.put("responsibleInstanceCount", responsibleIpCount); diff --git a/naming/src/main/java/com/alibaba/nacos/naming/controllers/UpgradeOpsController.java b/naming/src/main/java/com/alibaba/nacos/naming/controllers/UpgradeOpsController.java index c1784ce8b6f..79c3bc935fe 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/controllers/UpgradeOpsController.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/controllers/UpgradeOpsController.java @@ -198,17 +198,17 @@ private ObjectNode getMetrics() throws NacosException { result.put("serviceCountV1", serviceManager.getServiceCount()); result.put("instanceCountV1", serviceManager.getInstanceCount()); result.put("serviceCountV2", - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SERVICE_COUNT).get()); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SERVICE_COUNT).get()); result.put("instanceCountV2", - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_IP_COUNT).get()); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.IP_COUNT).get()); result.put("subscribeCountV2", - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SUBSCRIBER_COUNT).get()); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SUBSCRIBER_COUNT).get()); result.put("responsibleServiceCountV1", serviceManager.getResponsibleServiceCount()); result.put("responsibleInstanceCountV1", serviceManager.getResponsibleInstanceCount()); result.put("ephemeralServiceCountV2", ephemeralServiceNamesV2.size()); diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/client/AbstractClient.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/client/AbstractClient.java index 3eb29ca3285..3883de51aac 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/client/AbstractClient.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/client/AbstractClient.java @@ -133,13 +133,13 @@ public ClientSyncData generateSyncData() { @Override public void release() { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_IP_COUNT) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.IP_COUNT) .addAndGet(-1 * publishers.size()); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SUBSCRIBER_COUNT) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SUBSCRIBER_COUNT) .addAndGet(-1 * subscribers.size()); } } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/DefaultSelfUpgradeChecker.java b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/DefaultSelfUpgradeChecker.java index fe314698cf6..f74703e1ceb 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/DefaultSelfUpgradeChecker.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/core/v2/upgrade/DefaultSelfUpgradeChecker.java @@ -42,14 +42,14 @@ public boolean isReadyToUpgrade(ServiceManager serviceManager, DoubleWriteDelayT private boolean checkServiceAndInstanceNumber(ServiceManager serviceManager) { boolean result = serviceManager.getServiceCount() == MetricsManager - .gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SERVICE_COUNT) + .gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SERVICE_COUNT) .get(); result &= serviceManager.getInstanceCount() == MetricsManager - .gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_IP_COUNT) + .gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.IP_COUNT) .get(); return result; } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HttpHealthCheckProcessor.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HttpHealthCheckProcessor.java index 8283f09b0b2..1fb9b3c0932 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HttpHealthCheckProcessor.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/HttpHealthCheckProcessor.java @@ -107,9 +107,9 @@ public void process(HealthCheckTask task) { ASYNC_REST_TEMPLATE.get(target.toString(), header, Query.EMPTY, String.class, new HttpHealthCheckCallback(ip, task)); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_HTTP_HEALTH_CHECK) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.HTTP_HEALTH_CHECK) .incrementAndGet(); } catch (Throwable e) { ip.setCheckRt(switchDomain.getHttpHealthParams().getMax()); diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/MysqlHealthCheckProcessor.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/MysqlHealthCheckProcessor.java index 513b68672db..7a1030e1ba7 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/MysqlHealthCheckProcessor.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/MysqlHealthCheckProcessor.java @@ -104,9 +104,9 @@ public void process(HealthCheckTask task) { } GlobalExecutor.executeMysqlCheckTask(new MysqlCheckTask(ip, task)); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_MYSQL_HEALTH_CHECK) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.MYSQL_HEALTH_CHECK) .incrementAndGet(); } catch (Exception e) { ip.setCheckRt(switchDomain.getMysqlHealthParams().getMax()); diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/TcpSuperSenseProcessor.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/TcpSuperSenseProcessor.java index 073ed4776b9..93fc443972e 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/TcpSuperSenseProcessor.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/TcpSuperSenseProcessor.java @@ -128,9 +128,9 @@ public void process(HealthCheckTask task) { Beat beat = new Beat(ip, task); taskQueue.add(beat); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TCP_HEALTH_CHECK) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TCP_HEALTH_CHECK) .incrementAndGet(); } } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/HttpHealthCheckProcessor.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/HttpHealthCheckProcessor.java index ad98fb36aa1..b60154d1d6e 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/HttpHealthCheckProcessor.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/HttpHealthCheckProcessor.java @@ -92,9 +92,9 @@ public void process(HealthCheckTaskV2 task, Service service, ClusterMetadata met ASYNC_REST_TEMPLATE.get(target.toString(), header, Query.EMPTY, String.class, new HttpHealthCheckCallback(instance, task, service)); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_HTTP_HEALTH_CHECK) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.HTTP_HEALTH_CHECK) .incrementAndGet(); } catch (Throwable e) { instance.setCheckRt(switchDomain.getHttpHealthParams().getMax()); diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/MysqlHealthCheckProcessor.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/MysqlHealthCheckProcessor.java index 822732adb26..5db088f4b8b 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/MysqlHealthCheckProcessor.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/MysqlHealthCheckProcessor.java @@ -95,9 +95,9 @@ public void process(HealthCheckTaskV2 task, Service service, ClusterMetadata met return; } GlobalExecutor.executeMysqlCheckTask(new MysqlCheckTask(task, service, instance, metadata)); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_MYSQL_HEALTH_CHECK) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.MYSQL_HEALTH_CHECK) .incrementAndGet(); } catch (Exception e) { instance.setCheckRt(switchDomain.getMysqlHealthParams().getMax()); diff --git a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/TcpHealthCheckProcessor.java b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/TcpHealthCheckProcessor.java index bd58134dd6f..9d6c69642a9 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/TcpHealthCheckProcessor.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/healthcheck/v2/processor/TcpHealthCheckProcessor.java @@ -109,9 +109,9 @@ public void process(HealthCheckTaskV2 task, Service service, ClusterMetadata met return; } taskQueue.add(new Beat(task, service, metadata, instance)); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TCP_HEALTH_CHECK) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TCP_HEALTH_CHECK) .incrementAndGet(); } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/monitor/MetricsMonitor.java b/naming/src/main/java/com/alibaba/nacos/naming/monitor/MetricsMonitor.java index a62d878dda6..da00ace5343 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/monitor/MetricsMonitor.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/monitor/MetricsMonitor.java @@ -18,18 +18,10 @@ import com.alibaba.nacos.metrics.manager.MetricsManager; import com.alibaba.nacos.metrics.manager.NamingMetricsConstant; -import com.alibaba.nacos.naming.misc.Loggers; import io.micrometer.core.instrument.Counter; -import io.micrometer.core.instrument.ImmutableTag; import io.micrometer.core.instrument.Metrics; -import io.micrometer.core.instrument.Tag; -import java.lang.reflect.Field; -import java.util.ArrayList; -import java.util.List; import java.util.concurrent.TimeUnit; -import java.util.concurrent.atomic.AtomicInteger; -import java.util.concurrent.atomic.AtomicLong; /** * Metrics Monitor. @@ -38,113 +30,13 @@ */ public class MetricsMonitor { - private static final MetricsMonitor INSTANCE = new MetricsMonitor(); - - private final AtomicInteger mysqlHealthCheck = new AtomicInteger(); - - private final AtomicInteger httpHealthCheck = new AtomicInteger(); - - private final AtomicInteger tcpHealthCheck = new AtomicInteger(); - - private final AtomicInteger serviceCount = new AtomicInteger(); - - private final AtomicInteger ipCount = new AtomicInteger(); - - private final AtomicInteger subscriberCount = new AtomicInteger(); - - private final AtomicLong maxPushCost = new AtomicLong(-1); - - private final AtomicLong avgPushCost = new AtomicLong(-1); - - private final AtomicLong leaderStatus = new AtomicLong(); - - private final AtomicInteger totalPush = new AtomicInteger(); - - private final AtomicInteger totalPushCountForAvg = new AtomicInteger(); - - private final AtomicLong totalPushCostForAvg = new AtomicLong(); - - private final AtomicInteger failedPush = new AtomicInteger(); - - private MetricsMonitor() { - for (Field each : MetricsMonitor.class.getDeclaredFields()) { - if (Number.class.isAssignableFrom(each.getType())) { - each.setAccessible(true); - try { - registerToMetrics(each.getName(), (Number) each.get(this)); - } catch (IllegalAccessException e) { - Loggers.PERFORMANCE_LOG.error("Init metrics for {} failed", each.getName(), e); - } - } - } - } - - private void registerToMetrics(String name, T number) { - List tags = new ArrayList<>(); - tags.add(new ImmutableTag("module", "naming")); - tags.add(new ImmutableTag("name", name)); - Metrics.gauge("nacos_monitor", tags, number); - } - - public static AtomicInteger getMysqlHealthCheckMonitor() { - return INSTANCE.mysqlHealthCheck; - } - - public static AtomicInteger getHttpHealthCheckMonitor() { - return INSTANCE.httpHealthCheck; - } - - public static AtomicInteger getTcpHealthCheckMonitor() { - return INSTANCE.tcpHealthCheck; - } - - public static AtomicInteger getDomCountMonitor() { - return INSTANCE.serviceCount; - } - - public static AtomicInteger getIpCountMonitor() { - return INSTANCE.ipCount; - } - - public static AtomicInteger getSubscriberCount() { - return INSTANCE.subscriberCount; - } - - public static AtomicLong getMaxPushCostMonitor() { - return INSTANCE.maxPushCost; - } - - public static AtomicLong getAvgPushCostMonitor() { - return INSTANCE.avgPushCost; - } - - public static AtomicLong getLeaderStatusMonitor() { - return INSTANCE.leaderStatus; - } - - public static AtomicInteger getTotalPushMonitor() { - return INSTANCE.totalPush; - } - - public static AtomicInteger getFailedPushMonitor() { - return INSTANCE.failedPush; - } - - public static AtomicInteger getTotalPushCountForAvg() { - return INSTANCE.totalPushCountForAvg; - } - - public static AtomicLong getTotalPushCostForAvg() { - return INSTANCE.totalPushCostForAvg; - } - /** * compareAndSetMaxPushCost. */ public static void compareAndSetMaxPushCost(long newCost) { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_MAX_PUSH_COST) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.MAX_PUSH_COST) .getAndUpdate((prev) -> Math.max(newCost, prev)); } @@ -152,9 +44,9 @@ public static void compareAndSetMaxPushCost(long newCost) { * incrementPush. */ public static void incrementPush() { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH) .incrementAndGet(); } @@ -162,13 +54,13 @@ public static void incrementPush() { * incrementPushCost. */ public static void incrementPushCost(long costTime) { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH_COUNT_FOR_AVG) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH_COUNT_FOR_AVG) .incrementAndGet(); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH_COST_FOR_AVG) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH_COST_FOR_AVG) .addAndGet(costTime); } @@ -176,9 +68,9 @@ public static void incrementPushCost(long costTime) { * incrementFailPush. */ public static void incrementFailPush() { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_FAILED_PUSH) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.FAILED_PUSH) .incrementAndGet(); } @@ -186,9 +78,9 @@ public static void incrementFailPush() { * incrementInstanceCount. */ public static void incrementInstanceCount() { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_IP_COUNT) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.IP_COUNT) .incrementAndGet(); } @@ -196,9 +88,9 @@ public static void incrementInstanceCount() { * decrementInstanceCount. */ public static void decrementInstanceCount() { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_IP_COUNT) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.IP_COUNT) .decrementAndGet(); } @@ -206,9 +98,9 @@ public static void decrementInstanceCount() { * incrementSubscribeCount. */ public static void incrementSubscribeCount() { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SUBSCRIBER_COUNT) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SUBSCRIBER_COUNT) .incrementAndGet(); } @@ -216,9 +108,9 @@ public static void incrementSubscribeCount() { * decrementSubscribeCount. */ public static void decrementSubscribeCount() { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SUBSCRIBER_COUNT) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SUBSCRIBER_COUNT) .decrementAndGet(); } @@ -231,10 +123,10 @@ public static Counter getLeaderSendBeatFailedException() { } public static void setServerPushCost(Long amount, String type, String isSuccess) { - MetricsManager.timer(NamingMetricsConstant.N_NACOS_SERVER_PUSH, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_TYPE, type, - NamingMetricsConstant.TK_SUCCESS, isSuccess) + MetricsManager.timer(NamingMetricsConstant.NACOS_SERVER_PUSH, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.TYPE, type, + NamingMetricsConstant.SUCCESS, isSuccess) .record(amount, TimeUnit.MILLISECONDS); } @@ -259,38 +151,38 @@ public static Counter getUdpPushFailedCount() { */ public static void resetAll() { resetPush(); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_HTTP_HEALTH_CHECK).set(0); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_MYSQL_HEALTH_CHECK).set(0); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TCP_HEALTH_CHECK).set(0); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.HTTP_HEALTH_CHECK).set(0); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.MYSQL_HEALTH_CHECK).set(0); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TCP_HEALTH_CHECK).set(0); } /** * Reset push metrics. */ public static void resetPush() { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH).set(0); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_FAILED_PUSH).set(0); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH_COST_FOR_AVG).set(0); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH_COUNT_FOR_AVG).set(0); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_MAX_PUSH_COST).set(-1); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_AVG_PUSH_COST).set(-1); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH).set(0); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.FAILED_PUSH).set(0); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH_COST_FOR_AVG).set(0); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH_COUNT_FOR_AVG).set(0); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.MAX_PUSH_COST).set(-1); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.AVG_PUSH_COST).set(-1); } } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/monitor/PerformanceLoggerThread.java b/naming/src/main/java/com/alibaba/nacos/naming/monitor/PerformanceLoggerThread.java index ebffef6d924..9c950b08726 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/monitor/PerformanceLoggerThread.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/monitor/PerformanceLoggerThread.java @@ -80,13 +80,13 @@ public void refreshMetrics() { */ @Scheduled(cron = "0/15 * * * * ?") public void collectMetrics() { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SERVICE_COUNT) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SERVICE_COUNT) .set(com.alibaba.nacos.naming.core.v2.ServiceManager.getInstance().size()); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_AVG_PUSH_COST) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.AVG_PUSH_COST) .set(getAvgPushCost()); metricsRaftLeader(); } @@ -98,19 +98,19 @@ public void collectMetrics() { private void metricsRaftLeader() { if (!versionJudgement.allMemberIsNewVersion()) { if (raftCore.isLeader()) { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_LEADER_STATUS) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.LEADER_STATUS) .set(1); } else if (raftCore.getPeerSet().local().state == RaftPeer.State.FOLLOWER) { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_LEADER_STATUS) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.LEADER_STATUS) .set(0); } else { - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_LEADER_STATUS) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.LEADER_STATUS) .set(2); } } @@ -130,22 +130,22 @@ public void run() { Loggers.PERFORMANCE_LOG.info("DISTRO:|V1SyncDone|V1SyncFail|V2SyncDone|V2SyncFail|V2VerifyFail|"); } int serviceCount = com.alibaba.nacos.naming.core.v2.ServiceManager.getInstance().size(); - long ipCount = MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_IP_COUNT).get(); - long subscribeCount = MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_SUBSCRIBER_COUNT).get(); - long maxPushCost = MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_MAX_PUSH_COST).get(); + long ipCount = MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.IP_COUNT).get(); + long subscribeCount = MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.SUBSCRIBER_COUNT).get(); + long maxPushCost = MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.MAX_PUSH_COST).get(); long avgPushCost = getAvgPushCost(); - long totalPushCount = MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH).longValue(); - long failPushCount = MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_FAILED_PUSH).longValue(); + long totalPushCount = MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH).longValue(); + long failPushCount = MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.FAILED_PUSH).longValue(); Loggers.PERFORMANCE_LOG .info("PERFORMANCE:|{}|{}|{}|{}|{}|{}|{}", serviceCount, ipCount, subscribeCount, maxPushCost, avgPushCost, totalPushCount, failPushCount); @@ -153,15 +153,15 @@ public void run() { .info("Task worker status: \n" + NamingExecuteTaskDispatcher.getInstance().workersStatus()); printDistroMonitor(); logCount++; - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH_COUNT_FOR_AVG).set(0); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH_COST_FOR_AVG).set(0); - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_MAX_PUSH_COST) + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH_COUNT_FOR_AVG).set(0); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH_COST_FOR_AVG).set(0); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.MAX_PUSH_COST) .set(-1); } catch (Exception e) { Loggers.SRV_LOG.warn("[PERFORMANCE] Exception while print performance log.", e); @@ -194,12 +194,12 @@ private void printDistroMonitor() { } private long getAvgPushCost() { - long size = MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH_COUNT_FOR_AVG).get(); - long totalCost = MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH_COST_FOR_AVG).get(); + long size = MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH_COUNT_FOR_AVG).get(); + long totalCost = MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH_COST_FOR_AVG).get(); return (size > 0 && totalCost > 0) ? totalCost / size : -1; } } diff --git a/naming/src/main/java/com/alibaba/nacos/naming/push/UdpPushService.java b/naming/src/main/java/com/alibaba/nacos/naming/push/UdpPushService.java index 3ed80acc3eb..f93df846b63 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/push/UdpPushService.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/push/UdpPushService.java @@ -455,9 +455,9 @@ public void run() { Loggers.PUSH .info("received ack: {} from: {}:{}, cost: {} ms, unacked: {}, total push: {}", json, ip, port, pushCost, ackMap.size(), - MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH).get()); + MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH).get()); MetricsMonitor.incrementPushCost(pushCost); diff --git a/naming/src/main/java/com/alibaba/nacos/naming/push/v2/hook/NacosMonitorPushResultHook.java b/naming/src/main/java/com/alibaba/nacos/naming/push/v2/hook/NacosMonitorPushResultHook.java index 7ff302f0d79..684366316ce 100644 --- a/naming/src/main/java/com/alibaba/nacos/naming/push/v2/hook/NacosMonitorPushResultHook.java +++ b/naming/src/main/java/com/alibaba/nacos/naming/push/v2/hook/NacosMonitorPushResultHook.java @@ -35,17 +35,17 @@ public void pushSuccess(PushResult result) { MetricsMonitor.incrementPushCost(result.getAllCost()); MetricsMonitor.compareAndSetMaxPushCost(result.getAllCost()); if (isRpc(result.getSubscriber())) { - MetricsManager.counter(NamingMetricsConstant.N_NACOS_SERVER_PUSH_COUNT, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_TYPE, NamingMetricsConstant.TV_GRPC, - NamingMetricsConstant.TK_SUCCESS, NamingMetricsConstant.TV_TRUE).increment(); + MetricsManager.counter(NamingMetricsConstant.NACOS_SERVER_PUSH_COUNT, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.TYPE, NamingMetricsConstant.GRPC, + NamingMetricsConstant.SUCCESS, NamingMetricsConstant.TRUE).increment(); MetricsMonitor.setServerPushCost(result.getAllCost(), "grpc", "true"); NamingTpsMonitor.rpcPushSuccess(result.getSubscribeClientId(), result.getSubscriber().getIp()); } else { - MetricsManager.counter(NamingMetricsConstant.N_NACOS_SERVER_PUSH_COUNT, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_TYPE, NamingMetricsConstant.TV_UDP, - NamingMetricsConstant.TK_SUCCESS, NamingMetricsConstant.TV_TRUE).increment(); + MetricsManager.counter(NamingMetricsConstant.NACOS_SERVER_PUSH_COUNT, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.TYPE, NamingMetricsConstant.UDP, + NamingMetricsConstant.SUCCESS, NamingMetricsConstant.TRUE).increment(); MetricsMonitor.setServerPushCost(result.getAllCost(), "udp", "true"); NamingTpsMonitor.udpPushSuccess(result.getSubscribeClientId(), result.getSubscriber().getIp()); } @@ -55,17 +55,17 @@ public void pushSuccess(PushResult result) { public void pushFailed(PushResult result) { MetricsMonitor.incrementFailPush(); if (isRpc(result.getSubscriber())) { - MetricsManager.counter(NamingMetricsConstant.N_NACOS_SERVER_PUSH_COUNT, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_TYPE, NamingMetricsConstant.TV_GRPC, - NamingMetricsConstant.TK_SUCCESS, NamingMetricsConstant.TV_FALSE).increment(); + MetricsManager.counter(NamingMetricsConstant.NACOS_SERVER_PUSH_COUNT, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.TYPE, NamingMetricsConstant.GRPC, + NamingMetricsConstant.SUCCESS, NamingMetricsConstant.FALSE).increment(); MetricsMonitor.setServerPushCost(result.getAllCost(), "grpc", "false"); NamingTpsMonitor.rpcPushFail(result.getSubscribeClientId(), result.getSubscriber().getIp()); } else { - MetricsManager.counter(NamingMetricsConstant.N_NACOS_SERVER_PUSH_COUNT, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_TYPE, NamingMetricsConstant.TV_UDP, - NamingMetricsConstant.TK_SUCCESS, NamingMetricsConstant.TV_FALSE).increment(); + MetricsManager.counter(NamingMetricsConstant.NACOS_SERVER_PUSH_COUNT, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.TYPE, NamingMetricsConstant.UDP, + NamingMetricsConstant.SUCCESS, NamingMetricsConstant.FALSE).increment(); MetricsMonitor.setServerPushCost(result.getAllCost(), "udp", "false"); NamingTpsMonitor.udpPushFail(result.getSubscribeClientId(), result.getSubscriber().getIp()); } diff --git a/naming/src/test/java/com/alibaba/nacos/naming/monitor/MetricsMonitorTest.java b/naming/src/test/java/com/alibaba/nacos/naming/monitor/MetricsMonitorTest.java index 55aeee9a23d..1a6ca0f36f5 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/monitor/MetricsMonitorTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/monitor/MetricsMonitorTest.java @@ -26,21 +26,21 @@ public class MetricsMonitorTest { @Test public void testGetTotalPush() { - assertEquals(0, MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH).get()); - assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH).incrementAndGet()); + assertEquals(0, MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH).get()); + assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH).incrementAndGet()); } @Test public void testGetFailedPush() { - assertEquals(0, MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_FAILED_PUSH).get()); - assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_FAILED_PUSH).incrementAndGet()); + assertEquals(0, MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.FAILED_PUSH).get()); + assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.FAILED_PUSH).incrementAndGet()); } } diff --git a/naming/src/test/java/com/alibaba/nacos/naming/push/v2/task/PushExecuteTaskTest.java b/naming/src/test/java/com/alibaba/nacos/naming/push/v2/task/PushExecuteTaskTest.java index 92befc0de89..5ddd4bafc88 100644 --- a/naming/src/test/java/com/alibaba/nacos/naming/push/v2/task/PushExecuteTaskTest.java +++ b/naming/src/test/java/com/alibaba/nacos/naming/push/v2/task/PushExecuteTaskTest.java @@ -105,9 +105,9 @@ public void testRunSuccessForPushAll() { PushDelayTask delayTask = new PushDelayTask(service, 0L); PushExecuteTask executeTask = new PushExecuteTask(service, delayTaskExecuteEngine, delayTask); executeTask.run(); - assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH).get()); + assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH).get()); } @Test @@ -115,9 +115,9 @@ public void testRunSuccessForPushSingle() { PushDelayTask delayTask = new PushDelayTask(service, 0L, clientId); PushExecuteTask executeTask = new PushExecuteTask(service, delayTaskExecuteEngine, delayTask); executeTask.run(); - assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_TOTAL_PUSH).get()); + assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.TOTAL_PUSH).get()); } @Test @@ -126,9 +126,9 @@ public void testRunFailedWithHandleException() { PushExecuteTask executeTask = new PushExecuteTask(service, delayTaskExecuteEngine, delayTask); when(delayTaskExecuteEngine.getServiceStorage()).thenThrow(new RuntimeException()); executeTask.run(); - assertEquals(0, MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_FAILED_PUSH).get()); + assertEquals(0, MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.FAILED_PUSH).get()); verify(delayTaskExecuteEngine).addTask(eq(service), any(PushDelayTask.class)); } @@ -139,9 +139,9 @@ public void testRunFailedWithNoRetry() { pushExecutor.setShouldSuccess(false); pushExecutor.setFailedException(new NoRequiredRetryException()); executeTask.run(); - assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_FAILED_PUSH).get()); + assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.FAILED_PUSH).get()); verify(delayTaskExecuteEngine, never()).addTask(eq(service), any(PushDelayTask.class)); } @@ -152,9 +152,9 @@ public void testRunFailedWithRetry() { pushExecutor.setShouldSuccess(false); pushExecutor.setFailedException(new RuntimeException()); executeTask.run(); - assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.N_NACOS_MONITOR, - NamingMetricsConstant.TK_MODULE, NamingMetricsConstant.TV_NAMING, - NamingMetricsConstant.TK_NAME, NamingMetricsConstant.TV_FAILED_PUSH).get()); + assertEquals(1, MetricsManager.gauge(NamingMetricsConstant.NACOS_MONITOR, + NamingMetricsConstant.MODULE, NamingMetricsConstant.NAMING, + NamingMetricsConstant.NAME, NamingMetricsConstant.FAILED_PUSH).get()); verify(delayTaskExecuteEngine).addTask(eq(service), any(PushDelayTask.class)); } } From 63cbdb2c717b751083660cc6dc3e258073be06c9 Mon Sep 17 00:00:00 2001 From: holdonbei <283255249@qq.com> Date: Tue, 28 Sep 2021 12:16:25 +0800 Subject: [PATCH 2/2] delete exporter in MetricsManager. --- .../com/alibaba/nacos/metrics/manager/MetricsManager.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/metrics/src/main/java/com/alibaba/nacos/metrics/manager/MetricsManager.java b/metrics/src/main/java/com/alibaba/nacos/metrics/manager/MetricsManager.java index 1ff61ef5ade..f47d294fb9d 100644 --- a/metrics/src/main/java/com/alibaba/nacos/metrics/manager/MetricsManager.java +++ b/metrics/src/main/java/com/alibaba/nacos/metrics/manager/MetricsManager.java @@ -85,13 +85,6 @@ public static AtomicLong gauge(String name, String... tags) { }); } - /** - * exporter for Metrics. - */ - private static List exporter() { - return null; - } - /** * create key for metrics. */