mirror of
https://github.com/emqx/neuron.git
synced 2026-10-22 09:23:52 +08:00
Merge pull request #1475 from eeff/eeff/fix
feat: add metrics for last group data acquisition error
This commit is contained in:
@@ -98,6 +98,20 @@ typedef enum {
|
||||
#define NEU_METRIC_GROUP_LAST_TIMER_MS_HELP \
|
||||
"Time in milliseconds consumed on last group timer invocation"
|
||||
|
||||
// maintained by neuron core
|
||||
// group last error code
|
||||
#define NEU_METRIC_GROUP_LAST_ERROR_CODE "group_last_error_code"
|
||||
#define NEU_METRIC_GROUP_LAST_ERROR_CODE_TYPE NEU_METRIC_TYPE_GAUAGE
|
||||
#define NEU_METRIC_GROUP_LAST_ERROR_CODE_HELP \
|
||||
"Last encountered error code in group data acquisition"
|
||||
|
||||
// maintained by neuron core
|
||||
// group last error timestamp
|
||||
#define NEU_METRIC_GROUP_LAST_ERROR_TS "group_last_error_timestamp_ms"
|
||||
#define NEU_METRIC_GROUP_LAST_ERROR_TS_TYPE NEU_METRIC_TYPE_GAUAGE
|
||||
#define NEU_METRIC_GROUP_LAST_ERROR_TS_HELP \
|
||||
"Timestamp (ms) of the last encountered error in group data acquisition"
|
||||
|
||||
// number of messages sent
|
||||
#define NEU_METRIC_SEND_MSGS_TOTAL "send_msgs_total"
|
||||
#define NEU_METRIC_SEND_MSGS_TOTAL_TYPE NEU_METRIC_TYPE_COUNTER
|
||||
|
||||
+21
-11
@@ -110,7 +110,16 @@ static void update_with_meta(neu_adapter_t *adapter, const char *group,
|
||||
const char *tag, neu_dvalue_t value,
|
||||
neu_tag_meta_t *metas, int n_meta)
|
||||
{
|
||||
neu_adapter_driver_t *driver = (neu_adapter_driver_t *) adapter;
|
||||
neu_adapter_driver_t * driver = (neu_adapter_driver_t *) adapter;
|
||||
neu_adapter_update_metric_cb_t update_metric =
|
||||
driver->adapter.cb_funs.update_metric;
|
||||
|
||||
if (value.type == NEU_TYPE_ERROR) {
|
||||
update_metric(&driver->adapter, NEU_METRIC_GROUP_LAST_ERROR_CODE,
|
||||
value.value.i32, group);
|
||||
update_metric(&driver->adapter, NEU_METRIC_GROUP_LAST_ERROR_TS,
|
||||
global_timestamp, group);
|
||||
}
|
||||
|
||||
if (value.type == NEU_TYPE_ERROR && tag == NULL) {
|
||||
group_t *g = find_group(driver, group);
|
||||
@@ -127,21 +136,18 @@ static void update_with_meta(neu_adapter_t *adapter, const char *group,
|
||||
global_timestamp, value, NULL, 0);
|
||||
++err_count;
|
||||
}
|
||||
driver->adapter.cb_funs.update_metric(
|
||||
&driver->adapter, NEU_METRIC_TAG_READS_TOTAL, err_count, NULL);
|
||||
driver->adapter.cb_funs.update_metric(
|
||||
&driver->adapter, NEU_METRIC_TAG_READ_ERRORS_TOTAL, err_count,
|
||||
NULL);
|
||||
update_metric(&driver->adapter, NEU_METRIC_TAG_READS_TOTAL,
|
||||
err_count, NULL);
|
||||
update_metric(&driver->adapter, NEU_METRIC_TAG_READ_ERRORS_TOTAL,
|
||||
err_count, NULL);
|
||||
utarray_free(tags);
|
||||
}
|
||||
} else {
|
||||
neu_driver_cache_update(driver->cache, group, tag, global_timestamp,
|
||||
value, metas, n_meta);
|
||||
driver->adapter.cb_funs.update_metric(
|
||||
&driver->adapter, NEU_METRIC_TAG_READS_TOTAL, 1, NULL);
|
||||
driver->adapter.cb_funs.update_metric(
|
||||
&driver->adapter, NEU_METRIC_TAG_READ_ERRORS_TOTAL,
|
||||
NEU_TYPE_ERROR == value.type, NULL);
|
||||
update_metric(&driver->adapter, NEU_METRIC_TAG_READS_TOTAL, 1, NULL);
|
||||
update_metric(&driver->adapter, NEU_METRIC_TAG_READ_ERRORS_TOTAL,
|
||||
NEU_TYPE_ERROR == value.type, NULL);
|
||||
}
|
||||
nlog_info(
|
||||
"update driver: %s, group: %s, tag: %s, type: %s, timestamp: %" PRId64
|
||||
@@ -704,6 +710,10 @@ int neu_adapter_driver_add_group(neu_adapter_driver_t *driver, const char *name,
|
||||
NEU_METRIC_GROUP_LAST_SEND_MSGS, 0);
|
||||
REGISTER_GROUP_METRIC(&driver->adapter, find->name,
|
||||
NEU_METRIC_GROUP_LAST_TIMER_MS, 0);
|
||||
REGISTER_GROUP_METRIC(&driver->adapter, find->name,
|
||||
NEU_METRIC_GROUP_LAST_ERROR_CODE, 0);
|
||||
REGISTER_GROUP_METRIC(&driver->adapter, find->name,
|
||||
NEU_METRIC_GROUP_LAST_ERROR_TS, 0);
|
||||
|
||||
HASH_ADD_STR(driver->groups, name, find);
|
||||
ret = NEU_ERR_SUCCESS;
|
||||
|
||||
Reference in New Issue
Block a user