Browse Source

core: new core parameter stats_name_separator

Federico Cabiddu 5 years ago
parent
commit
3203a6572b

+ 2 - 0
src/core/cfg.lex

@@ -346,6 +346,7 @@ IP_FREE_BIND		ip_free_bind|ipfreebind|ip_nonlocal_bind
 
 PORT	port
 STAT	statistics
+STATS_NAMESEP	stats_name_separator
 MAXBUFFER maxbuffer
 SQL_BUFFER_SIZE sql_buffer_size
 CHILDREN children
@@ -793,6 +794,7 @@ IMPORTFILE      "import_file"
 <INITIAL>{IP_FREE_BIND}	{ count(); yylval.strval=yytext; return IP_FREE_BIND; }
 <INITIAL>{PORT}	{ count(); yylval.strval=yytext; return PORT; }
 <INITIAL>{STAT}	{ count(); yylval.strval=yytext; return STAT; }
+<INITIAL>{STATS_NAMESEP}	{ count(); yylval.strval=yytext; return STATS_NAMESEP; }
 <INITIAL>{MAXBUFFER}	{ count(); yylval.strval=yytext; return MAXBUFFER; }
 <INITIAL>{SQL_BUFFER_SIZE}	{ count(); yylval.strval=yytext; return SQL_BUFFER_SIZE; }
 <INITIAL>{CHILDREN}	{ count(); yylval.strval=yytext; return CHILDREN; }

+ 3 - 0
src/core/cfg.y

@@ -374,6 +374,7 @@ extern char *default_routename;
 
 %token PORT
 %token STAT
+%token STATS_NAMESEP
 %token CHILDREN
 %token SOCKET_WORKERS
 %token ASYNC_WORKERS
@@ -916,6 +917,8 @@ assign_stm:
 	| PORT EQUAL error    { yyerror("number expected"); }
 	| CHILDREN EQUAL NUMBER { children_no=$3; }
 	| CHILDREN EQUAL error { yyerror("number expected"); }
+	| STATS_NAMESEP EQUAL STRING { default_core_cfg.stats_name_separator=$3; }
+	| STATS_NAMESEP EQUAL error { yyerror("string value expected"); }
 	| SOCKET_WORKERS EQUAL NUMBER { socket_workers=$3; }
 	| SOCKET_WORKERS EQUAL error { yyerror("number expected"); }
 	| ASYNC_WORKERS EQUAL NUMBER { async_task_set_workers($3); }

+ 3 - 0
src/core/cfg_core.c

@@ -60,6 +60,7 @@ struct cfg_group_core default_core_cfg = {
 	L_WARN, 	/*!<  print only msg. < L_WARN */
 	LOG_DAEMON,	/*!< log_facility -- see syslog(3) */
 	L_DBG+1,    /*!< memdbg */
+  KSR_STATS_NAMESEP, /*  stats_name_separator */
 #ifdef USE_DST_BLACKLIST
 	/* blacklist */
 	0, /*!< dst blacklist is disabled by default */
@@ -185,6 +186,8 @@ cfg_def_t core_cfg_def[] = {
 		"syslog facility, see \"man 3 syslog\""},
 	{"memdbg",		CFG_VAR_INT|CFG_ATOMIC,	0, 0, 0, 0,
 		"log level for memory debugging messages"},
+	{"stats_name_separator",	CFG_VAR_STRING,	0, 0, 0, 0,
+		"separator used for building stats names"},
 #ifdef USE_DST_BLACKLIST
 	/* blacklist */
 	{"use_dst_blacklist",	CFG_VAR_INT,	0, 1, use_dst_blacklist_fixup, 0,

+ 1 - 0
src/core/cfg_core.h

@@ -48,6 +48,7 @@ struct cfg_group_core {
 	int	debug;
 	int	log_facility;
 	int memdbg; /*!< log level for memory debugging messages */
+  char *stats_name_separator;
 #ifdef USE_DST_BLACKLIST
 	/* blacklist */
 	int	use_dst_blacklist; /*!< 1 if blacklist is enabled */

+ 1 - 1
src/core/config.h

@@ -211,6 +211,6 @@
 
 #define DEFAULT_MAX_WHILE_LOOPS 100		/*!< Maximum allowed iterations for a while (to catch runaways) */
 
-#define KSR_STATS_NAMESEP '_' 
+#define KSR_STATS_NAMESEP "_"
 
 #endif

+ 1 - 1
src/modules/ims_usrloc_pcscf/udomain.c

@@ -82,7 +82,7 @@ static char *build_stat_name( str* domain, char *var_name)
 	}
 	memcpy( s, domain->s, domain->len);
 	p = s + domain->len;
-	*(p++) = KSR_STATS_NAMESEP;
+	*(p++) = *cfg_get(core, core_cfg, stats_name_separator);
 	memcpy( p , var_name, strlen(var_name));
 	p += strlen(var_name);
 	*(p++) = 0;

+ 1 - 1
src/modules/p_usrloc/udomain.c

@@ -55,7 +55,7 @@ static char *build_stat_name( str* domain, char *var_name)
 	}
 	memcpy( s, domain->s, domain->len);
 	p = s + domain->len;
-	*(p++) = KSR_STATS_NAMESEP;
+	*(p++) = *cfg_get(core, core_cfg, stats_name_separator);
 	memcpy( p , var_name, strlen(var_name));
 	p += strlen(var_name);
 	*(p++) = 0;

+ 1 - 1
src/modules/usrloc/udomain.c

@@ -61,7 +61,7 @@ static char *build_stat_name( str* domain, char *var_name)
 	}
 	memcpy( s, domain->s, domain->len);
 	p = s + domain->len;
-	*(p++) = KSR_STATS_NAMESEP;
+	*(p++) = *cfg_get(core, core_cfg, stats_name_separator);
 	memcpy( p , var_name, strlen(var_name));
 	p += strlen(var_name);
 	*(p++) = 0;