feat(monitor): add app node metrics

This commit is contained in:
eeff
2022-10-26 14:07:14 +08:00
parent f1a82ed529
commit fe7601a7ac
4 changed files with 50 additions and 5 deletions
+19 -4
View File
@@ -54,33 +54,48 @@ typedef enum {
#define NEU_METRIC_RECV_BYTES_TYPE NEU_METRIC_TYPE_COUNTER
#define NEU_METRIC_RECV_BYTES_HELP "Total number of bytes received"
// maintained by neuron core
// number of tag read including errors
#define NEU_METRIC_TAG_READS_TOTAL "tag_reads_total"
#define NEU_METRIC_TAG_READS_TOTAL_TYPE NEU_METRIC_TYPE_COUNTER
#define NEU_METRIC_TAG_READS_TOTAL_HELP \
"Total number of tag reads including errors"
// maintained by neuron core
// number of tag read errors
#define NEU_METRIC_TAG_READ_ERRORS_TOTAL "tag_read_errors_total"
#define NEU_METRIC_TAG_READ_ERRORS_TOTAL_TYPE NEU_METRIC_TYPE_COUNTER
#define NEU_METRIC_TAG_READ_ERRORS_TOTAL_HELP "Total number of tag read errors"
// maintained by neuron core
// number of tags in group
#define NEU_METRIC_GROUP_TAGS_TOTAL "group_tags_total"
#define NEU_METRIC_GROUP_TAGS_TOTAL_TYPE NEU_METRIC_TYPE_GAUAGE
#define NEU_METRIC_GROUP_TAGS_TOTAL_HELP "Total number of tags in the group"
// number of messages sent in group
#define NEU_METRIC_GROUP_SEND_MSGS "group_send_msgs"
#define NEU_METRIC_GROUP_SEND_MSGS_TYPE NEU_METRIC_TYPE_COUNTER
#define NEU_METRIC_GROUP_SEND_MSGS_HELP \
#define NEU_METRIC_GROUP_SEND_MSGS_TOTAL "group_send_msgs_total"
#define NEU_METRIC_GROUP_SEND_MSGS_TOTAL_TYPE NEU_METRIC_TYPE_COUNTER
#define NEU_METRIC_GROUP_SEND_MSGS_TOTAL_HELP \
"Total number of messages sent in the group"
// maintained by neuron core
// milliseconds consumed in last group timer invocation
#define NEU_METRIC_GROUP_LAST_TIMER_MS "group_last_timer_ms"
#define NEU_METRIC_GROUP_LAST_TIMER_MS_TYPE NEU_METRIC_TYPE_GAUAGE
#define NEU_METRIC_GROUP_LAST_TIMER_MS_HELP \
"Time in milliseconds consumed in last group timer invocation"
"Time in milliseconds consumed on last group timer invocation"
// number of messages sent
#define NEU_METRIC_SEND_MSGS_TOTAL "send_msgs_total"
#define NEU_METRIC_SEND_MSGS_TOTAL_TYPE NEU_METRIC_TYPE_COUNTER
#define NEU_METRIC_SEND_MSGS_TOTAL_HELP "Total number of messages sent"
// number of errors encounter while sending messages
#define NEU_METRIC_SEND_MSG_ERRORS_TOTAL "send_msg_errors_total"
#define NEU_METRIC_SEND_MSG_ERRORS_TOTAL_TYPE NEU_METRIC_TYPE_COUNTER
#define NEU_METRIC_SEND_MSG_ERRORS_TOTAL_HELP \
"Total number of errors sending messages"
typedef enum {
NEU_METRICS_CATEGORY_GLOBAL,
+23
View File
@@ -147,6 +147,25 @@ gen_single_node_metrics(const neu_node_metrics_t *node_metrics, FILE *stream)
}
}
static inline bool has_entry(neu_node_metrics_t *node_metrics, const char *name)
{
neu_metric_entry_t * e = NULL;
neu_group_metrics_t *g = NULL;
HASH_FIND_STR(node_metrics->entries, name, e);
if (e) {
return true;
}
HASH_LOOP(hh, node_metrics->group_metrics, g)
{
HASH_FIND_STR(g->entries, name, e);
if (e) {
return true;
}
}
return false;
}
static void gen_all_node_metrics(const neu_metrics_t *metrics, int type_filter,
FILE *stream)
{
@@ -163,6 +182,10 @@ static void gen_all_node_metrics(const neu_metrics_t *metrics, int type_filter,
continue;
}
if (!has_entry(n, r->name)) {
continue;
}
if (!commented) {
commented = true;
fprintf(stream, "# HELP %s %s\n# TYPE %s %s\n", r->name,
+7
View File
@@ -71,6 +71,10 @@ static const adapter_callbacks_t callback_funs = {
REGISTER_METRIC(adapter, NEU_METRIC_TAG_READS_TOTAL, 0); \
REGISTER_METRIC(adapter, NEU_METRIC_TAG_READ_ERRORS_TOTAL, 0)
#define REGISTER_APP_METRICS(adapter) \
REGISTER_METRIC(adapter, NEU_METRIC_SEND_MSGS_TOTAL, 0); \
REGISTER_METRIC(adapter, NEU_METRIC_SEND_MSG_ERRORS_TOTAL, 0);
neu_adapter_t *neu_adapter_create(neu_adapter_info_t *info)
{
int rv = 0;
@@ -115,6 +119,9 @@ neu_adapter_t *neu_adapter_create(neu_adapter_info_t *info)
neu_adapter_driver_init((neu_adapter_driver_t *) adapter);
break;
case NEU_NA_TYPE_APP:
if (adapter->module->display) {
REGISTER_APP_METRICS(adapter);
}
break;
}
+1 -1
View File
@@ -399,7 +399,7 @@ int neu_adapter_driver_add_group(neu_adapter_driver_t *driver, const char *name,
NEU_METRIC_GROUP_TAGS_TOTAL,
neu_group_tag_size(find->group));
REGISTER_GROUP_METRIC(&driver->adapter, find->name,
NEU_METRIC_GROUP_SEND_MSGS, 0);
NEU_METRIC_GROUP_SEND_MSGS_TOTAL, 0);
REGISTER_GROUP_METRIC(&driver->adapter, find->name,
NEU_METRIC_GROUP_LAST_TIMER_MS, 0);