[
https://issues.apache.org/jira/browse/AMBARI-19224?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Vitaly Brodetskyi updated AMBARI-19224:
---------------------------------------
Resolution: Fixed
Status: Resolved (was: Patch Available)
Committed to trunk and branch-2.5
> Perf: Host Checks response is way too big (320MB for 1200 nodes)
> ----------------------------------------------------------------
>
> Key: AMBARI-19224
> URL: https://issues.apache.org/jira/browse/AMBARI-19224
> Project: Ambari
> Issue Type: Bug
> Components: ambari-agent
> Affects Versions: 2.5.0
> Reporter: Vitaly Brodetskyi
> Assignee: Vitaly Brodetskyi
> Priority: Critical
> Fix For: 2.5.0
>
> Attachments: AMBARI-19224.patch
>
>
> Currently, parsing of Host Checks after registration happens on UI, and on
> 1200 nodes it grows to 320mb of data, which hard to download and then parse.
> We can move parsing and aggregating data on the server, so on UI we will
> receive only required info.
> Request URL:
> {noformat}
>
> /api/v1/requests/24?fields=tasks/Tasks,Requests/inputs,Requests/request_status
> {noformat}
> Part of response:
> {code:java}
> "tasks" : [
> {
> "href" : "http://104.196.95.1:8080/api/v1/requests/24/tasks/31414",
> "Tasks" : {
> "attempt_cnt" : 1,
> "command" : "ACTIONEXECUTE",
> "command_detail" : "check_host ACTIONEXECUTE",
> "end_time" : 1481047483941,
> "error_log" :
> "/home/testvbrodetskyi-0001/var/lib/ambari-agent/data/errors-31414.txt",
> "exit_code" : 0,
> "host_name" : "testvbrodetskyi-0001",
> "id" : 31414,
> "output_log" :
> "/home/testvbrodetskyi-0001/var/lib/ambari-agent/data/output-31414.txt",
> "request_id" : 24,
> "role" : "check_host",
> "stage_id" : 0,
> "start_time" : 1481047457478,
> "status" : "COMPLETED",
> "stderr" : "None",
> "stdout" : "2016-12-06 18:04:25,626 - Host checks
> started.\n2016-12-06 18:04:25,626 - Check execute list:
> host_resolution_check\n2016-12-06 18:04:25,626 - IP address forward
> resolution check started.\n2016-12-06 18:04:43,192 - There were 1200 host(s)
> that could not resolve to an IP address.\n2016-12-06 18:04:43,193 - IP
> address forward resolution check completed.\n2016-12-06 18:04:43,215 - Host
> checks completed.\n\nCommand completed successfully!\n",
> "structured_out" : {
> "host_resolution_check" : {
> "exit_code" : 0,
> "failed_count" : 1200,
> "failures" : [
> {
> "type" : "FORWARD_LOOKUP",
> "host" : "testvbrodetskyi-0601",
> "cause" : [
> -2,
> "Name or service not known"
> ]
> },
> {
> "type" : "FORWARD_LOOKUP",
> "host" : "testvbrodetskyi-0602",
> "cause" : [
> -2,
> "Name or service not known"
> ]
> },
> {code}
> In case of 1200 for each host we have1200 objects in failures array so in
> result we have 1200x1200 objects as:
> {code:java}
> {
> "type" : "FORWARD_LOOKUP",
> "host" : "testvbrodetskyi-0602",
> "cause" : [
> -2,
> "Name or service not known"
> ]
> },
> {code}
> However we on UI we parse only hosts' names, we can reduce response size by
> changing failures to just array of host_names like:
> "failures" : ["testvbrodetskyi-0602", "testvbrodetskyi-0603",
> "testvbrodetskyi-0604", ...]
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)