tglobalcfg.h 7.3 KB
Newer Older
H
hzcheng 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
/*
 * Copyright (c) 2019 TAOS Data, Inc. <jhtao@taosdata.com>
 *
 * This program is free software: you can use, redistribute, and/or modify
 * it under the terms of the GNU Affero General Public License, version 3
 * or later ("AGPL"), as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful, but WITHOUT
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 * FITNESS FOR A PARTICULAR PURPOSE.
 *
 * You should have received a copy of the GNU Affero General Public License
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
 */

#ifndef TDENGINE_TGLOBALCFG_H
#define TDENGINE_TGLOBALCFG_H

#ifdef __cplusplus
extern "C" {
#endif

#include <stdbool.h>
#include <stdint.h>
S
slguan 已提交
25
#include "taosdef.h"
H
hzcheng 已提交
26

S
slguan 已提交
27 28 29
extern int  (*startMonitor)();
extern void (*stopMonitor)();

H
hzcheng 已提交
30 31 32 33 34
// system info
extern int64_t tsPageSize;
extern int64_t tsOpenMax;
extern int64_t tsStreamMax;
extern int32_t tsNumOfCores;
S
slguan 已提交
35
extern int32_t tsAlternativeRole;
S
slguan 已提交
36 37 38 39 40 41 42 43 44
extern float   tsTotalLogDirGB;
extern float   tsTotalTmpDirGB;
extern float   tsTotalDataDirGB;
extern float   tsAvailLogDirGB;
extern float   tsAvailTmpDirGB;
extern float   tsAvailDataDirGB;
extern float   tsMinimalLogDirGB;
extern float   tsMinimalTmpDirGB;
extern float   tsMinimalDataDirGB;
H
hzcheng 已提交
45 46 47 48 49 50 51 52 53 54 55 56
extern int32_t tsTotalMemoryMB;
extern int32_t tsVersion;

extern int tscEmbedded;

extern int64_t tsMsPerDay[2];

extern char configDir[];
extern char tsDirectory[];
extern char dataDir[];
extern char logDir[];
extern char scriptDir[];
S
slguan 已提交
57
extern char osName[];
H
hzcheng 已提交
58 59 60

extern char  tsMasterIp[];
extern char  tsSecondIp[];
S
slguan 已提交
61
extern uint16_t tsMgmtDnodePort;
L
lihui 已提交
62 63 64 65 66
extern uint16_t tsMgmtShellPort;
extern uint16_t tsVnodeShellPort;
extern uint16_t tsVnodeVnodePort;
extern uint16_t tsMgmtMgmtPort;
extern uint16_t tsMgmtSyncPort;
H
hzcheng 已提交
67 68 69 70 71 72 73 74 75 76

extern int tsStatusInterval;
extern int tsShellActivityTimer;
extern int tsVnodePeerHBTimer;
extern int tsMgmtPeerHBTimer;
extern int tsMeterMetaKeepTimer;
extern int tsMetricMetaKeepTimer;

extern float tsNumOfThreadsPerCore;
extern float tsRatioOfQueryThreads;
S
slguan 已提交
77 78
extern char  tsPublicIp[];
extern char  tsPrivateIp[];
79 80 81
extern short tsNumOfVnodesPerCore;
extern short tsNumOfTotalVnodes;
extern short tsCheckHeaderFile;
S
slguan 已提交
82
extern uint32_t tsPublicIpInt;
H
Hongze Cheng 已提交
83
extern short tsAffectedRowsMod;
H
hzcheng 已提交
84 85 86 87 88 89 90 91 92

extern int tsSessionsPerVnode;
extern int tsAverageCacheBlocks;
extern int tsCacheBlockSize;

extern int   tsRowsInFileBlock;
extern float tsFileBlockMinPercent;

extern short tsNumOfBlocksPerMeter;
93 94 95 96 97
extern short tsCommitTime;  // seconds
extern short tsCommitLog;
extern short tsAsyncLog;
extern short tsCompression;
extern short tsDaysPerFile;
H
hzcheng 已提交
98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126
extern int   tsDaysToKeep;
extern int   tsReplications;

extern int  tsNumOfMPeers;
extern int  tsMaxShellConns;
extern int  tsMaxAccounts;
extern int  tsMaxUsers;
extern int  tsMaxDbs;
extern int  tsMaxTables;
extern int  tsMaxDnodes;
extern int  tsMaxVGroups;
extern char tsMgmtZone[];

extern char tsLocalIp[];
extern char tsDefaultDB[];
extern char tsDefaultUser[];
extern char tsDefaultPass[];
extern int  tsMaxMeterConnections;
extern int  tsMaxVnodeConnections;
extern int  tsMaxMgmtConnections;

extern int tsBalanceMonitorInterval;
extern int tsBalanceStartInterval;
extern int tsBalancePolicy;
extern int tsOfflineThreshold;
extern int tsMgmtEqualVnodeNum;

extern int tsEnableHttpModule;
extern int tsEnableMonitorModule;
127
extern int tsRestRowLimit;
S
slguan 已提交
128
extern int tsCompressMsgSize;
H
hjxilinx 已提交
129
extern int tsMaxSQLStringLen;
130
extern int tsMaxNumOfOrderedResults;
S
slguan 已提交
131 132

extern char tsSocketType[4];
H
hzcheng 已提交
133 134 135 136 137 138 139

extern int tsTimePrecision;
extern int tsMinSlidingTime;
extern int tsMinIntervalTime;
extern int tsMaxStreamComputDelay;
extern int tsStreamCompStartDelay;
extern int tsStreamCompRetryDelay;
H
hjxilinx 已提交
140
extern float tsStreamComputDelayRatio;   // the delayed computing ration of the whole time window
H
hzcheng 已提交
141 142 143 144 145

extern int     tsProjectExecInterval;
extern int64_t tsMaxRetentWindow;

extern char  tsHttpIp[];
L
lihui 已提交
146
extern uint16_t tsHttpPort;
H
hzcheng 已提交
147 148 149 150
extern int   tsHttpCacheSessions;
extern int   tsHttpSessionExpire;
extern int   tsHttpMaxThreads;
extern int   tsHttpEnableCompress;
S
slguan 已提交
151
extern int   tsHttpEnableRecordSql;
S
slguan 已提交
152
extern int   tsTelegrafUseFieldNum;
H
hzcheng 已提交
153

L
lihui 已提交
154
extern int   tsTscEnableRecordSql;
S
slguan 已提交
155
extern int   tsAnyIp;
S
slguan 已提交
156
extern int   tsIsCluster;
L
lihui 已提交
157

H
hzcheng 已提交
158 159 160 161 162
extern char tsMonitorDbName[];
extern char tsInternalPass[];
extern int  tsMonitorInterval;

extern int tsNumOfLogLines;
163 164 165 166 167 168 169 170 171 172 173 174 175
extern uint32_t ddebugFlag;
extern uint32_t mdebugFlag;
extern uint32_t cdebugFlag;
extern uint32_t jnidebugFlag;
extern uint32_t tmrDebugFlag;
extern uint32_t sdbDebugFlag;
extern uint32_t httpDebugFlag;
extern uint32_t monitorDebugFlag;
extern uint32_t uDebugFlag;
extern uint32_t rpcDebugFlag;
extern uint32_t debugFlag;
extern uint32_t odbcdebugFlag;
extern uint32_t qdebugFlag;
H
hzcheng 已提交
176

177 178
extern uint32_t taosMaxTmrCtrl;

H
hzcheng 已提交
179 180
extern int  tsRpcTimer;
extern int  tsRpcMaxTime;
181
extern int  tsRpcMaxUdpSize;
H
hzcheng 已提交
182 183 184 185
extern int  tsUdpDelay;
extern char version[];
extern char compatible_version[];
extern char gitinfo[];
L
lihui 已提交
186
extern char gitinfoOfInternal[];
H
hzcheng 已提交
187 188 189 190 191 192 193 194 195
extern char buildinfo[];

extern char tsTimezone[64];
extern char tsLocale[64];
extern char tsCharset[64];  // default encode string

//
void tsReadGlobalLogConfig();
bool tsReadGlobalConfig();
S
slguan 已提交
196
bool tsReadGlobalConfigSpec();
H
hzcheng 已提交
197 198
int tsCfgDynamicOptions(char *msg);
void tsPrintGlobalConfig();
S
slguan 已提交
199
void tsPrintGlobalConfigSpec();
H
hzcheng 已提交
200 201 202 203
void tsSetAllDebugFlag();
void tsSetTimeZone();
void tsSetLocale();
void tsInitGlobalConfig();
S
slguan 已提交
204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219
void tsExpandFilePath(char* option_name, char* input_value);

#define TSDB_CFG_CTYPE_B_CONFIG    1U   // can be configured from file
#define TSDB_CFG_CTYPE_B_SHOW      2U   // can displayed by "show configs" commands
#define TSDB_CFG_CTYPE_B_LOG       4U   // is a log type configuration
#define TSDB_CFG_CTYPE_B_CLIENT    8U   // can be displayed in the client log
#define TSDB_CFG_CTYPE_B_OPTION    16U  // can be configured by taos_options function
#define TSDB_CFG_CTYPE_B_NOT_PRINT 32U  // such as password
#define TSDB_CFG_CTYPE_B_LITE      64U  // is a lite type configuration
#define TSDB_CFG_CTYPE_B_CLUSTER   128U // is a cluster type configuration

#define TSDB_CFG_CSTATUS_NONE      0    // not configured
#define TSDB_CFG_CSTATUS_DEFAULT   1    // use system default value
#define TSDB_CFG_CSTATUS_FILE      2    // configured from file
#define TSDB_CFG_CSTATUS_OPTION    3    // configured by taos_options function
#define TSDB_CFG_CSTATUS_ARG       4    // configured by program argument
H
hzcheng 已提交
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256

enum {
  TSDB_CFG_VTYPE_SHORT,
  TSDB_CFG_VTYPE_INT,
  TSDB_CFG_VTYPE_UINT,
  TSDB_CFG_VTYPE_FLOAT,
  TSDB_CFG_VTYPE_STRING,
  TSDB_CFG_VTYPE_IPSTR,
  TSDB_CFG_VTYPE_DIRECTORY,
};

enum {
  TSDB_CFG_UTYPE_NONE,
  TSDB_CFG_UTYPE_PERCENT,
  TSDB_CFG_UTYPE_GB,
  TSDB_CFG_UTYPE_MB,
  TSDB_CFG_UTYPE_Mb,
  TSDB_CFG_UTYPE_BYTE,
  TSDB_CFG_UTYPE_SECOND,
  TSDB_CFG_UTYPE_MS
};

typedef struct {
  char *   option;
  void *   ptr;
  float    minValue;
  float    maxValue;
  int8_t   cfgType;
  int8_t   cfgStatus;
  int8_t   unitType;
  int8_t   valType;
  uint32_t ptrLength;
} SGlobalConfig;

extern SGlobalConfig *tsGlobalConfig;
extern int            tsGlobalConfigNum;
extern char *         tsCfgStatusStr[];
weixin_48148422's avatar
weixin_48148422 已提交
257
SGlobalConfig *tsGetConfigOption(const char *option);
H
hzcheng 已提交
258 259 260 261 262 263

#define TSDB_CFG_MAX_NUM    110
#define TSDB_CFG_PRINT_LEN  23
#define TSDB_CFG_OPTION_LEN 24
#define TSDB_CFG_VALUE_LEN  41

H
hjxilinx 已提交
264 265
#define NEEDTO_COMPRESSS_MSG(size) (tsCompressMsgSize != -1 && (size) > tsCompressMsgSize)

S
slguan 已提交
266
extern char          tsMgmtDirectory[];
S
#1177  
slguan 已提交
267 268


H
hzcheng 已提交
269 270 271 272 273
#ifdef __cplusplus
}
#endif

#endif  // TDENGINE_TGLOBALCFG_H