Explorar o código

Merge pull request #2304 from kamailio/grumvalski/usrloc_stats

usrloc: change "-" for "_" in stats name to be prometheus compliant
Federico Cabiddu %!s(int64=5) %!d(string=hai) anos
pai
achega
f6c6881789

+ 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 { ksr_stats_namesep=$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); }

+ 1 - 0
src/core/counters.c

@@ -86,6 +86,7 @@ counter_array_t* _cnts_vals = 0;
 int _cnts_row_len; /* number of elements per row */
 static int cnts_no; /* number of registered counters */
 static int cnts_max_rows; /* set to 0 if not yet fully init */
+char *ksr_stats_namesep = KSR_STATS_NAMESEP;
 
 
 int counters_initialized(void)

+ 2 - 0
src/core/counters.h

@@ -39,6 +39,8 @@
 /* counter flags */
 #define CNT_F_NO_RESET 1 /* don't reset */
 
+#define KSR_STATS_NAMESEP "_"
+
 typedef long counter_val_t;
 
 /* use a struct. to force errors on direct access attempts */

+ 2 - 0
src/core/globals.h

@@ -217,6 +217,8 @@ extern str _ksr_xavp_via_fields;
 
 extern char *_sr_uri_host_extra_chars;
 
+extern char *ksr_stats_namesep;
+
 #ifdef USE_DNS_CACHE
 extern int dns_cache_init; /* if 0, the DNS cache is not initialized at startup */
 extern unsigned int dns_timer_interval; /* gc timer interval in s */

+ 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++) = '-';
+	*(p++) = *ksr_stats_namesep;
 	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++) = '-';
+	*(p++) = *ksr_stats_namesep;
 	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++) = '-';
+	*(p++) = *ksr_stats_namesep;
 	memcpy( p , var_name, strlen(var_name));
 	p += strlen(var_name);
 	*(p++) = 0;