diff options
| author | fumingwei <[email protected]> | 2023-03-24 22:05:09 +0800 |
|---|---|---|
| committer | fumingwei <[email protected]> | 2023-03-27 20:16:55 +0800 |
| commit | 45a6ce34addd9187d7123c03d3badd5fa6d30589 (patch) | |
| tree | 35401d8a6cab312eeb20075895802ebd6436a746 /test | |
| parent | e09e7f397145613f1776622a2219047b9066f3a5 (diff) | |
feature:重写line protocol output代码
Diffstat (limited to 'test')
| -rw-r--r-- | test/src/gtest_dynamic_fieldstat.cpp | 9 | ||||
| -rw-r--r-- | test/src/gtest_fieldstat.cpp | 93 |
2 files changed, 96 insertions, 6 deletions
diff --git a/test/src/gtest_dynamic_fieldstat.cpp b/test/src/gtest_dynamic_fieldstat.cpp index 6bdf643..669a980 100644 --- a/test/src/gtest_dynamic_fieldstat.cpp +++ b/test/src/gtest_dynamic_fieldstat.cpp @@ -80,11 +80,11 @@ TEST(FeildStatDynamicAPI, FieldStatDynamicInstanceSetPara) ret = fieldstat_dynamic_set_line_protocol_server(instance, "127.0.0.1", 8080); EXPECT_EQ(0, ret); - EXPECT_EQ(8080, instance->line_protocol_server_port); + EXPECT_EQ(8080, instance->line_protocol_output.server_port); ret = inet_pton(AF_INET, "127.0.0.1", (void *)&(input_ip)); EXPECT_EQ(1, ret); - EXPECT_EQ(input_ip, instance->line_protocol_server_ip); - EXPECT_NE(-1, instance->line_protocol_socket); + EXPECT_EQ(input_ip, instance->line_protocol_output.server_ip); + EXPECT_NE(-1, instance->line_protocol_output.send_socket); ret = fieldstat_dynamic_disable_background_thread(instance); EXPECT_EQ(0, ret); @@ -1065,8 +1065,7 @@ void parse_telegraf_cjson_output_not_equal(const char *compare) if(cjson_metric_str) { - ret = strcmp(cjson_metric_str, compare); - EXPECT_NE(0, ret); + EXPECT_STRNE(cjson_metric_str, compare); free(cjson_metric_str); cjson_metric_str = NULL; } diff --git a/test/src/gtest_fieldstat.cpp b/test/src/gtest_fieldstat.cpp index da1e8a5..1435391 100644 --- a/test/src/gtest_fieldstat.cpp +++ b/test/src/gtest_fieldstat.cpp @@ -68,7 +68,7 @@ TEST(FeildStatAPI, FieldStatSetLineProtocolServer) EXPECT_EQ(0, ret_set_line_protocol_server); EXPECT_EQ(1, instance->line_protocol_output_enable); - EXPECT_NE(-1, instance->line_protocol_socket); + EXPECT_NE(-1, instance->line_protocol_output.send_socket); fieldstat_instance_free(instance); } @@ -250,6 +250,97 @@ TEST(FeildStatAPI, FieldStatLocalOutputFormatJson) fieldstat_instance_free(instance); } +TEST(FeildStatAPI, FieldStatLineProtocolOutputTableMetric) +{ + int metric_id = -1; + int ret = 0; + int n_loops = 1; + struct fieldstat_instance * instance = NULL; + int table_id = -1; + int output_metric_ids[54] = {0}; + const char *telegraf_output_file = "/tmp/metrics.out"; + FILE *fp; + char line[2048] = {0}; + cJSON *cjson_metric = NULL; + cJSON *cjson_tags = NULL; + const char *compare = "{\"fields\":{\"alert_bytes\":0,\"allow_conn_num\":0,\"allow_in_bytes\":0,\"allow_in_packets\":0,\"allow_out_bytes\":0,"\ + "\"allow_out_packets\":0,\"block_bytes\":0,\"close_conn_num\":0,\"default_conn_num\":0,\"default_in_bytes\":0,"\ + "\"default_in_packets\":0,\"default_out_bytes\":0,\"default_out_packets\":0,\"deny_conn_num\":0,\"deny_in_bytes\":0,"\ + "\"deny_in_packets\":0,\"deny_out_bytes\":0,\"deny_out_packets\":0,\"established_conn_num\":0,\"intercept_conn_num\":0,"\ + "\"intercept_in_bytes\":0,\"intercept_in_packets\":0,\"intercept_out_bytes\":0,\"intercept_out_packets\":0,"\ + "\"ipv4_in_bytes\":0,\"ipv4_in_packets\":0,\"ipv4_out_packetsipv4_out_bytes\":0,\"ipv6_in_bytes\":0,\"ipv6_in_packets\":0,"\ + "\"ipv6_out_bytes\":0,\"ipv6_out_packets\":0,\"maybe_pinning_num\":0,\"monitor_conn_num\":0,\"monitor_in_bytes\":0,"\ + "\"monitor_in_packets\":0,\"monitor_out_bytes\":0,\"monitor_out_packets\":0,\"new_conn_num\":1000,\"not_pinning_num\":0,"\ + "\"pinning_num\":0,\"tcp_conn_num\":0,\"tcp_in_bytes\":0,\"tcp_in_packets\":0,\"tcp_out_bytes\":0,\"tcp_out_packets\":0,"\ + "\"total_in_bytes\":0,\"total_in_packets\":0,\"total_out_bytes\":0,\"total_out_packets\":0,\"udp_conn_num\":0,"\ + "\"udp_in_bytes\":0,\"udp_in_packets\":0,\"udp_out_bytes\":0,\"udp_out_packets\":0},\"name\":\"TRAFFIC\","\ + "\"tags\":{\"app_name\":\"tsg_statistic\",\"table_name\":\"network_activity\"}}"; + char *cjson_metric_str = NULL; + + const char *table_column_name[] = {"new_conn_num", "established_conn_num", "close_conn_num", "total_in_bytes", "total_out_bytes", "total_in_packets", + "total_out_packets", "default_conn_num", "default_in_bytes", "default_out_bytes", "default_in_packets", "default_out_packets", "allow_conn_num", + "allow_in_bytes", "allow_out_bytes", "allow_in_packets", "allow_out_packets", "deny_conn_num", "deny_in_bytes", "deny_out_bytes", "deny_in_packets", + "deny_out_packets", "monitor_conn_num", "monitor_in_bytes", "monitor_out_bytes", "monitor_in_packets", "monitor_out_packets", "intercept_conn_num", + "intercept_in_bytes", "intercept_out_bytes", "intercept_in_packets", "intercept_out_packets", "ipv4_in_packets", "ipv4_in_bytes", "ipv4_out_packets" + "ipv4_out_bytes", "ipv6_in_packets", "ipv6_in_bytes", "ipv6_out_packets", "ipv6_out_bytes", "tcp_conn_num", "tcp_in_packets", "tcp_in_bytes", + "tcp_out_packets", "tcp_out_bytes", "udp_conn_num", "udp_in_packets", "udp_in_bytes", "udp_out_packets", "udp_out_bytes", "alert_bytes", "block_bytes", + "pinning_num", "maybe_pinning_num", "not_pinning_num"}; + enum field_type table_column_type[54] = {FIELD_TYPE_COUNTER}; + + instance = fieldstat_instance_new("tsg_statistic"); + EXPECT_STREQ("tsg_statistic", instance->name); + + table_id = fieldstat_register_table(instance, "network_activity", table_column_name, table_column_type, sizeof(table_column_name)/sizeof(table_column_name[0])); + EXPECT_EQ(0, table_id); + ret = fieldstat_register_table_row(instance, table_id, "TRAFFIC", NULL, 0, output_metric_ids); + EXPECT_EQ(0, ret); + + ret = fieldstat_set_line_protocol_server(instance, "127.0.0.1", 8600); + EXPECT_EQ(0, ret); + ret = fieldstat_disable_background_thread(instance); + EXPECT_EQ(0, ret); + fieldstat_instance_start(instance); + fieldstat_value_incrby(instance, output_metric_ids[0], 1000); + ret = system("cat /dev/null > /tmp/metrics.out"); + sleep(1); + fieldstat_passive_output(instance); + sleep(1); + fp = fopen(telegraf_output_file, "r"); + EXPECT_NE(nullptr, fp); + int n_line = 0; + + while(!feof(fp)) + { + if(NULL == fgets(line, sizeof(line), fp)) + { + continue; + } + cjson_metric = cJSON_Parse(line); + EXPECT_NE(nullptr, cjson_metric); + cJSON_DeleteItemFromObject(cjson_metric, "timestamp"); + + cjson_tags = cJSON_GetObjectItem(cjson_metric, "tags"); + EXPECT_NE(nullptr, cjson_tags); + cJSON_DeleteItemFromObject(cjson_tags, "host"); + cjson_metric_str = cJSON_PrintUnformatted(cjson_metric); + EXPECT_NE(nullptr, cjson_metric_str); + if(cjson_metric_str) + { + EXPECT_STREQ(compare, cjson_metric_str); + free(cjson_metric_str); + cjson_metric_str = NULL; + } + cJSON_Delete(cjson_metric); + n_line++; + } + fclose(fp); + EXPECT_EQ(n_line, n_loops); + + fieldstat_instance_free(instance); + +} + + int main(int argc, char *argv[]) { testing::InitGoogleTest(&argc, argv); |
