summaryrefslogtreecommitdiff
path: root/src/fieldstat.cpp
diff options
context:
space:
mode:
authorfumingwei <[email protected]>2023-03-24 14:10:59 +0800
committerfumingwei <[email protected]>2023-03-24 14:10:59 +0800
commite09e7f397145613f1776622a2219047b9066f3a5 (patch)
tree57529534a861fffe98637fcd734b084bda8a7e0b /src/fieldstat.cpp
parenta52d18031284607d4c75878b14fdb7aff0396665 (diff)
feature:summay和histogram注册接口新增output_window参数
Diffstat (limited to 'src/fieldstat.cpp')
-rw-r--r--src/fieldstat.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/fieldstat.cpp b/src/fieldstat.cpp
index ddbe054..65a0c15 100644
--- a/src/fieldstat.cpp
+++ b/src/fieldstat.cpp
@@ -941,7 +941,7 @@ error_out:
static int fieldstat_register_histogram_and_summary(struct fieldstat_instance *instance, enum field_type type, const char *field_name, const struct fieldstat_tag tags[], size_t n_tag,
- const char * bins, long long lowest_trackable_value, long long highest_trackable_value, int significant_figures)
+ const char * bins, long long lowest_trackable_value, long long highest_trackable_value, int significant_figures, int output_window)
{
struct metric *metric = NULL;
struct metric **metric_slot = NULL;
@@ -967,9 +967,15 @@ static int fieldstat_register_histogram_and_summary(struct fieldstat_instance *i
return -1;
}
+ if(output_window != 0 && output_window != 1)
+ {
+ return -1;
+ }
+
metric_id = atomic_inc(&instance->metric_cnt) - 1;
metric_slot = read_metric_slot(instance, metric_id);
metric = metric_new(type, field_name, tags, n_tag);
+ metric->output_window = output_window;
metric->histogram.highest_trackable_value = (int64_t)highest_trackable_value;
metric->histogram.lowest_trackable_value = (int64_t)lowest_trackable_value;
@@ -998,16 +1004,16 @@ static int fieldstat_register_histogram_and_summary(struct fieldstat_instance *i
int fieldstat_register_histogram(struct fieldstat_instance *instance, const char *field_name,const struct fieldstat_tag tags[], size_t n_tag,
- const char * bins, long long lowest_trackable_value, long long highest_trackable_value, int significant_figures)
+ const char * bins, long long lowest_trackable_value, long long highest_trackable_value, int significant_figures, int output_window)
{
return fieldstat_register_histogram_and_summary(instance, FILED_TYPE_HISTOGRAM, field_name, tags, n_tag,
- bins, lowest_trackable_value, highest_trackable_value, significant_figures);
+ bins, lowest_trackable_value, highest_trackable_value, significant_figures, output_window);
}
int fieldstat_register_summary(struct fieldstat_instance *instance, const char *field_name, const struct fieldstat_tag tags[], size_t n_tag,
- const char * bins, long long lowest_trackable_value, long long highest_trackable_value, int significant_figures)
+ const char * bins, long long lowest_trackable_value, long long highest_trackable_value, int significant_figures, int output_window)
{
return fieldstat_register_histogram_and_summary(instance, FIELD_TYPE_SUMMARY, field_name, tags, n_tag,
- bins, lowest_trackable_value, highest_trackable_value, significant_figures);
+ bins, lowest_trackable_value, highest_trackable_value, significant_figures, output_window);
}