• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

taosdata / TDengine / #4488

12 Jul 2025 07:47AM UTC coverage: 62.207% (-0.7%) from 62.948%
#4488

push

travis-ci

web-flow
docs: update stream docs (#31822)

157961 of 324087 branches covered (48.74%)

Branch coverage included in aggregate %.

244465 of 322830 relevant lines covered (75.73%)

6561668.76 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

17.14
/source/dnode/mgmt/node_mgmt/src/dmMetrics.c
1
/*
2
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
3
 *
4
 * This program is free software: you can use, redistribute, and/or modify
5
 * it under the terms of the GNU Affero General Public License, version 3
6
 * or later ("AGPL"), as published by the Free Software Foundation.
7
 *
8
 * This program is distributed in the hope that it will be useful, but WITHOUT
9
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10
 * FITNESS FOR A PARTICULAR PURPOSE.
11
 *
12
 * You should have received a copy of the GNU Affero General Public License
13
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
14
 */
15

16
#define _DEFAULT_SOURCE
17
#include "dmMgmt.h"
18
#include "dmNodes.h"
19
#include "metrics.h"
20

21
static void collectDnodeMetricsInfo(SDnode *pDnode) {
×
22
  SRawDnodeMetrics rawMetrics = {0};
×
23

24
  rawMetrics.rpcQueueMemoryAllowed = tsQueueMemoryAllowed;
×
25
  rawMetrics.rpcQueueMemoryUsed = atomic_load_64(&tsQueueMemoryUsed);
×
26
  rawMetrics.applyMemoryAllowed = tsApplyMemoryAllowed;
×
27
  rawMetrics.applyMemoryUsed = atomic_load_64(&tsApplyMemoryUsed);
×
28

29
  int32_t code = addDnodeMetrics(&rawMetrics, dmGetClusterId(), pDnode->data.dnodeId, tsLocalEp);
×
30
  if (code != TSDB_CODE_SUCCESS) {
×
31
    dError("Failed to add dnode metrics, code: %d", code);
×
32
  }
33
}
×
34

35
static void collectWriteMetricsInfo(SDnode *pDnode) {
×
36
  SMgmtWrapper *pWrapper = &pDnode->wrappers[VNODE];
×
37
  if (dmMarkWrapper(pWrapper) == 0) {
×
38
    if (pWrapper->pMgmt != NULL) {
×
39
      vmUpdateMetricsInfo(pWrapper->pMgmt, dmGetClusterId());
×
40
    }
41
    dmReleaseWrapper(pWrapper);
×
42
  }
43
}
×
44

45
void dmSendMetricsReport() {
2,715✔
46
  if (!tsEnableMonitor || tsMonitorFqdn[0] == 0 || tsMonitorPort == 0 || !tsEnableMetrics) {
2,715!
47
    return;
2,715✔
48
  }
49
  SDnode *pDnode = dmInstance();
×
50
  if (pDnode == NULL) {
×
51
    return;
×
52
  }
53

54
  collectDnodeMetricsInfo(pDnode);
×
55
  collectWriteMetricsInfo(pDnode);
×
56

57
  // monitorfw automatically handles metrics reporting
58
}
59

60
void dmCleanExpiredMetrics(SDnode *pDnode) {
×
61
  SMgmtWrapper *pWrapper = &pDnode->wrappers[VNODE];
×
62
  if (dmMarkWrapper(pWrapper) == 0) {
×
63
    if (pWrapper->pMgmt != NULL) {
×
64
      vmCleanExpiredMetrics(pWrapper->pMgmt);
×
65
    }
66
  }
67
  dmReleaseWrapper(pWrapper);
×
68
}
×
69

70
void dmMetricsCleanExpiredSamples() {
2,715✔
71
  if (!tsEnableMonitor || tsMonitorFqdn[0] == 0 || tsMonitorPort == 0 || !tsEnableMetrics) {
2,715!
72
    return;
2,715✔
73
  }
74
  dTrace("clean metrics expired samples");
×
75

76
  SDnode *pDnode = dmInstance();
×
77
  dmCleanExpiredMetrics(pDnode);
×
78
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc