Metrics Collector Manager, use flashdb partition "metrics" as storage. More...
Data Structures | |
struct | mc_collector_tag |
struct | mc_db_t |
Macros | |
#define | MC_MAX_DATA_LEN (256) |
Typedefs | |
typedef enum mc_period_tag | mc_period_t |
typedef enum mc_err_tag | mc_err_t |
typedef void(* | mc_collector_callback_t) (void *user_data) |
typedef struct mc_collector_tag | mc_collector_t |
typedef bool(* | mc_raw_metrics_read_callback_t) (void *data, uint32_t data_len, uint32_t time) |
typedef bool(* | mc_metrics_read_callback_t) (uint16_t id, uint8_t core, uint16_t data_len, uint32_t time, void *data) |
typedef bool(* | mc_backend_iter_cb_t) (void *data, uint32_t data_len, void *arg) |
Enumerations | |
enum | mc_period_tag { MC_PERIOD_EVERY_DAY, MC_PERIOD_EVERY_HOUR, MC_PERIOD_EVERY_MINUTE, MC_PERIOD_EVERY_SECOND, MC_PERIOD_MAX } |
enum | mc_err_tag { MC_OK, MC_ERROR, MC_NOT_INIT, MC_INVALID_DATA_LEN, MC_WRITE_ERR, MC_READ_ERR, MC_DB_INIT_ERR } |
Functions | |
mc_err_t | mc_register_collector (mc_collector_t *collector) |
mc_err_t | mc_deregister_collector (mc_collector_t *collector) |
void * | mc_alloc_metrics (uint16_t id, uint16_t data_len) |
mc_err_t | mc_save_metrics (void *metrics, bool freed) |
mc_err_t | mc_save_metrics_ex (mc_db_t *db, void *metrics, bool freed) |
mc_err_t | mc_free_metrics (void *metrics) |
mc_err_t | mc_read_raw_metrics (mc_raw_metrics_read_callback_t cb) |
mc_err_t | mc_read_metrics (mc_metrics_read_callback_t cb) |
mc_err_t | mc_clear_metrics (void) |
mc_err_t | mc_init_db (mc_db_t *db, const char *name, uint32_t max_size) |
mc_err_t | mc_flush_ex (mc_db_t *db) |
mc_err_t | mc_flush (void) |
mc_err_t | mc_close (void) |
const char * | mc_get_path (void) |
void * | mc_backend_init (const char *name, uint32_t max_len) |
mc_err_t | mc_backend_write (void *db, void *data, uint32_t data_len) |
mc_err_t | mc_backend_iter (void *db, mc_backend_iter_cb_t cb, void *arg) |
mc_err_t | mc_backend_clear (void *db) |
mc_err_t | mc_backend_flush (void *db) |
mc_err_t | mc_backend_close (void *db) |
Metrics Collector Manager, use flashdb partition "metrics" as storage.
It's initialized at INIT_COMPONENT stage and should be called at INIT_ENV, INIT_PRE_APP or INIT_APP stage.
typedef void(* mc_collector_callback_t) (void *user_data) |
collector callback type
[in] | user_data | user data |
typedef bool(* mc_metrics_read_callback_t) (uint16_t id, uint8_t core, uint16_t data_len, uint32_t time, void *data) |
metrics read callback type
[in] | id | id |
[in] | core | core id, CORE_ID_HCPU |
[in] | data_len | data length in byte |
[in] | time | time in second |
[in] | data | point to read data, no need to free by user |
true | interrupt read, false: continue read |
typedef bool(* mc_raw_metrics_read_callback_t) (void *data, uint32_t data_len, uint32_t time) |
raw metrics read callback type
[in] | data | point to read data, no need to free by user |
[in] | data_len | data length in byte |
[in] | time | time in second |
true | interrupt read, false: continue read |
enum mc_period_tag |
void* mc_alloc_metrics | ( | uint16_t | id, |
uint16_t | data_len | ||
) |
Allocate memory space for one metrics
data_len cannot exceed MC_MAX_DATA_LEN
[in] | id | metrics id, it's user defined |
[in] | data_len | metrics data length in byte |
mc_err_t mc_clear_metrics | ( | void | ) |
Clear metrics saved in storage
mc_err_t mc_close | ( | void | ) |
close default db
Same as mc_flush, plus default db is closed afterwards and no more data can be written further
mc_err_t mc_deregister_collector | ( | mc_collector_t * | collector | ) |
Deregister metrics collector
After the invocation, the memory of param collector will not be used any more.
[in] | collector | collector |
mc_err_t mc_flush | ( | void | ) |
flush default db
Ensure all data is written into storage instead of remaining in cache
mc_err_t mc_flush_ex | ( | mc_db_t * | db | ) |
flush db
Ensure all data is written in storage instead of remaining in cache
[in] | db | metrics db handle |
mc_err_t mc_free_metrics | ( | void * | metrics | ) |
Free the metrics memory allocated by mc_alloc_metrics
[in] | metrics | the metrics allocated by mc_alloc_metrics |
const char* mc_get_path | ( | void | ) |
Get default db path with file backend
mc_err_t mc_init_db | ( | mc_db_t * | db, |
const char * | name, | ||
uint32_t | max_size | ||
) |
Initialize db
[in,out] | db | metrics db handle |
[in] | name | db name |
[in] | max_size | db size |
mc_err_t mc_read_metrics | ( | mc_metrics_read_callback_t | cb | ) |
Read metrics saved in storage
The callback would be called for each metrics in the database, parsed data is provided.
[in] | cb | read callback |
mc_err_t mc_read_raw_metrics | ( | mc_raw_metrics_read_callback_t | cb | ) |
Read raw metrics saved in storage
The callback would be called for each metrics in the database, raw data is provided.
[in] | cb | read callback |
mc_err_t mc_register_collector | ( | mc_collector_t * | collector | ) |
Register metrics collector
The memory of param collector will still be used after the invocation, until mc_deregister_collector is called. So the memory should be available within this time.
[in] | collector | collector |
mc_err_t mc_save_metrics | ( | void * | metrics, |
bool | freed | ||
) |
Save the metrics to storage (default db)
[in] | metrics | the metrics allocated by mc_alloc_metrics |
[in] | freed | whether the metrics memory can be freed after the invocation. true: free, false: not free |
mc_err_t mc_save_metrics_ex | ( | mc_db_t * | db, |
void * | metrics, | ||
bool | freed | ||
) |
Save the metrics to specified db
[in] | db | metrics db handle initialzed by mc_init_db |
[in] | metrics | the metrics allocated by mc_alloc_metrics |
[in] | freed | whether the metrics memory can be freed after the invocation. true: free, false: not free |