思澈科技软件开发工具包  2.20
Metrics Collector

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)
 

Detailed Description

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 Documentation

◆ mc_collector_callback_t

typedef void(* mc_collector_callback_t) (void *user_data)

collector callback type

Parameters
[in]user_datauser data

◆ mc_metrics_read_callback_t

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

Parameters
[in]idid
[in]corecore id, CORE_ID_HCPU
[in]data_lendata length in byte
[in]timetime in second
[in]datapoint to read data, no need to free by user
Return values
trueinterrupt read, false: continue read

◆ mc_raw_metrics_read_callback_t

typedef bool(* mc_raw_metrics_read_callback_t) (void *data, uint32_t data_len, uint32_t time)

raw metrics read callback type

Parameters
[in]datapoint to read data, no need to free by user
[in]data_lendata length in byte
[in]timetime in second
Return values
trueinterrupt read, false: continue read

Enumeration Type Documentation

◆ mc_period_tag

Enumerator
MC_PERIOD_EVERY_DAY 

every day

MC_PERIOD_EVERY_HOUR 

every hour

MC_PERIOD_EVERY_MINUTE 

every minute

MC_PERIOD_EVERY_SECOND 

every second

Function Documentation

◆ mc_alloc_metrics()

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

Parameters
[in]idmetrics id, it's user defined
[in]data_lenmetrics data length in byte
Returns
pointer to metrics data buffer, buffer size is same as data_len

◆ mc_clear_metrics()

mc_err_t mc_clear_metrics ( void  )

Clear metrics saved in storage

Returns
result

◆ mc_close()

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

Returns
result

◆ mc_deregister_collector()

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.

Parameters
[in]collectorcollector
Returns
result

◆ mc_flush()

mc_err_t mc_flush ( void  )

flush default db

Ensure all data is written into storage instead of remaining in cache

Returns
result

◆ mc_flush_ex()

mc_err_t mc_flush_ex ( mc_db_t db)

flush db

Ensure all data is written in storage instead of remaining in cache

Parameters
[in]dbmetrics db handle
Returns
result

◆ mc_free_metrics()

mc_err_t mc_free_metrics ( void *  metrics)

Free the metrics memory allocated by mc_alloc_metrics

Parameters
[in]metricsthe metrics allocated by mc_alloc_metrics
Returns
result

◆ mc_get_path()

const char* mc_get_path ( void  )

Get default db path with file backend

Returns
path

◆ mc_init_db()

mc_err_t mc_init_db ( mc_db_t db,
const char *  name,
uint32_t  max_size 
)

Initialize db

Parameters
[in,out]dbmetrics db handle
[in]namedb name
[in]max_sizedb size
Returns
result

◆ mc_read_metrics()

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.

Parameters
[in]cbread callback
Returns
result

◆ mc_read_raw_metrics()

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.

Parameters
[in]cbread callback
Returns
result

◆ mc_register_collector()

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.

Parameters
[in]collectorcollector
Returns
result

◆ mc_save_metrics()

mc_err_t mc_save_metrics ( void *  metrics,
bool  freed 
)

Save the metrics to storage (default db)

Parameters
[in]metricsthe metrics allocated by mc_alloc_metrics
[in]freedwhether the metrics memory can be freed after the invocation. true: free, false: not free
Returns
result

◆ mc_save_metrics_ex()

mc_err_t mc_save_metrics_ex ( mc_db_t db,
void *  metrics,
bool  freed 
)

Save the metrics to specified db

Parameters
[in]dbmetrics db handle initialzed by mc_init_db
[in]metricsthe metrics allocated by mc_alloc_metrics
[in]freedwhether the metrics memory can be freed after the invocation. true: free, false: not free
Returns
result