summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfumingwei <[email protected]>2023-03-01 10:36:59 +0800
committerfumingwei <[email protected]>2023-03-01 10:36:59 +0800
commitad590711cf82079ebe6009ce117611818ffbb964 (patch)
tree99df4c39b93a0c108ce6537712b4418dde99561e
parent65d87a9d6eca81a80520246582c60b17d66ad59b (diff)
bugfix:修改结构体存放位置
-rw-r--r--inc/fieldstat.h89
-rw-r--r--src/fieldstat.cpp72
-rw-r--r--test/fs2_test.cpp12
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]);
}