diff options
| author | fumingwei <[email protected]> | 2023-03-01 10:36:59 +0800 |
|---|---|---|
| committer | fumingwei <[email protected]> | 2023-03-01 10:36:59 +0800 |
| commit | ad590711cf82079ebe6009ce117611818ffbb964 (patch) | |
| tree | 99df4c39b93a0c108ce6537712b4418dde99561e | |
| parent | 65d87a9d6eca81a80520246582c60b17d66ad59b (diff) | |
bugfix:修改结构体存放位置
| -rw-r--r-- | inc/fieldstat.h | 89 | ||||
| -rw-r--r-- | src/fieldstat.cpp | 72 | ||||
| -rw-r--r-- | test/fs2_test.cpp | 12 |
3 files changed, 86 insertions, 87 deletions
diff --git a/inc/fieldstat.h b/inc/fieldstat.h index d8ba288..741f7a2 100644 --- a/inc/fieldstat.h +++ b/inc/fieldstat.h @@ -1,80 +1,11 @@ -#ifndef H_SCHEMA_STAT_H_INCLUDE -#define H_SCHEMA_STAT_H_INCLUDE +#pragma once #include <stdio.h> #include <time.h> #include <pthread.h> -#ifndef __cplusplus -#error("This file should be compiled with C++ compiler") -#endif - - -#define URL_MAX_LEN 2048 -#define LEN_IP_MAX 32 //?????? 32 from document -#define LEN_APP_NAME 32 -#define LEN_FORMAT_MAX 32 -#define LEN_PATH_MAX 256 -#define NUM_MAX_TABLE 64 -#define TABLE_COLUMN_SIZE 32 -#define UDP_PAYLOAD_SIZE 1460 - -struct fieldstat_global_prometheus -{ - unsigned short port; - char *url_path; -}; - -struct fieldstat_instance +#ifdef __cplusplus +extern "C" { - //char *statsd_server_ip; - char statsd_server_str_ip[LEN_IP_MAX]; - unsigned int statsd_server_ip; - unsigned short statsd_server_port; - int statsd_output_enable; - - char line_protocol_server_str_ip[LEN_IP_MAX]; - unsigned int line_protocol_server_ip; - unsigned short line_protocol_server_port; - int line_protocol_output_enable; - - char local_output_filename[LEN_PATH_MAX]; - char local_output_format[LEN_FORMAT_MAX]; - int local_output_enable; - - int background_thread_disable; //default:1 - int output_interval_s; //default:2 - char app_name[LEN_APP_NAME]; - int running; - - int metric_cnt; - int metric_size; - struct metric_t **metric; - struct{ - struct metric_t **column; - size_t column_size; - } table_metrics[NUM_MAX_TABLE]; - int index_table[NUM_MAX_TABLE][1024]; - int per_table_metric_number[NUM_MAX_TABLE]; - - int table_num; - int line_seq; - - int prometheus_output_enable; - - int counter_cnt; - int gauge_cnt; - int histogram_cnt; - int summary_cnt; - - struct timespec last_output_time; - - pthread_t cfg_mon_t; - char line_protocol_send_buff[UDP_PAYLOAD_SIZE]; - size_t line_protocol_send_buff_offset; - int line_protocol_socket; - - FILE* fp; -}; - +#endif enum field_type { FIELD_TYPE_COUNTER, @@ -83,10 +14,12 @@ enum field_type FIELD_TYPE_SUMMARY }; +struct fieldstat_global_prometheus; +struct fieldstat_instance; struct metric_id_list { - int num; - int id[TABLE_COLUMN_SIZE]; + int count; + int id[64]; }; /* @@ -127,6 +60,6 @@ int fieldstat_value_decrby(struct fieldstat_instance *instance, int field_id, lo void fieldstat_instance_start(struct fieldstat_instance *instance); void fieldstat_passive_output(struct fieldstat_instance *instance); - -#endif - +#ifdef __cplusplus +} +#endif
\ No newline at end of file diff --git a/src/fieldstat.cpp b/src/fieldstat.cpp index 5133dea..e28a751 100644 --- a/src/fieldstat.cpp +++ b/src/fieldstat.cpp @@ -49,6 +49,73 @@ static __attribute__((__used__)) const char * GIT_VERSION_UNKNOWN = NULL; #endif //endof Automatically generate the version number +#define URL_MAX_LEN 2048 +#define LEN_IP_MAX 32 //?????? 32 from document +#define LEN_APP_NAME 32 +#define LEN_FORMAT_MAX 32 +#define LEN_PATH_MAX 256 +#define NUM_MAX_TABLE 64 +#define TABLE_COLUMN_SIZE 32 +#define UDP_PAYLOAD_SIZE 1460 + +struct fieldstat_instance +{ + //char *statsd_server_ip; + char statsd_server_str_ip[LEN_IP_MAX]; + unsigned int statsd_server_ip; + unsigned short statsd_server_port; + int statsd_output_enable; + + char line_protocol_server_str_ip[LEN_IP_MAX]; + unsigned int line_protocol_server_ip; + unsigned short line_protocol_server_port; + int line_protocol_output_enable; + + char local_output_filename[LEN_PATH_MAX]; + char local_output_format[LEN_FORMAT_MAX]; + int local_output_enable; + + int background_thread_disable; //default:1 + int output_interval_s; //default:2 + char app_name[LEN_APP_NAME]; + int running; + + int metric_cnt; + int metric_size; + struct metric_t **metric; + struct{ + struct metric_t **column; + size_t column_size; + } table_metrics[NUM_MAX_TABLE]; + int index_table[NUM_MAX_TABLE][1024]; + int per_table_metric_number[NUM_MAX_TABLE]; + + int table_num; + int line_seq; + + int prometheus_output_enable; + + int counter_cnt; + int gauge_cnt; + int histogram_cnt; + int summary_cnt; + + struct timespec last_output_time; + + pthread_t cfg_mon_t; + char line_protocol_send_buff[UDP_PAYLOAD_SIZE]; + size_t line_protocol_send_buff_offset; + int line_protocol_socket; + + FILE* fp; +}; + +struct fieldstat_global_prometheus +{ + unsigned short port; + char *url_path; +}; + const char* draw_line="________________________________________________________________________________________________________________________________________________"; const char* draw_boundary="============================================================"; @@ -1103,10 +1170,9 @@ struct metric_id_list fieldstat_register_table_metrics(struct fieldstat_instance assert(0); break; } - if(table_column_size < TABLE_COLUMN_SIZE) + if(table_column_size < (int)sizeof(metric_id_list.id)) { - metric_id_list.id[metric_id_list.num ++] = metric_id; - printf("list_num:%d, metric_id:%d, name:%s\n",metric_id_list.num, metric_id, metric_choosen->field_name); + metric_id_list.id[metric_id_list.count ++] = metric_id; } } diff --git a/test/fs2_test.cpp b/test/fs2_test.cpp index 9db75f3..795e697 100644 --- a/test/fs2_test.cpp +++ b/test/fs2_test.cpp @@ -40,8 +40,8 @@ int main(int argc, char *argv[]) const char *tag_key4[] = {"A4","B4","C4"}; const char *tag_value4[] = {"a4","b4","c4"}; - const char *tag_key5[] = {"A5","B5","C5"}; - const char *tag_value5[] = {"a5","b5","c5"}; + //const char *tag_key5[] = {"A5","B5","C5"}; + //const char *tag_value5[] = {"a5","b5","c5"}; enum field_type table_type[] = {FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER, FIELD_TYPE_COUNTER}; const char *field_list[] = {"column_0", "colunm_1", "column_2"}; @@ -126,13 +126,13 @@ int main(int argc, char *argv[]) } id_list = fieldstat_register_table_metrics(test_instance, table_id, "line_0", tag_key2, tag_value2, sizeof(tag_key2)/sizeof(tag_key2[0])); - for(i = 0; i < id_list.num; i++) + for(i = 0; i < id_list.count; i++) { printf("%d\n", id_list.id[i]); } id_list = fieldstat_register_table_metrics(test_instance, table_id, "line_2", tag_key3, tag_value3, sizeof(tag_key3)/sizeof(tag_key3[0])); - for(i = 0; i < id_list.num; i++) + for(i = 0; i < id_list.count; i++) { printf("%d\n", id_list.id[i]); } @@ -144,8 +144,8 @@ int main(int argc, char *argv[]) } id_list = fieldstat_register_table_metrics(test_instance, table_id, "line_0", tag_key4, tag_value4, sizeof(tag_key4)/sizeof(tag_key4[0])); - printf("id_list.num:%d\n",id_list.num); - for(i = 0; i < id_list.num; i++) + printf("id_list.num:%d\n",id_list.count); + for(i = 0; i < id_list.count; i++) { printf("%d\n", id_list.id[i]); } |
