Merge pull request #819 from eeff/eeff/dev

feat(restful): return average round trip time in node state api
This commit is contained in:
fengzeroz
2022-09-28 11:03:41 +08:00
committed by GitHub
6 changed files with 18 additions and 0 deletions
+2
View File
@@ -395,6 +395,7 @@ typedef struct neu_req_get_node_state {
typedef struct neu_resp_get_node_state {
neu_node_state_t state;
uint16_t avg_rtt; // average round trip time in milliseconds
} neu_resp_get_node_state_t;
typedef struct neu_req_get_nodes_state {
@@ -403,6 +404,7 @@ typedef struct neu_req_get_nodes_state {
typedef struct {
char node[NEU_NODE_NAME_LEN];
neu_node_state_t state;
uint16_t avg_rtt; // average round trip time in milliseconds
} neu_nodes_state_t;
inline static UT_icd neu_nodes_state_t_icd()
+2
View File
@@ -302,6 +302,7 @@ void handle_get_node_state_resp(nng_aio *aio, neu_resp_get_node_state_t *state)
res.link = state->state.link;
res.running = state->state.running;
res.avg_rtt = state->avg_rtt;
neu_json_encode_by_fn(&res, neu_json_encode_get_node_state_resp, &result);
@@ -325,6 +326,7 @@ void handle_get_nodes_state_resp(nng_aio * aio,
states_res.nodes[index].name = state->node;
states_res.nodes[index].running = state->state.running;
states_res.nodes[index].link = state->state.link;
states_res.nodes[index].avg_rtt = state->avg_rtt;
}
neu_json_encode_by_fn(&states_res, neu_json_encode_get_nodes_state_resp,
+1
View File
@@ -419,6 +419,7 @@ static int adapter_loop(enum neu_event_io_type type, int fd, void *usr_data)
neu_resp_get_node_state_t resp = { 0 };
resp.state = neu_adapter_get_state(adapter);
resp.avg_rtt = adapter->stat.avg_rtt;
header->type = NEU_RESP_GET_NODE_STATE;
neu_msg_exchange(header);
reply(adapter, header, &resp);
+1
View File
@@ -303,6 +303,7 @@ UT_array *neu_node_manager_get_state(neu_node_manager_t *mgr)
state.state.running = el->adapter->state;
state.state.link =
neu_plugin_to_plugin_common(el->adapter->plugin)->link_state;
state.avg_rtt = el->adapter->stat.avg_rtt;
utarray_push_back(states, &state);
}
+10
View File
@@ -166,6 +166,11 @@ int neu_json_encode_get_node_state_resp(void *json_object, void *param)
.name = "link",
.t = NEU_JSON_INT,
.v.val_int = resp->link,
},
{
.name = "average_rtt",
.t = NEU_JSON_INT,
.v.val_int = resp->avg_rtt,
} };
ret = neu_json_encode_field(json_object, resp_elems,
NEU_JSON_ELEM_SIZE(resp_elems));
@@ -198,6 +203,11 @@ int neu_json_encode_get_nodes_state_resp(void *json_object, void *param)
.t = NEU_JSON_INT,
.v.val_int = p_node->link,
},
{
.name = "average_rtt",
.t = NEU_JSON_INT,
.v.val_int = p_node->avg_rtt,
},
};
node_array = neu_json_encode_array(node_array, node_elems,
NEU_JSON_ELEM_SIZE(node_elems));
+2
View File
@@ -56,6 +56,7 @@ int neu_json_encode_get_node_stat_resp(void *json_object, void *param);
typedef struct {
int64_t running;
int64_t link;
int64_t avg_rtt;
} neu_json_get_node_state_resp_t;
int neu_json_encode_get_node_state_resp(void *json_object, void *param);
@@ -64,6 +65,7 @@ typedef struct {
char * name;
int64_t running;
int64_t link;
int64_t avg_rtt;
} neu_json_get_nodes_state_t;
typedef struct {