diff options
author | Luke Bakken <luke@bakken.io> | 2022-12-11 09:18:15 -0800 |
---|---|---|
committer | Luke Bakken <luke@bakken.io> | 2022-12-11 09:18:15 -0800 |
commit | 6aed425c4ad4262ab1bcc0353ffab57a68eb1f37 (patch) | |
tree | 6d63f2d0cced2ce794f527e82718b1e42bf41332 | |
parent | 6a89f865363ea16d2d7799098fd1cb4dc6bf1629 (diff) | |
download | rabbitmq-server-git-lukebakken/rabbitmq-server-6613-followup.tar.gz |
Follow-up to #6613lukebakken/rabbitmq-server-6613-followup
`handle.exe` seems to always have `"Total handles: NNN` in the output,
so use that.
-rw-r--r-- | deps/rabbitmq_management_agent/src/rabbit_mgmt_external_stats.erl | 44 |
1 files changed, 39 insertions, 5 deletions
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_external_stats.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_external_stats.erl index 00a7d2053c..4f781ce1a9 100644 --- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_external_stats.erl +++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_external_stats.erl @@ -124,7 +124,7 @@ get_used_fd({win32, _}, State0) -> UsedFd = get_used_fd_via_powershell(Pid), {State1, UsedFd}; _ -> - case find_files_line(HandleExeOutput) of + case parse_handle_output(HandleExeOutput) of unknown -> State1 = log_fd_warning_once("handle.exe output did not contain " "a line beginning with 'File', using " @@ -138,16 +138,50 @@ get_used_fd({win32, _}, State0) -> end end. -find_files_line([]) -> +%% handle.exe /accepteula -s -p 10416 +%% +%% Nthandle v5.0 - Handle viewer +%% Copyright (C) 1997-2022 Mark Russinovich +%% Sysinternals - www.sysinternals.com +%% +%% Handle type summary: +%% <Unknown type> : 113 +%% ALPC Port : 8 +%% Desktop : 1 +%% Directory : 2 +%% Event : 130 +%% File : 32 +%% IoCompletion : 19 +%% IoCompletionReserve: 1 +%% IRTimer : 6 +%% Key : 17 +%% Mutant : 2 +%% Process : 2 +%% Section : 3 +%% Semaphore : 8 +%% Thread : 17 +%% Timer : 2 +%% TpWorkerFactory : 3 +%% WaitCompletionPacket: 15 +%% WindowStation : 2 +%% Total handles: 383 + +parse_handle_output([]) -> unknown; % Note: % rabbit_misc:win32_cmd trims the output, so there will be no % leading/trailing whitespace -find_files_line(["File " ++ Rest | _T]) -> +% "Total handles: 387" +parse_handle_output(["Total handles " ++ Rest | _T]) -> + [TotalHandles] = string:tokens(Rest, ": "), + list_to_integer(TotalHandles); +% Note: +% File, if present, always comes before "Total handles" +parse_handle_output(["File " ++ Rest | _T]) -> [Files] = string:tokens(Rest, ": "), list_to_integer(Files); -find_files_line([_H | T]) -> - find_files_line(T). +parse_handle_output([_H | T]) -> + parse_handle_output(T). get_used_fd_via_powershell(Pid) -> Cmd = "Get-Process -Id " ++ Pid ++ " | Select-Object -ExpandProperty HandleCount", |