提交 4ade0fa5 编写于 作者: G Ganlin Zhao

[TD-6452]<feature>: taoskeeper add request metrics

上级 692d589a
...@@ -237,8 +237,8 @@ void *dnodeSendCfgTableToRecv(int32_t vgId, int32_t tid) { ...@@ -237,8 +237,8 @@ void *dnodeSendCfgTableToRecv(int32_t vgId, int32_t tid) {
} }
} }
SStatisInfo dnodeGetStatisInfo() { SDnodeStatisInfo dnodeGetStatisInfo() {
SStatisInfo info = {0}; SDnodeStatisInfo info = {0};
if (dnodeGetRunStatus() == TSDB_RUN_STATUS_RUNING) { if (dnodeGetRunStatus() == TSDB_RUN_STATUS_RUNING) {
#ifdef HTTP_EMBEDDED #ifdef HTTP_EMBEDDED
info.httpReqNum = httpGetReqCount(); info.httpReqNum = httpGetReqCount();
......
...@@ -26,13 +26,10 @@ extern "C" { ...@@ -26,13 +26,10 @@ extern "C" {
typedef struct { typedef struct {
int32_t queryReqNum; int32_t queryReqNum;
int32_t submitReqNum; int32_t submitReqNum;
int32_t submitReqSucNum;
int32_t submitRowNum;
int32_t submitRowSucNum;
int32_t httpReqNum; int32_t httpReqNum;
} SStatisInfo; } SDnodeStatisInfo;
SStatisInfo dnodeGetStatisInfo(); SDnodeStatisInfo dnodeGetStatisInfo();
void dnodeClearStatisInfo(); void dnodeClearStatisInfo();
bool dnodeIsFirstDeploy(); bool dnodeIsFirstDeploy();
......
...@@ -22,6 +22,12 @@ extern "C" { ...@@ -22,6 +22,12 @@ extern "C" {
#include "trpc.h" #include "trpc.h"
#include "twal.h" #include "twal.h"
typedef struct {
int32_t submitReqSucNum;
int32_t submitRowNum;
int32_t submitRowSucNum;
} SVnodeStatisInfo;
typedef struct { typedef struct {
int32_t len; int32_t len;
void * rsp; void * rsp;
...@@ -62,7 +68,7 @@ int32_t vnodeOpen(int32_t vgId); ...@@ -62,7 +68,7 @@ int32_t vnodeOpen(int32_t vgId);
int32_t vnodeAlter(void *pVnode, SCreateVnodeMsg *pVnodeCfg); int32_t vnodeAlter(void *pVnode, SCreateVnodeMsg *pVnodeCfg);
int32_t vnodeSync(int32_t vgId); int32_t vnodeSync(int32_t vgId);
int32_t vnodeClose(int32_t vgId); int32_t vnodeClose(int32_t vgId);
int32_t vnodeCompact(int32_t vgId); int32_t vnodeCompact(int32_t vgId);
// vnodeMgmt // vnodeMgmt
int32_t vnodeInitMgmt(); int32_t vnodeInitMgmt();
...@@ -80,6 +86,9 @@ int32_t vnodeWriteToWQueue(void *pVnode, void *pHead, int32_t qtype, void *pRpcM ...@@ -80,6 +86,9 @@ int32_t vnodeWriteToWQueue(void *pVnode, void *pHead, int32_t qtype, void *pRpcM
void vnodeFreeFromWQueue(void *pVnode, SVWriteMsg *pWrite); void vnodeFreeFromWQueue(void *pVnode, SVWriteMsg *pWrite);
int32_t vnodeProcessWrite(void *pVnode, void *pHead, int32_t qtype, void *pRspRet); int32_t vnodeProcessWrite(void *pVnode, void *pHead, int32_t qtype, void *pRspRet);
SVnodeStatisInfo vnodeGetStatisInfo();
void vnodeClearStatisInfo();
// vnodeSync // vnodeSync
void vnodeConfirmForward(void *pVnode, uint64_t version, int32_t code, bool force); void vnodeConfirmForward(void *pVnode, uint64_t version, int32_t code, bool force);
......
...@@ -164,7 +164,7 @@ bool metricsProcessRequest(HttpContext* pContext) { ...@@ -164,7 +164,7 @@ bool metricsProcessRequest(HttpContext* pContext) {
} }
{ {
SStatisInfo info = dnodeGetStatisInfo(); SDnodeStatisInfo info = dnodeGetStatisInfo();
{ {
char* keyReqHttp = "req_http"; char* keyReqHttp = "req_http";
char* keyReqSelect = "req_select"; char* keyReqSelect = "req_select";
...@@ -181,4 +181,4 @@ bool metricsProcessRequest(HttpContext* pContext) { ...@@ -181,4 +181,4 @@ bool metricsProcessRequest(HttpContext* pContext) {
pContext->reqType = HTTP_REQTYPE_OTHERS; pContext->reqType = HTTP_REQTYPE_OTHERS;
httpFreeJsonBuf(pContext); httpFreeJsonBuf(pContext);
return false; return false;
} }
\ No newline at end of file
...@@ -24,6 +24,7 @@ ...@@ -24,6 +24,7 @@
#include "tscUtil.h" #include "tscUtil.h"
#include "tsclient.h" #include "tsclient.h"
#include "dnode.h" #include "dnode.h"
#include "vnode.h"
#include "monitor.h" #include "monitor.h"
#include "taoserror.h" #include "taoserror.h"
...@@ -296,8 +297,8 @@ static void monBuildMonitorSql(char *sql, int32_t cmd) { ...@@ -296,8 +297,8 @@ static void monBuildMonitorSql(char *sql, int32_t cmd) {
", io_read float, io_write float" ", io_read float, io_write float"
", req_http int, req_http_rate float" ", req_http int, req_http_rate float"
", req_select int, req_select_rate float" ", req_select int, req_select_rate float"
", req_insert int, req_insert_rate float" ", req_insert int, req_insert_success int, req_insert_rate float"
", req_insert_batch int, req_insert_batch_rate float" ", req_insert_batch int, req_insert_batch_sucesss int, req_insert_batch_rate float"
", errors int" ", errors int"
", vnodes_num int" ", vnodes_num int"
", masters int" ", masters int"
...@@ -416,7 +417,7 @@ static int32_t monBuildBandSql(char *sql) { ...@@ -416,7 +417,7 @@ static int32_t monBuildBandSql(char *sql) {
} }
static int32_t monBuildReqSql(char *sql) { static int32_t monBuildReqSql(char *sql) {
SStatisInfo info = dnodeGetStatisInfo(); SDnodeStatisInfo info = dnodeGetStatisInfo();
return sprintf(sql, ", %d, %d, %d)", info.httpReqNum, info.queryReqNum, info.submitReqNum); return sprintf(sql, ", %d, %d, %d)", info.httpReqNum, info.queryReqNum, info.submitReqNum);
} }
...@@ -700,15 +701,24 @@ static int32_t monBuildNetworkIOSql(char *sql) { ...@@ -700,15 +701,24 @@ static int32_t monBuildNetworkIOSql(char *sql) {
} }
static int32_t monBuildDnodeReqSql(char *sql) { static int32_t monBuildDnodeReqSql(char *sql) {
SStatisInfo info = dnodeGetStatisInfo(); SDnodeStatisInfo dInfo = dnodeGetStatisInfo();
SVnodeStatisInfo vInfo = vnodeGetStatisInfo();
float interval = tsMonitorInterval * 1.0; float interval = tsMonitorInterval * 1.0;
float httpReqRate = info.httpReqNum / interval; float httpReqRate = dInfo.httpReqNum / interval;
float queryReqRate = info.queryReqNum / interval; float queryReqRate = dInfo.queryReqNum / interval;
float submitReqRate = info.submitReqNum / interval; float submitReqRate = dInfo.submitReqNum / interval;
dnodeClearStatisInfo(); dnodeClearStatisInfo();
return sprintf(sql, ", %d, %f, %d, %f, %d, %f", info.httpReqNum, httpReqRate,
info.queryReqNum - monFetchQueryReqCnt(), queryReqRate, float submitRowRate = vInfo.submitRowNum / interval;
info.submitReqNum - monFetchSubmitReqCnt(), submitReqRate); vnodeClearStatisInfo();
int32_t monQueryReqCnt = monFetchQueryReqCnt();
int32_t monSubmitReqCnt = monFetchSubmitReqCnt();
return sprintf(sql, ", %d, %f, %d, %f, %d, %d, %f, %d, %d, %f", dInfo.httpReqNum, httpReqRate,
dInfo.queryReqNum - monQueryReqCnt, queryReqRate,
vInfo.submitRowNum - monSubmitReqCnt, vInfo.submitRowSucNum - monSubmitReqCnt, submitRowRate,
dInfo.submitReqNum - monSubmitReqCnt, vInfo.submitReqSucNum - monSubmitReqCnt, submitReqRate);
} }
static int32_t monBuildDnodeErrorsSql(char *sql) { static int32_t monBuildDnodeErrorsSql(char *sql) {
......
...@@ -172,8 +172,8 @@ static int32_t vnodeProcessSubmitMsg(SVnodeObj *pVnode, void *pCont, SRspRet *pR ...@@ -172,8 +172,8 @@ static int32_t vnodeProcessSubmitMsg(SVnodeObj *pVnode, void *pCont, SRspRet *pR
} else { } else {
atomic_fetch_add_32(&tsSubmitReqSucNum, 1); atomic_fetch_add_32(&tsSubmitReqSucNum, 1);
} }
atomic_fetch_add_32(&tsSubmitRowNum, pRsp->numOfRows); atomic_fetch_add_32(&tsSubmitRowNum, ntohl(pRsp->numOfRows));
atomic_fetch_add_32(&tsSubmitRowSucNum, pRsp->affectedRows); atomic_fetch_add_32(&tsSubmitRowSucNum, ntohl(pRsp->affectedRows));
return code; return code;
} }
...@@ -436,10 +436,13 @@ void vnodeWaitWriteCompleted(SVnodeObj *pVnode) { ...@@ -436,10 +436,13 @@ void vnodeWaitWriteCompleted(SVnodeObj *pVnode) {
taosMsleep(900); taosMsleep(900);
} }
void vnodeGetStatisInfo(SStatisInfo *info) { SVnodeStatisInfo vnodeGetStatisInfo() {
info->submitReqSucNum = atomic_load_32(&tsSubmitReqSucNum); SVnodeStatisInfo info = {0};
info->submitRowNum = atomic_load_32(&tsSubmitRowNum); info.submitReqSucNum = atomic_load_32(&tsSubmitReqSucNum);
info->submitRowSucNum = atomic_load_32(&tsSubmitRowSucNum); info.submitRowNum = atomic_load_32(&tsSubmitRowNum);
info.submitRowSucNum = atomic_load_32(&tsSubmitRowSucNum);
return info;
} }
void vnodeClearStatisInfo() { void vnodeClearStatisInfo() {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册