get tfs monitor info
This commit is contained in:
parent
cc82966e2e
commit
6cfff92b21
|
@ -17,6 +17,7 @@
|
|||
#define _TD_TFS_H_
|
||||
|
||||
#include "tdef.h"
|
||||
#include "monitor.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
|
@ -237,6 +238,14 @@ const STfsFile *tfsReaddir(STfsDir *pDir);
|
|||
*/
|
||||
void tfsClosedir(STfsDir *pDir);
|
||||
|
||||
/**
|
||||
* @brief Get disk info of tfs.
|
||||
*
|
||||
* @param pTfs The fs object.
|
||||
* @param pInfo The info object.
|
||||
*/
|
||||
int32_t tfsGetMonitorInfo(STfs *pTfs, SMonDiskInfo *pInfo);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -31,7 +31,7 @@ typedef struct {
|
|||
SDnode *pDnode;
|
||||
STaosQueue *queue;
|
||||
union {
|
||||
SQWorkerPool pool;
|
||||
SQWorkerPool pool;
|
||||
SWWorkerPool mpool;
|
||||
};
|
||||
} SDnodeWorker;
|
||||
|
@ -137,8 +137,7 @@ typedef struct SDnode {
|
|||
SStartupReq startup;
|
||||
} SDnode;
|
||||
|
||||
|
||||
int32_t dndGetDiskInfo(SDnode *pDnode, SMonDiskInfo *pInfo);
|
||||
int32_t dndGetMonitorDiskInfo(SDnode *pDnode, SMonDiskInfo *pInfo);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
|
|
@ -324,4 +324,11 @@ void dndCleanup() {
|
|||
dInfo("dnode env is cleaned up");
|
||||
}
|
||||
|
||||
int32_t dndGetDiskInfo(SDnode *pDnode, SMonDiskInfo *pInfo) { return 0; }
|
||||
int32_t dndGetMonitorDiskInfo(SDnode *pDnode, SMonDiskInfo *pInfo) {
|
||||
tstrncpy(pInfo->logdir.name, tsLogDir, sizeof(pInfo->logdir.name));
|
||||
pInfo->logdir.size = tsLogSpace.size;
|
||||
tstrncpy(pInfo->tempdir.name, tsTempDir, sizeof(pInfo->tempdir.name));
|
||||
pInfo->tempdir.size = tsTempSpace.size;
|
||||
|
||||
return tfsGetMonitorInfo(pDnode->pTfs, pInfo);
|
||||
}
|
|
@ -474,13 +474,13 @@ void dndProcessStartupReq(SDnode *pDnode, SRpcMsg *pReq) {
|
|||
rpcSendResponse(&rpcRsp);
|
||||
}
|
||||
|
||||
static int32_t dndGetBasicInfo(SDnode *pDnode, SMonBasicInfo *pInfo) {
|
||||
static int32_t dndGetMonitorBasicInfo(SDnode *pDnode, SMonBasicInfo *pInfo) {
|
||||
pInfo->dnode_id = dndGetDnodeId(pDnode);
|
||||
tstrncpy(pInfo->dnode_ep, tsLocalEp, TSDB_EP_LEN);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int32_t dndGetDnodeInfo(SDnode *pDnode, SMonDnodeInfo *pInfo) { return 0; }
|
||||
static int32_t dndGetMonitorDnodeInfo(SDnode *pDnode, SMonDnodeInfo *pInfo) { return 0; }
|
||||
|
||||
static void dndSendMonitorReport(SDnode *pDnode) {
|
||||
if (!tsEnableMonitor || tsMonitorFqdn[0] == 0 || tsMonitorPort == 0) return;
|
||||
|
@ -490,7 +490,7 @@ static void dndSendMonitorReport(SDnode *pDnode) {
|
|||
if (pMonitor == NULL) return;
|
||||
|
||||
SMonBasicInfo basicInfo = {0};
|
||||
if (dndGetBasicInfo(pDnode, &basicInfo) == 0) {
|
||||
if (dndGetMonitorBasicInfo(pDnode, &basicInfo) == 0) {
|
||||
monSetBasicInfo(pMonitor, &basicInfo);
|
||||
}
|
||||
|
||||
|
@ -504,15 +504,20 @@ static void dndSendMonitorReport(SDnode *pDnode) {
|
|||
}
|
||||
|
||||
SMonDnodeInfo dnodeInfo = {0};
|
||||
if (dndGetDnodeInfo(pDnode, &dnodeInfo) == 0) {
|
||||
if (dndGetMonitorDnodeInfo(pDnode, &dnodeInfo) == 0) {
|
||||
monSetDnodeInfo(pMonitor, &dnodeInfo);
|
||||
}
|
||||
|
||||
SMonDiskInfo diskInfo = {0};
|
||||
if (dndGetDiskInfo(pDnode, &diskInfo) == 0) {
|
||||
if (dndGetMonitorDiskInfo(pDnode, &diskInfo) == 0) {
|
||||
monSetDiskInfo(pMonitor, &diskInfo);
|
||||
}
|
||||
|
||||
taosArrayDestroy(clusterInfo.dnodes);
|
||||
taosArrayDestroy(clusterInfo.mnodes);
|
||||
taosArrayDestroy(vgroupInfo.vgroups);
|
||||
taosArrayDestroy(diskInfo.datadirs);
|
||||
|
||||
monSendReport(pMonitor);
|
||||
monCleanupMonitorInfo(pMonitor);
|
||||
}
|
||||
|
|
|
@ -6,7 +6,7 @@ target_include_directories(
|
|||
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/inc"
|
||||
)
|
||||
|
||||
target_link_libraries(tfs os util common)
|
||||
target_link_libraries(tfs os util common monitor)
|
||||
|
||||
if(${BUILD_TEST})
|
||||
add_subdirectory(test)
|
||||
|
|
|
@ -544,3 +544,24 @@ static STfsDisk *tfsNextDisk(STfs *pTfs, SDiskIter *pIter) {
|
|||
|
||||
return pDisk;
|
||||
}
|
||||
|
||||
int32_t tfsGetMonitorInfo(STfs *pTfs, SMonDiskInfo *pInfo) {
|
||||
pInfo->datadirs = taosArrayInit(32, sizeof(SMonDiskDesc));
|
||||
if (pInfo->datadirs == NULL) return -1;
|
||||
|
||||
tfsUpdateSize(pTfs);
|
||||
|
||||
tfsLock(pTfs);
|
||||
for (int32_t level = 0; level < pTfs->nlevel; level++) {
|
||||
STfsTier *pTier = &pTfs->tiers[level];
|
||||
for (int32_t disk = 0; disk < pTier->ndisk; ++disk) {
|
||||
STfsDisk *pDisk = pTier->disks[disk];
|
||||
SMonDiskDesc dinfo = {0};
|
||||
dinfo.size = pDisk->size;
|
||||
dinfo.level = pDisk->level;
|
||||
tstrncpy(dinfo.name, pDisk->path, sizeof(dinfo.name));
|
||||
taosArrayPush(pInfo->datadirs, &dinfo);
|
||||
}
|
||||
}
|
||||
tfsUnLock(pTfs);
|
||||
}
|
Loading…
Reference in New Issue