get tfs monitor info
This commit is contained in:
parent
cc82966e2e
commit
6cfff92b21
|
@ -17,6 +17,7 @@
|
||||||
#define _TD_TFS_H_
|
#define _TD_TFS_H_
|
||||||
|
|
||||||
#include "tdef.h"
|
#include "tdef.h"
|
||||||
|
#include "monitor.h"
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
|
@ -237,6 +238,14 @@ const STfsFile *tfsReaddir(STfsDir *pDir);
|
||||||
*/
|
*/
|
||||||
void tfsClosedir(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
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -137,8 +137,7 @@ typedef struct SDnode {
|
||||||
SStartupReq startup;
|
SStartupReq startup;
|
||||||
} SDnode;
|
} SDnode;
|
||||||
|
|
||||||
|
int32_t dndGetMonitorDiskInfo(SDnode *pDnode, SMonDiskInfo *pInfo);
|
||||||
int32_t dndGetDiskInfo(SDnode *pDnode, SMonDiskInfo *pInfo);
|
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
|
|
|
@ -324,4 +324,11 @@ void dndCleanup() {
|
||||||
dInfo("dnode env is cleaned up");
|
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);
|
rpcSendResponse(&rpcRsp);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int32_t dndGetBasicInfo(SDnode *pDnode, SMonBasicInfo *pInfo) {
|
static int32_t dndGetMonitorBasicInfo(SDnode *pDnode, SMonBasicInfo *pInfo) {
|
||||||
pInfo->dnode_id = dndGetDnodeId(pDnode);
|
pInfo->dnode_id = dndGetDnodeId(pDnode);
|
||||||
tstrncpy(pInfo->dnode_ep, tsLocalEp, TSDB_EP_LEN);
|
tstrncpy(pInfo->dnode_ep, tsLocalEp, TSDB_EP_LEN);
|
||||||
return 0;
|
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) {
|
static void dndSendMonitorReport(SDnode *pDnode) {
|
||||||
if (!tsEnableMonitor || tsMonitorFqdn[0] == 0 || tsMonitorPort == 0) return;
|
if (!tsEnableMonitor || tsMonitorFqdn[0] == 0 || tsMonitorPort == 0) return;
|
||||||
|
@ -490,7 +490,7 @@ static void dndSendMonitorReport(SDnode *pDnode) {
|
||||||
if (pMonitor == NULL) return;
|
if (pMonitor == NULL) return;
|
||||||
|
|
||||||
SMonBasicInfo basicInfo = {0};
|
SMonBasicInfo basicInfo = {0};
|
||||||
if (dndGetBasicInfo(pDnode, &basicInfo) == 0) {
|
if (dndGetMonitorBasicInfo(pDnode, &basicInfo) == 0) {
|
||||||
monSetBasicInfo(pMonitor, &basicInfo);
|
monSetBasicInfo(pMonitor, &basicInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -504,15 +504,20 @@ static void dndSendMonitorReport(SDnode *pDnode) {
|
||||||
}
|
}
|
||||||
|
|
||||||
SMonDnodeInfo dnodeInfo = {0};
|
SMonDnodeInfo dnodeInfo = {0};
|
||||||
if (dndGetDnodeInfo(pDnode, &dnodeInfo) == 0) {
|
if (dndGetMonitorDnodeInfo(pDnode, &dnodeInfo) == 0) {
|
||||||
monSetDnodeInfo(pMonitor, &dnodeInfo);
|
monSetDnodeInfo(pMonitor, &dnodeInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
SMonDiskInfo diskInfo = {0};
|
SMonDiskInfo diskInfo = {0};
|
||||||
if (dndGetDiskInfo(pDnode, &diskInfo) == 0) {
|
if (dndGetMonitorDiskInfo(pDnode, &diskInfo) == 0) {
|
||||||
monSetDiskInfo(pMonitor, &diskInfo);
|
monSetDiskInfo(pMonitor, &diskInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
taosArrayDestroy(clusterInfo.dnodes);
|
||||||
|
taosArrayDestroy(clusterInfo.mnodes);
|
||||||
|
taosArrayDestroy(vgroupInfo.vgroups);
|
||||||
|
taosArrayDestroy(diskInfo.datadirs);
|
||||||
|
|
||||||
monSendReport(pMonitor);
|
monSendReport(pMonitor);
|
||||||
monCleanupMonitorInfo(pMonitor);
|
monCleanupMonitorInfo(pMonitor);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@ target_include_directories(
|
||||||
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/inc"
|
PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/inc"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_link_libraries(tfs os util common)
|
target_link_libraries(tfs os util common monitor)
|
||||||
|
|
||||||
if(${BUILD_TEST})
|
if(${BUILD_TEST})
|
||||||
add_subdirectory(test)
|
add_subdirectory(test)
|
||||||
|
|
|
@ -544,3 +544,24 @@ static STfsDisk *tfsNextDisk(STfs *pTfs, SDiskIter *pIter) {
|
||||||
|
|
||||||
return pDisk;
|
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