summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorchenzizhan <[email protected]>2023-09-21 12:58:33 +0800
committerchenzizhan <[email protected]>2023-09-21 12:58:33 +0800
commite45dec117fcc3104240bc14115510e94d9ff60a2 (patch)
tree52b00f0950b76a3faa4e4713519db4328ffd4bd5 /src
parent699032ad438f6e8d0843869742d46a60c8e7978b (diff)
counter_get change
Diffstat (limited to 'src')
-rw-r--r--src/exporter/cjson_exporter.c11
-rw-r--r--src/fieldstat.c4
-rw-r--r--src/metrics/metric.c5
-rw-r--r--src/metrics/metric.h2
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);