diff options
| author | fumingwei <[email protected]> | 2023-05-04 17:14:26 +0800 |
|---|---|---|
| committer | fumingwei <[email protected]> | 2023-05-11 20:20:44 +0800 |
| commit | e414bbf8a5255b6af6f22a3fd99331aec239c8c8 (patch) | |
| tree | ff2b8e9d87798bbeee7d0574549aa60f8b6ef81d /src/fieldstat.cpp | |
| parent | a31d2c750f1b3fa2a0b718505ae528232cab19a3 (diff) | |
feature:1.修改文件输出格式2.新增设置metric ratio和invisible属性接口
Diffstat (limited to 'src/fieldstat.cpp')
| -rw-r--r-- | src/fieldstat.cpp | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/src/fieldstat.cpp b/src/fieldstat.cpp index 6014600..0caa896 100644 --- a/src/fieldstat.cpp +++ b/src/fieldstat.cpp @@ -1074,3 +1074,68 @@ void disable_line_protocol_output(struct line_protocol_output *line_protocol_out } return; } + + +int fieldstat_set_metric_ratio_para(struct fieldstat_instance *instance, int metric_id, int numerator_metric_id, int denominator_metric_id, int output_scaling) +{ + struct metric *metric = NULL; + struct metric *metric_n = NULL; + struct metric *metric_d = NULL; + if(instance->running == 1) + { + return -1; + } + if(metric_id >= instance->metric_cnt || numerator_metric_id >= instance->metric_cnt ||denominator_metric_id >= instance->metric_cnt) + { + return -1; + } + + metric = get_metric(instance, metric_id); + metric_n = get_metric(instance, numerator_metric_id); + metric_d = get_metric(instance, denominator_metric_id); + + if(metric->field_type != FIELD_TYPE_GAUGE && metric->field_type != FIELD_TYPE_COUNTER) + { + return -1; + } + + if(metric_n->field_type != FIELD_TYPE_GAUGE && metric_n->field_type != FIELD_TYPE_COUNTER) + { + return -1; + } + + if(metric_d->field_type != FIELD_TYPE_GAUGE && metric_d->field_type != FIELD_TYPE_COUNTER) + { + return -1; + } + if(output_scaling == 0) + { + return -1; + } + + metric->is_ratio = 1; + metric->numerator_id = numerator_metric_id; + metric->denominator_id = denominator_metric_id; + metric->output_scaling = output_scaling; + + return 0; +} + + +int fieldstat_set_metric_invisible_para(struct fieldstat_instance *instance, int metric_id) +{ + struct metric *metric = NULL; + if(instance->running == 1) + { + return -1; + } + if(metric_id >= instance->metric_cnt) + { + return -1; + } + + metric = get_metric(instance, metric_id); + metric->is_invisible = 1; + + return 0; +}
\ No newline at end of file |
