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

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

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