memory_breakdown: correctly format for CSV

This commit is contained in:
Michael Klishin 2019-01-30 21:47:07 +03:00
parent 7db0d6ee01
commit de3bca0658
1 changed files with 15 additions and 1 deletions

View File

@ -43,7 +43,21 @@ defmodule RabbitMQ.CLI.Diagnostics.Commands.MemoryBreakdownCommand do
:rabbit_misc.rpc_call(node_name, :rabbit_vm, :memory, [], timeout)
end
def output(result, _options) do
def output(result, %{formatter: "json"} = _opts) do
{:ok, compute_relative_values(result)}
end
def output(result, %{formatter: "csv"} = _opts) do
flattened = compute_relative_values(result)
|> Enum.flat_map(fn({k, %{bytes: b, percentage: p}}) ->
[{"#{k}.bytes", b}, {"#{k}.percentage", p}] end)
|> Enum.sort_by(fn({key, _val}) -> key end, &>=/2)
headers = Enum.map(flattened, fn {k, _v} -> k end)
values = Enum.map(flattened, fn {_k, v} -> v end)
{:stream, [headers, values]}
end
def output(result, _opts) do
{:ok, compute_relative_values(result)}
end