From d2aa65938bae06fafc75cc9b88ccab44deedf7f7 Mon Sep 17 00:00:00 2001 From: Ganlin Zhao Date: Tue, 2 Nov 2021 14:25:30 +0800 Subject: [PATCH] [TD-6452]: taoskeeper add request metrics --- src/dnode/src/dnodeShell.c | 14 ++++++++++++-- src/inc/dnode.h | 1 + src/inc/http.h | 1 + src/plugins/http/src/httpSystem.c | 3 ++- src/plugins/monitor/src/monMain.c | 4 ++-- 5 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/dnode/src/dnodeShell.c b/src/dnode/src/dnodeShell.c index 98bbbf8f73..fb70a422bb 100644 --- a/src/dnode/src/dnodeShell.c +++ b/src/dnode/src/dnodeShell.c @@ -243,9 +243,19 @@ SStatisInfo dnodeGetStatisInfo() { #ifdef HTTP_EMBEDDED info.httpReqNum = httpGetReqCount(); #endif - info.queryReqNum = atomic_exchange_32(&tsQueryReqNum, 0); - info.submitReqNum = atomic_exchange_32(&tsSubmitReqNum, 0); + info.queryReqNum = atomic_load_32(&tsQueryReqNum); + info.submitReqNum = atomic_load_32(&tsSubmitReqNum); } return info; } + +void dnodeClearStatisInfo() { + if (dnodeGetRunStatus() == TSDB_RUN_STATUS_RUNING) { +#ifdef HTTP_EMBEDDED + httpClearReqCount(); +#endif + atomic_exchange_32(&tsQueryReqNum, 0); + atomic_exchange_32(&tsSubmitReqNum, 0); + } +} diff --git a/src/inc/dnode.h b/src/inc/dnode.h index 490bf0a680..8decb02023 100644 --- a/src/inc/dnode.h +++ b/src/inc/dnode.h @@ -30,6 +30,7 @@ typedef struct { } SStatisInfo; SStatisInfo dnodeGetStatisInfo(); +void dnodeClearStatisInfo(); bool dnodeIsFirstDeploy(); bool dnodeIsMasterEp(char *ep); diff --git a/src/inc/http.h b/src/inc/http.h index 0d4c386cbf..4c27ceaf31 100644 --- a/src/inc/http.h +++ b/src/inc/http.h @@ -23,6 +23,7 @@ extern "C" { #include int32_t httpGetReqCount(); +int32_t httpClearReqCount(); int32_t httpInitSystem(); int32_t httpStartSystem(); void httpStopSystem(); diff --git a/src/plugins/http/src/httpSystem.c b/src/plugins/http/src/httpSystem.c index 085863f4e4..435396be4a 100644 --- a/src/plugins/http/src/httpSystem.c +++ b/src/plugins/http/src/httpSystem.c @@ -120,4 +120,5 @@ void httpCleanUpSystem() { tsHttpServer.status = HTTP_SERVER_CLOSED; } -int32_t httpGetReqCount() { return atomic_exchange_32(&tsHttpServer.requestNum, 0); } +int32_t httpGetReqCount() { return atomic_load_32(&tsHttpServer.requestNum); } +int32_t httpClearReqCount() { return atomic_exchange_32(&tsHttpServer.requestNum, 0); } diff --git a/src/plugins/monitor/src/monMain.c b/src/plugins/monitor/src/monMain.c index 045de8e385..7f0e656f4d 100644 --- a/src/plugins/monitor/src/monMain.c +++ b/src/plugins/monitor/src/monMain.c @@ -415,8 +415,7 @@ static int32_t monBuildBandSql(char *sql) { } static int32_t monBuildReqSql(char *sql) { - //SStatisInfo info = dnodeGetStatisInfo(); - SStatisInfo info = {0}; + SStatisInfo info = dnodeGetStatisInfo(); return sprintf(sql, ", %d, %d, %d)", info.httpReqNum, info.queryReqNum, info.submitReqNum); } @@ -708,6 +707,7 @@ static int32_t monBuildDnodeReqRateSql(char *sql) { return sprintf(sql, ", %d, %f, %d, %f, %d, %f", info.httpReqNum, httpReqRate, info.queryReqNum - monFetchQueryReqCnt(), queryReqRate, info.submitReqNum - monFetchSubmitReqCnt(), submitReqRate); + dnodeClearStatisInfo(); } static int32_t monBuildDnodeErrorsSql(char *sql) { -- GitLab