fix:[TD-30769]make monitorInterval effect right now
This commit is contained in:
parent
4d77d321df
commit
e73f6ba47e
|
@ -19,6 +19,7 @@
|
||||||
#include "scheduler.h"
|
#include "scheduler.h"
|
||||||
#include "trpc.h"
|
#include "trpc.h"
|
||||||
#include "tglobal.h"
|
#include "tglobal.h"
|
||||||
|
#include "clientMonitor.h"
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
union {
|
union {
|
||||||
|
@ -546,7 +547,14 @@ static int32_t hbAsyncCallBack(void *param, SDataBuf *pMsg, int32_t code) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SAppInstInfo *pInst = pAppHbMgr->pAppInstInfo;
|
SAppInstInfo *pInst = pAppHbMgr->pAppInstInfo;
|
||||||
|
int32_t oldInterval = pInst->monitorParas.tsMonitorInterval;
|
||||||
pInst->monitorParas = pRsp.monitorParas;
|
pInst->monitorParas = pRsp.monitorParas;
|
||||||
|
if(oldInterval > pInst->monitorParas.tsMonitorInterval){
|
||||||
|
char* value = taosStrdup("");
|
||||||
|
if(monitorPutData2MonitorQueue(pInst->clusterId, value) < 0){
|
||||||
|
taosMemoryFree(value);
|
||||||
|
}
|
||||||
|
}
|
||||||
tscDebug("[monitor] paras from hb, clusterId:%" PRIx64 " monitorParas threshold:%d scope:%d",
|
tscDebug("[monitor] paras from hb, clusterId:%" PRIx64 " monitorParas threshold:%d scope:%d",
|
||||||
pInst->clusterId, pRsp.monitorParas.tsSlowLogThreshold, pRsp.monitorParas.tsSlowLogScope);
|
pInst->clusterId, pRsp.monitorParas.tsSlowLogThreshold, pRsp.monitorParas.tsSlowLogScope);
|
||||||
|
|
||||||
|
|
|
@ -221,8 +221,8 @@ static void reportSendProcess(void* param, void* tmrId) {
|
||||||
|
|
||||||
SEpSet ep = getEpSet_s(&pInst->mgmtEp);
|
SEpSet ep = getEpSet_s(&pInst->mgmtEp);
|
||||||
generateClusterReport(pMonitor->registry, pInst->pTransporter, &ep);
|
generateClusterReport(pMonitor->registry, pInst->pTransporter, &ep);
|
||||||
taosRUnLockLatch(&monitorLock);
|
|
||||||
taosTmrReset(reportSendProcess, pInst->monitorParas.tsMonitorInterval * 1000, param, monitorTimer, &tmrId);
|
taosTmrReset(reportSendProcess, pInst->monitorParas.tsMonitorInterval * 1000, param, monitorTimer, &tmrId);
|
||||||
|
taosRUnLockLatch(&monitorLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sendAllSlowLog(){
|
static void sendAllSlowLog(){
|
||||||
|
@ -450,7 +450,7 @@ static void monitorFreeSlowLogData(MonitorSlowLogData* pData) {
|
||||||
static void monitorThreadFuncUnexpectedStopped(void) { atomic_store_32(&slowLogFlag, -1); }
|
static void monitorThreadFuncUnexpectedStopped(void) { atomic_store_32(&slowLogFlag, -1); }
|
||||||
|
|
||||||
static void reportSlowLog(void* param, void* tmrId) {
|
static void reportSlowLog(void* param, void* tmrId) {
|
||||||
taosRLockLatch(&monitorLock);
|
taosWLockLatch(&monitorLock);
|
||||||
if (atomic_load_32(&monitorFlag) == 1) {
|
if (atomic_load_32(&monitorFlag) == 1) {
|
||||||
taosRUnLockLatch(&monitorLock);
|
taosRUnLockLatch(&monitorLock);
|
||||||
return;
|
return;
|
||||||
|
@ -471,9 +471,11 @@ static void reportSlowLog(void* param, void* tmrId) {
|
||||||
|
|
||||||
SEpSet ep = getEpSet_s(&pInst->mgmtEp);
|
SEpSet ep = getEpSet_s(&pInst->mgmtEp);
|
||||||
monitorReadSendSlowLog((*(SlowLogClient**)tmp)->pFile, pInst->pTransporter, &ep);
|
monitorReadSendSlowLog((*(SlowLogClient**)tmp)->pFile, pInst->pTransporter, &ep);
|
||||||
taosRUnLockLatch(&monitorLock);
|
|
||||||
|
|
||||||
taosTmrReset(reportSlowLog, pInst->monitorParas.tsMonitorInterval * 1000, param, monitorTimer, &tmrId);
|
if((*(SlowLogClient**)tmp)->timer == tmrId){
|
||||||
|
taosTmrReset(reportSlowLog, pInst->monitorParas.tsMonitorInterval * 1000, param, monitorTimer, &(*(SlowLogClient**)tmp)->timer);
|
||||||
|
}
|
||||||
|
taosWUnLockLatch(&monitorLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void monitorWriteSlowLog2File(MonitorSlowLogData* slowLogData, char *tmpPath){
|
static void monitorWriteSlowLog2File(MonitorSlowLogData* slowLogData, char *tmpPath){
|
||||||
|
@ -535,6 +537,23 @@ FAILED:
|
||||||
taosWUnLockLatch(&monitorLock);
|
taosWUnLockLatch(&monitorLock);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void restartReportTimer(int64_t clusterId){
|
||||||
|
taosWLockLatch(&monitorLock);
|
||||||
|
|
||||||
|
void* tmp = taosHashGet(monitorSlowLogHash, &clusterId, LONG_BYTES);
|
||||||
|
if(tmp){
|
||||||
|
taosTmrStopA(&(*(SlowLogClient**)tmp)->timer);
|
||||||
|
SAppInstInfo* pInst = getAppInstByClusterId(clusterId);
|
||||||
|
if(pInst == NULL){
|
||||||
|
uError("failed to get app inst, clusterId:%"PRIx64, clusterId);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
(*(SlowLogClient**)tmp)->timer = taosTmrStart(reportSlowLog, pInst->monitorParas.tsMonitorInterval * 1000, (void*)clusterId, monitorTimer);
|
||||||
|
|
||||||
|
}
|
||||||
|
taosWUnLockLatch(&monitorLock);
|
||||||
|
}
|
||||||
|
|
||||||
static void* monitorThreadFunc(void *param){
|
static void* monitorThreadFunc(void *param){
|
||||||
setThreadName("client-monitor-slowlog");
|
setThreadName("client-monitor-slowlog");
|
||||||
|
|
||||||
|
@ -579,7 +598,9 @@ static void* monitorThreadFunc(void *param){
|
||||||
uDebug("[monitor] read slow log data from queue, clusterId:%" PRIx64 " value:%s", slowLogData->clusterId, slowLogData->value);
|
uDebug("[monitor] read slow log data from queue, clusterId:%" PRIx64 " value:%s", slowLogData->clusterId, slowLogData->value);
|
||||||
if (slowLogData->value == NULL){
|
if (slowLogData->value == NULL){
|
||||||
monitorSendAllSlowLogFromTempDir(slowLogData->clusterId);
|
monitorSendAllSlowLogFromTempDir(slowLogData->clusterId);
|
||||||
}else{
|
} else if(strlen(slowLogData->value) == 0){
|
||||||
|
restartReportTimer(slowLogData->clusterId);
|
||||||
|
} else{
|
||||||
monitorWriteSlowLog2File(slowLogData, tmpPath);
|
monitorWriteSlowLog2File(slowLogData, tmpPath);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue