提交 e9291a00 编写于 作者: G Ganlin Zhao

[TD-6452]<feature>: taoskeeper metrics collector phase 1 taosd implementation

上级 bea11544
...@@ -77,6 +77,7 @@ typedef struct { ...@@ -77,6 +77,7 @@ typedef struct {
} SMonConn; } SMonConn;
static SMonConn tsMonitor = {0}; static SMonConn tsMonitor = {0};
static bool monHasMnodeMaster = false;
static void monSaveSystemInfo(); static void monSaveSystemInfo();
static void monSaveClusterInfo(); static void monSaveClusterInfo();
static void monSaveDnodesInfo(); static void monSaveDnodesInfo();
...@@ -190,8 +191,11 @@ static void *monThreadFunc(void *param) { ...@@ -190,8 +191,11 @@ static void *monThreadFunc(void *param) {
if (tsMonitor.state == MON_STATE_INITED) { if (tsMonitor.state == MON_STATE_INITED) {
if (accessTimes % tsMonitorInterval == 0 || accessTimes == 1) { if (accessTimes % tsMonitorInterval == 0 || accessTimes == 1) {
monSaveSystemInfo(); monSaveSystemInfo();
monSaveClusterInfo();
monSaveDnodesInfo(); monSaveDnodesInfo();
if (monHasMnodeMaster) {
//taosd only has mnode master will write cluster info
monSaveClusterInfo();
}
monSaveVgroupsInfo(); monSaveVgroupsInfo();
monSaveSlowQueryInfo(); monSaveSlowQueryInfo();
} }
...@@ -718,7 +722,7 @@ static int32_t monBuildDnodeVnodesSql(char *sql) { ...@@ -718,7 +722,7 @@ static int32_t monBuildDnodeVnodesSql(char *sql) {
} }
static int32_t monBuildDnodeMnodeSql(char *sql) { static int32_t monBuildDnodeMnodeSql(char *sql) {
bool has_mnode = false; bool has_mnode = false, has_mnode_row;
TAOS_RES *result = taos_query(tsMonitor.conn, "show mnodes"); TAOS_RES *result = taos_query(tsMonitor.conn, "show mnodes");
TAOS_ROW row; TAOS_ROW row;
...@@ -726,11 +730,20 @@ static int32_t monBuildDnodeMnodeSql(char *sql) { ...@@ -726,11 +730,20 @@ static int32_t monBuildDnodeMnodeSql(char *sql) {
TAOS_FIELD *fields = taos_fetch_fields(result); TAOS_FIELD *fields = taos_fetch_fields(result);
while ((row = taos_fetch_row(result))) { while ((row = taos_fetch_row(result))) {
has_mnode_row = false;
for (int i = 0; i < num_fields; ++i) { for (int i = 0; i < num_fields; ++i) {
if (strcmp(fields[i].name, "end_point") == 0) { if (strcmp(fields[i].name, "end_point") == 0) {
int32_t charLen = monGetRowElemCharLen(fields[i], (char *)row[i]); int32_t charLen = monGetRowElemCharLen(fields[i], (char *)row[i]);
if (strncmp((char *)row[i], tsLocalEp, charLen) == 0) { if (strncmp((char *)row[i], tsLocalEp, charLen) == 0) {
has_mnode = true; has_mnode = true;
has_mnode_row = true;
}
} else if (strcmp(fields[i].name, "role") == 0) {
int32_t charLen = monGetRowElemCharLen(fields[i], (char *)row[i]);
if (strncmp((char *)row[i], "master", charLen) == 0) {
if (has_mnode_row) {
monHasMnodeMaster = true;
}
} }
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册