def profile(shell, queries, timeout=0, count=1, rounds=1): report = {} for name, query in queries.iteritems(): forced = True if name == "force" else False if not forced: print("Profiling query: %s" % query) results = {} for i in range(rounds): if forced: result = utils.profile_cmd(shell, shell=True, timeout=timeout, count=count) else: result = run_query(shell, query, timeout=timeout, count=count) summary( {"%s (%d/%d)" % (name, i + 1, rounds): result}, display=True) # Store each result round to return an average. for k, v in result.iteritems(): results[k] = results.get(k, []) results[k].append(v) average_results = {} for k in results: average_results[k] = sum(results[k]) / len(results[k]) report[name] = average_results if rounds > 1: summary({"%s avg" % name: report[name]}, display=True) return report
def run_query(shell, query, timeout=0, count=1): """Execute the osqueryi shell in profile mode with a setup/teardown delay.""" start_time = time.time() return utils.profile_cmd( [shell, "--profile", str(count), "--profile_delay", "1", query], timeout=timeout, count=count)
def run_query(shell, query, timeout=0, count=1): """Execute the osqueryi shell in profile mode with a setup/teardown delay.""" start_time = time.time() return utils.profile_cmd([ shell, "--profile", str(count), "--profile_delay", "1", query ], timeout=timeout, count=count)
def run_query(shell, query, timeout=0, count=1): """Execute the osquery run testing wrapper with a setup/teardown delay.""" start_time = time.time() proc = subprocess.Popen( [shell, "--query", query, "--iterations", str(count), "--delay", "1"], stdout=subprocess.PIPE, stderr=subprocess.PIPE) return utils.profile_cmd([ shell, "--query", query, "--iterations", str(count), "--delay", "1" ])