defmodule Observer.Web.Observer.Process do @moduledoc false use Observer.Web, :html use Phoenix.Component alias Observer.Web.Components.Attention attr :info, :map, required: true attr :id, :map, required: true def content(assigns) do info = assigns.info {process_overview, process_memory} = if is_map(info) do process_overview = [ %{name: "Id", value: "#{inspect(info.pid)}"}, %{name: "Registered name", value: "#{info.registered_name}"}, %{name: "Status", value: "#{info.meta.status}"}, %{name: "Class", value: "#{info.meta.class}"}, %{name: "Message Queue Length", value: "#{info.message_queue_len}"}, %{name: "Group Leader", value: "#{inspect(info.relations.group_leader)}"}, %{name: "Trap exit", value: "#{info.trap_exit}"} ] process_memory = [ %{name: "Total", value: "#{info.memory.total}"}, %{name: "Heap Size", value: "#{info.memory.heap_size}"}, %{name: "Stack Size", value: "#{info.memory.stack_size}"}, %{name: "GC Min Heap Size", value: "#{info.memory.gc_min_heap_size}"}, %{name: "GC FullSweep After", value: "#{info.memory.gc_full_sweep_after}"} ] {process_overview, process_memory} else {nil, nil} end assigns = assigns |> assign(process_overview: process_overview) |> assign(process_memory: process_memory) ~H"""