diff options
| author | chenzizhan <[email protected]> | 2024-08-01 14:12:46 +0800 |
|---|---|---|
| committer | chenzizhan <[email protected]> | 2024-08-01 14:12:46 +0800 |
| commit | ae4c5b46775a0b730169c2d3b13190163d50f262 (patch) | |
| tree | 5a3f3b9eee24be9117f29e655f5117b3a97aafc6 /src | |
| parent | f9dde08bcb7805c6ae8dd717100780def1fbc289 (diff) | |
api for stellar monitor query
Diffstat (limited to 'src')
| -rw-r--r-- | src/cube.c | 16 | ||||
| -rw-r--r-- | src/cube.h | 2 | ||||
| -rw-r--r-- | src/fieldstat.c | 11 |
3 files changed, 14 insertions, 15 deletions
@@ -1376,18 +1376,12 @@ enum metric_type cube_get_metric_type(const struct cube *cube, int metric_id) { return metric->type; } -void cube_get_metrics(const struct cube *cube, int **metric_id_out, size_t *n_metric) +int cube_get_metric_id_by_name(const struct cube *cube, const char *metric_name) { - const struct metric_manifest **list = metric_manifest_manager_list(cube->manifest_manager, n_metric); - if (*n_metric == 0) { - *metric_id_out = NULL; - return; + const struct metric_manifest *metric = metric_manifest_manager_get_by_name(cube->manifest_manager, metric_name); + if (metric == NULL) { + return FS_ERR_INVALID_METRIC_NAME; } - int *tmp_ids = (int *)malloc(sizeof(int) * (*n_metric)); - *metric_id_out = tmp_ids; - - for (int i = 0; i < *n_metric; i++) { - tmp_ids[i] = list[i]->id; - } + return metric->id; } @@ -41,11 +41,11 @@ int cube_get_serialization_as_base64(const struct cube *cube, int metric_id, con int cube_get_cell_count(const struct cube *cube); enum sampling_mode cube_get_sampling_mode(const struct cube *cube); void cube_get_cells(const struct cube *cube, struct field_list **cell_dimensions, size_t *n_cell); -void cube_get_metrics(const struct cube *cube, int **metric_id_out, size_t *n_metric); void cube_get_metrics_in_cell(const struct cube *cube, const struct field_list *dimensions, int **metric_id_out, size_t *n_metric_out); struct field_list *cube_get_identifier(const struct cube *cube); const char *cube_get_metric_name(const struct cube *cube, int metric_id); enum metric_type cube_get_metric_type(const struct cube *cube, int metric_id); +int cube_get_metric_id_by_name(const struct cube *cube, const char *metric_name); /* -------------------------------------------------------------------------- */ /* cube manager */ diff --git a/src/fieldstat.c b/src/fieldstat.c index bb530f1..3ba01e4 100644 --- a/src/fieldstat.c +++ b/src/fieldstat.c @@ -383,7 +383,12 @@ void fieldstat_get_metric_in_cell(const struct fieldstat *instance, int cube_id, return cube_get_metrics_in_cell(cube, cell_dimensions, metric_id_out, n_metric_out); } -void fieldstat_cube_get_metrics(const struct fieldstat *instance, int cube_id, int **metric_id_out, size_t *n_metric) { +int fieldstat_cube_get_metric_id_by_name(const struct fieldstat *instance, int cube_id, const char *metric_name) +{ const struct cube *cube = cube_manager_get_cube_by_id(instance->cube_manager, cube_id); - cube_get_metrics(cube, metric_id_out, n_metric); -} + if (cube == NULL) { + return FS_ERR_INVALID_CUBE_ID; + } + + return cube_get_metric_id_by_name(cube, metric_name); +}
\ No newline at end of file |
