Merge pull request #878 from lixiumei123/main

fix(log/level api):fix the log level of nodes and neuron at the same …
This commit is contained in:
fengzeroz
2022-11-01 09:57:31 +08:00
committed by GitHub
3 changed files with 56 additions and 1 deletions
+12 -1
View File
@@ -149,10 +149,21 @@ void handle_log_level(nng_aio *aio)
neu_reqresp_head_t header = { 0 };
neu_req_update_log_level_t cmd = { 0 };
zlog_category_t * ct = zlog_get_category(node_name);
zlog_category_t * neuron = zlog_get_category("neuron");
ret = zlog_level_switch(ct, ZLOG_LEVEL_DEBUG);
if (ret != 0) {
nlog_error("Modify log level fail, ret: %d", ret);
nlog_error(
"Modify node log level fail, node_name:%s, ret: %d,",
node_name, ret);
NEU_JSON_RESPONSE_ERROR(NEU_ERR_EINTERNAL, {
http_response(aio, error_code.error, result_error);
});
}
ret = zlog_level_switch(neuron, ZLOG_LEVEL_DEBUG);
if (ret != 0) {
nlog_error("Modify neuron log level fail, ret: %d", ret);
NEU_JSON_RESPONSE_ERROR(NEU_ERR_EINTERNAL, {
http_response(aio, error_code.error, result_error);
});
+41
View File
@@ -17,6 +17,7 @@
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
**/
#include <stdlib.h>
#include <sys/time.h>
#include <unistd.h>
#include <nng/nng.h>
@@ -47,6 +48,7 @@
static const char *const url = "inproc://neu_manager";
static int manager_loop(enum neu_event_io_type type, int fd, void *usr_data);
static int manager_level_check(void *usr_data);
inline static void reply(neu_manager_t *manager, neu_reqresp_head_t *header,
void *data);
inline static void forward_msg_dup(neu_manager_t *manager, nng_msg *msg,
@@ -72,6 +74,12 @@ neu_manager_t *neu_manager_create()
.cb = report_nodes_state,
};
neu_event_timer_param_t timer_level = {
.second = 60,
.millisecond = 0,
.cb = manager_level_check,
};
manager->events = neu_event_new();
manager->plugin_manager = neu_plugin_manager_create();
manager->node_manager = neu_node_manager_create();
@@ -89,6 +97,8 @@ neu_manager_t *neu_manager_create()
nng_socket_get_int(manager->socket, NNG_OPT_RECVFD, &param.fd);
manager->loop = neu_event_add_io(manager->events, param);
manager->timestamp_lev_manager = 0;
neu_metrics_init();
start_static_adapter(manager, DEFAULT_DASHBOARD_PLUGIN_NAME);
start_static_adapter(manager, DEFAULT_MONITOR_PLUGIN_NAME);
@@ -114,6 +124,9 @@ neu_manager_t *neu_manager_create()
manager_load_subscribe(manager);
timer_level.usr_data = (void *) manager;
manager->timer_lev = neu_event_add_timer(manager->events, timer_level);
timer_param.usr_data = (void *) manager;
manager->timer = neu_event_add_timer(manager->events, timer_param);
@@ -128,6 +141,7 @@ void neu_manager_destroy(neu_manager_t *manager)
UT_array *pipes = neu_node_manager_get_pipes_all(manager->node_manager);
neu_event_del_timer(manager->events, manager->timer);
neu_event_del_timer(manager->events, manager->timer_lev);
strcpy(header.sender, "manager");
utarray_foreach(pipes, nng_pipe *, pipe)
{
@@ -166,6 +180,29 @@ const char *neu_manager_get_url()
return url;
}
static int manager_level_check(void *usr_data)
{
neu_manager_t *manager = (neu_manager_t *) usr_data;
if (0 != manager->timestamp_lev_manager) {
struct timeval tv = { 0 };
int64_t diff = { 0 };
int64_t delay_s = 60;
zlog_category_t *neuron = zlog_get_category("neuron");
gettimeofday(&tv, NULL);
diff = tv.tv_sec - manager->timestamp_lev_manager;
if (delay_s <= diff) {
int ret = zlog_level_switch(neuron, ZLOG_LEVEL_INFO);
if (0 != ret) {
nlog_error("Modify default log level fail, ret:%d", ret);
}
}
}
return 0;
}
static int manager_loop(enum neu_event_io_type type, int fd, void *usr_data)
{
neu_manager_t * manager = (neu_manager_t *) usr_data;
@@ -571,6 +608,10 @@ static int manager_loop(enum neu_event_io_type type, int fd, void *usr_data)
neu_msg_exchange(header);
reply(manager, header, &e);
} else {
struct timeval tv = { 0 };
gettimeofday(&tv, NULL);
manager->timestamp_lev_manager = tv.tv_sec;
forward_msg(manager, msg, header->receiver);
}
+3
View File
@@ -41,6 +41,9 @@ typedef struct neu_manager {
neu_node_manager_t * node_manager;
neu_subscribe_mgr_t * subscribe_manager;
neu_sub_msg_mgr_t * sub_msg_manager;
neu_event_timer_t *timer_lev;
int64_t timestamp_lev_manager;
} neu_manager_t;
int neu_manager_add_plugin(neu_manager_t *manager, const char *library);