diff options
| author | fumingwei <[email protected]> | 2023-03-14 16:34:18 +0800 |
|---|---|---|
| committer | fumingwei <[email protected]> | 2023-03-14 16:34:18 +0800 |
| commit | 9dbf155d1f115d588b88ffb5eac86e08e2222c1f (patch) | |
| tree | 5c3a40277ed10879a101d41593aee9e8e93f0377 /src/prometheus_output.cpp | |
| parent | 13638b967b68b4f60a487ce2ec12c5c7b81d9ba6 (diff) | |
feature:过滤lineprotocol和prometheus输出
Diffstat (limited to 'src/prometheus_output.cpp')
| -rw-r--r-- | src/prometheus_output.cpp | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/prometheus_output.cpp b/src/prometheus_output.cpp index c3ee470..1d4fbfd 100644 --- a/src/prometheus_output.cpp +++ b/src/prometheus_output.cpp @@ -241,6 +241,20 @@ static int prometheus_output_histogram_and_summary(struct metric_t *metric, char return used_len; } +static int is_output_prometheus(struct metric_t *metric) +{ + int i = 0, ret = 0; + for(i = 0; i < (int)metric->n_tag; i++) + { + if(strcmp(metric->tag_key[i], "disable_output_prometheus") == 0 + && strcmp(metric->tag_value[i], "yes") == 0) + { + ret = 1; + break; + } + } + return ret; +} static int prometheus_get_instance_metric_playload(struct fieldstat_instance *instance, char **payload, int *payload_size, int offset) @@ -254,6 +268,7 @@ static int prometheus_get_instance_metric_playload(struct fieldstat_instance *in int append_offset = offset; char *new_payload = NULL; int new_payload_size = 0; + int current_metric_cnt = instance->metric_cnt; if(instance->running != 1) { @@ -270,10 +285,17 @@ static int prometheus_get_instance_metric_playload(struct fieldstat_instance *in str_unescape(instance->name, instance_name, sizeof(instance_name)); - for(i = 0; i < instance->metric_cnt; i++) + for(i = 0; i < current_metric_cnt; i++) { metric = get_metric(instance, i); - + if(metric == NULL) + { + continue; + } + if(is_output_prometheus(metric) == 1) + { + continue; + } if(metric->is_ratio == 1) { continue; |
