summaryrefslogtreecommitdiff
path: root/src/line_protocol_output.cpp
diff options
context:
space:
mode:
authorfumingwei <[email protected]>2023-05-04 17:14:26 +0800
committerfumingwei <[email protected]>2023-05-11 20:20:44 +0800
commite414bbf8a5255b6af6f22a3fd99331aec239c8c8 (patch)
treeff2b8e9d87798bbeee7d0574549aa60f8b6ef81d /src/line_protocol_output.cpp
parenta31d2c750f1b3fa2a0b718505ae528232cab19a3 (diff)
feature:1.修改文件输出格式2.新增设置metric ratio和invisible属性接口
Diffstat (limited to 'src/line_protocol_output.cpp')
-rw-r--r--src/line_protocol_output.cpp26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/line_protocol_output.cpp b/src/line_protocol_output.cpp
index 372db3d..3b8ef00 100644
--- a/src/line_protocol_output.cpp
+++ b/src/line_protocol_output.cpp
@@ -173,9 +173,10 @@ static int build_single_metric_line_buf(char *instance_name, int output_type, st
}
-static int read_table_row_value(struct metric **row_metric, int output_type, int n_column, long long *out_row_value)
+static int read_table_row(struct metric **row_metric, char *column_name[], int output_type, int n_column, char *out_column_name[], long long *out_row_value)
{
int i = 0;
+ int n_send = 0;
struct metric *metric = NULL;
if(row_metric == NULL || n_column < 1)
@@ -186,9 +187,15 @@ static int read_table_row_value(struct metric **row_metric, int output_type, int
for(i = 0; i < n_column; i++)
{
metric = row_metric[i];
- out_row_value[i] = read_single_metric_value(metric, output_type);
+ if(metric->is_ratio == 1 || metric->is_invisible == 1)
+ {
+ continue;
+ }
+ out_row_value[n_send] = read_single_metric_value(metric, output_type);
+ out_column_name[n_send] = column_name[i];
+ n_send++;
}
- return 0;
+ return n_send;
}
@@ -196,19 +203,22 @@ static int build_table_row_line_buf(char *instance_name, int output_type, struct
{
int used_len = 0;
struct metric *metric = NULL;
+ int n_send = 0;
if(table->column_cnt <= 0)
{
return 0;
}
long long row_value[table->column_cnt];
+ char *column_name[table->column_cnt];
+ n_send = read_table_row(row_metric, table->column_name, output_type, table->column_cnt, column_name, row_value);
- if(-1 == read_table_row_value(row_metric, output_type, table->column_cnt, row_value))
+ if(n_send < 1)
{
return 0;
}
- if(1 != is_send_table_row(row_value, table->column_cnt))
+ if(1 != is_send_table_row(row_value, n_send))
{
return 0;
}
@@ -223,7 +233,7 @@ static int build_table_row_line_buf(char *instance_name, int output_type, struct
used_len += snprintf(line_buf + used_len, line_buf_size - used_len, " ");
- used_len += add_table_row_field_set(table->column_name, row_value, table->column_cnt, line_buf + used_len, line_buf_size - used_len);
+ used_len += add_table_row_field_set(column_name, row_value, n_send, line_buf + used_len, line_buf_size - used_len);
used_len += snprintf(line_buf + used_len, line_buf_size - used_len, "\n");
@@ -247,6 +257,10 @@ static void output_line_protocol_single_metric(struct fieldstat_instance *instan
{
continue;
}
+ if(metric->is_ratio == 1)
+ {
+ continue;
+ }
memset(line_buf, 0, sizeof(line_buf));
used_len = build_single_metric_line_buf(instance->name, instance->output_type, metric, line_buf, sizeof(line_buf));