enh: add query metric
This commit is contained in:
parent
b5e177f151
commit
4d2d0cf964
|
@ -102,6 +102,7 @@ typedef struct SQueryExecMetric {
|
||||||
int64_t ctgEnd; // end to parse, us
|
int64_t ctgEnd; // end to parse, us
|
||||||
int64_t semanticEnd;
|
int64_t semanticEnd;
|
||||||
int64_t planEnd;
|
int64_t planEnd;
|
||||||
|
int64_t resultReady;
|
||||||
int64_t execEnd;
|
int64_t execEnd;
|
||||||
int64_t send; // start to send to server, us
|
int64_t send; // start to send to server, us
|
||||||
int64_t rsp; // receive response from server, us
|
int64_t rsp; // receive response from server, us
|
||||||
|
|
|
@ -76,19 +76,19 @@ static void deregisterRequest(SRequestObj *pRequest) {
|
||||||
pRequest->self, pTscObj->id, pRequest->requestId, duration / 1000, num, currentInst);
|
pRequest->self, pTscObj->id, pRequest->requestId, duration / 1000, num, currentInst);
|
||||||
|
|
||||||
if (QUERY_NODE_VNODE_MODIF_STMT == pRequest->stmtType) {
|
if (QUERY_NODE_VNODE_MODIF_STMT == pRequest->stmtType) {
|
||||||
tscPerf("insert duration %" PRId64 "us: syntax:%" PRId64 "us, ctg:%" PRId64 "us, semantic:%" PRId64 "us, exec:%" PRId64 "us",
|
tscPerf("insert duration %" PRId64 "us: syntax:%" PRId64 "us, ctg:%" PRId64 "us, semantic:%" PRId64
|
||||||
|
"us, exec:%" PRId64 "us",
|
||||||
duration, pRequest->metric.syntaxEnd - pRequest->metric.syntaxStart,
|
duration, pRequest->metric.syntaxEnd - pRequest->metric.syntaxStart,
|
||||||
pRequest->metric.ctgEnd - pRequest->metric.ctgStart,
|
pRequest->metric.ctgEnd - pRequest->metric.ctgStart, pRequest->metric.semanticEnd - pRequest->metric.ctgEnd,
|
||||||
pRequest->metric.semanticEnd - pRequest->metric.ctgEnd,
|
|
||||||
pRequest->metric.execEnd - pRequest->metric.semanticEnd);
|
pRequest->metric.execEnd - pRequest->metric.semanticEnd);
|
||||||
atomic_add_fetch_64((int64_t *)&pActivity->insertElapsedTime, duration);
|
atomic_add_fetch_64((int64_t *)&pActivity->insertElapsedTime, duration);
|
||||||
} else if (QUERY_NODE_SELECT_STMT == pRequest->stmtType) {
|
} else if (QUERY_NODE_SELECT_STMT == pRequest->stmtType) {
|
||||||
tscPerf("select duration %" PRId64 "us: syntax:%" PRId64 "us, ctg:%" PRId64 "us, semantic:%" PRId64 "us, planner:%" PRId64 "us, exec:%" PRId64 "us",
|
tscPerf("select duration %" PRId64 "us: syntax:%" PRId64 "us, ctg:%" PRId64 "us, semantic:%" PRId64
|
||||||
|
"us, planner:%" PRId64 "us, exec:%" PRId64 "us",
|
||||||
duration, pRequest->metric.syntaxEnd - pRequest->metric.syntaxStart,
|
duration, pRequest->metric.syntaxEnd - pRequest->metric.syntaxStart,
|
||||||
pRequest->metric.ctgEnd - pRequest->metric.ctgStart,
|
pRequest->metric.ctgEnd - pRequest->metric.ctgStart, pRequest->metric.semanticEnd - pRequest->metric.ctgEnd,
|
||||||
pRequest->metric.semanticEnd - pRequest->metric.ctgEnd,
|
|
||||||
pRequest->metric.planEnd - pRequest->metric.semanticEnd,
|
pRequest->metric.planEnd - pRequest->metric.semanticEnd,
|
||||||
nowUs - pRequest->metric.semanticEnd);
|
pRequest->metric.resultReady - pRequest->metric.planEnd);
|
||||||
atomic_add_fetch_64((int64_t *)&pActivity->queryElapsedTime, duration);
|
atomic_add_fetch_64((int64_t *)&pActivity->queryElapsedTime, duration);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -851,6 +851,8 @@ void schedulerExecCb(SExecResult* pResult, void* param, int32_t code) {
|
||||||
SRequestObj* pRequest = (SRequestObj*)param;
|
SRequestObj* pRequest = (SRequestObj*)param;
|
||||||
pRequest->code = code;
|
pRequest->code = code;
|
||||||
|
|
||||||
|
pRequest->metric.resultReady = taosGetTimestampUs();
|
||||||
|
|
||||||
if (pResult) {
|
if (pResult) {
|
||||||
memcpy(&pRequest->body.resInfo.execRes, pResult, sizeof(*pResult));
|
memcpy(&pRequest->body.resInfo.execRes, pResult, sizeof(*pResult));
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue