[ 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)