diff options
| author | chenzizhan <[email protected]> | 2023-09-21 12:58:33 +0800 |
|---|---|---|
| committer | chenzizhan <[email protected]> | 2023-09-21 12:58:33 +0800 |
| commit | e45dec117fcc3104240bc14115510e94d9ff60a2 (patch) | |
| tree | 52b00f0950b76a3faa4e4713519db4328ffd4bd5 /src | |
| parent | 699032ad438f6e8d0843869742d46a60c8e7978b (diff) | |
counter_get change
Diffstat (limited to 'src')
| -rw-r--r-- | src/exporter/cjson_exporter.c | 11 | ||||
| -rw-r--r-- | src/fieldstat.c | 4 | ||||
| -rw-r--r-- | src/metrics/metric.c | 5 | ||||
| -rw-r--r-- | src/metrics/metric.h | 2 |
4 files changed, 13 insertions, 9 deletions
diff --git a/src/exporter/cjson_exporter.c b/src/exporter/cjson_exporter.c index 5c1baa9..94c0cf3 100644 --- a/src/exporter/cjson_exporter.c +++ b/src/exporter/cjson_exporter.c @@ -486,8 +486,9 @@ struct export_kv_pair *cell_query_with_iter(const struct cell_iter *iter, int me enum metric_type type = fieldstat_get_metric_type(iter->instance, iter->cube_ids[iter->curr_cube_idx], metric_id); struct export_kv_pair *ret = NULL; if (type == METRIC_TYPE_COUNTER) { - long long value = fieldstat_counter_get(iter->instance, iter->cube_ids[iter->curr_cube_idx], metric_id, iter->cell_ids[iter->curr_cell_idx]); - if (value == -1) { + long long value; + int tmp_ret = fieldstat_counter_get(iter->instance, iter->cube_ids[iter->curr_cube_idx], metric_id, iter->cell_ids[iter->curr_cell_idx], &value); + if (tmp_ret == -1) { return NULL; } ret = malloc(sizeof(struct export_kv_pair)); @@ -639,12 +640,14 @@ void cjson_map_record_metrics(struct cellwise_rec_for_export *tag_field_pair, co if (fieldstat_get_metric_type(iter->instance, cube_id, metric_id) != METRIC_TYPE_COUNTER) { continue; } - if (fieldstat_counter_get(iter->instance, cube_id, metric_id, iter->cell_ids[iter->curr_cell_idx]) == -1) { // no value, happens when the two cells in one cube has different metrics + long long value; + int ret = fieldstat_counter_get(iter->instance, cube_id, metric_id, iter->cell_ids[iter->curr_cell_idx], &value); + if (ret == -1) { // no value, happens when the two cells in one cube has different metrics continue; } tag_field_pair->metric_name[n_counter_metric] = strdup(fieldstat_get_metric_name(iter->instance, cube_id, metric_id)); - tag_field_pair->metric_value[n_counter_metric] = fieldstat_counter_get(iter->instance, cube_id, metric_id, iter->cell_ids[iter->curr_cell_idx]); + tag_field_pair->metric_value[n_counter_metric] = value; n_counter_metric++; } diff --git a/src/fieldstat.c b/src/fieldstat.c index 303d3cd..9b0cc8b 100644 --- a/src/fieldstat.c +++ b/src/fieldstat.c @@ -1001,14 +1001,14 @@ struct fieldstat_tag_list *fieldstat_get_shared_tags(const struct fieldstat *ins return tag_list; } -long long fieldstat_counter_get(const struct fieldstat *instance, int cube_id, int metric_id, int cell_id) +int fieldstat_counter_get(const struct fieldstat *instance, int cube_id, int metric_id, int cell_id, long long *value) { const struct metric *metric = fieldstat_find_metric(instance, cube_id, metric_id); if (metric == NULL || metric_get_type(metric) != METRIC_TYPE_COUNTER) { return -1; } - return metric_counter_get(metric, cell_id); + return metric_counter_get(metric, cell_id, value); } double fieldstat_hll_get(const struct fieldstat *instance, int cube_id, int metric_id, int cell_id) diff --git a/src/metrics/metric.c b/src/metrics/metric.c index 69c066f..4d37088 100644 --- a/src/metrics/metric.c +++ b/src/metrics/metric.c @@ -751,14 +751,15 @@ int metric_counter_set(struct metric *pthis, int cell_id, long long value) return 0; } -long long metric_counter_get(const struct metric *pthis, int cell_id) +int metric_counter_get(const struct metric *pthis, int cell_id, long long *value_out) { const struct metric_measure_data *data = metric_find_one_cell(pthis, cell_id); if (data == NULL) { return -1; } const struct metric_counter_or_gauge *counter = data->counter; - return counter->value; + *value_out = counter->value; + return 0; } struct metric *metric_hll_new(const char *name, unsigned char precision) diff --git a/src/metrics/metric.h b/src/metrics/metric.h index 6122746..ca48cef 100644 --- a/src/metrics/metric.h +++ b/src/metrics/metric.h @@ -23,7 +23,7 @@ void metric_delete_cell(struct metric *pthis, int cell_id); struct metric *metric_counter_new(const char *name, enum counter_mode mode); void metric_counter_incrby(struct metric *pthis, int cell_id, long long value); int metric_counter_set(struct metric *pthis, int cell_id, long long value); -long long metric_counter_get(const struct metric *pthis, int cell_id); +int metric_counter_get(const struct metric *pthis, int cell_id, long long *value_out); struct metric *metric_hll_new(const char *name, unsigned char precision); void metric_hll_add(struct metric *pthis, int cell_id, const char *key, size_t key_len); |
