Support for non-unique process labels?
Frans Schneider
fchschneider@REDACTED
Fri May 7 10:14:31 CEST 2021
As I understand it, the problem at hand is about identifying processes
in observer or while debugging and not so much an Erlang / OTP issue. In
my opinion, one should add functionality to the observer to display a
particular process attribute (your non-unique process label) instead of
or alongside the pid. Making changes to the observer is not very hard
and may be a nice addition to its functionality. The process status tab
in the observer's interface is a logical place but adding or replacing
pids in the application view probably is what tou really want and which
isn't very difficult either. It may look something like if attribute is
defined then display attribute else display pid. The attribute also can
be used while tracing or what ever.
In logging, adding this non-unique process label isn't very hard either
(see logger metadata
<https://erlang.org/doc/apps/kernel/logger_chapter.html#metadata>)
BR
Frans
On 5/7/21 9:49 AM, Stanislav Ledenev wrote:
> Sorry I've misread your message. My first question is irrelevant.
> Could you explain in more details why you need that?
> In my experience I try to give names to every *long-living* process I
> start (except for "simple_one_for_one" for obvious reasons).
> For the short-living processes, when needed for debugging, I give
> internal Ids (like UUID) to be printed to logs.
>
> чт, 6 мая 2021 г. в 19:55, Nathan Long <him@REDACTED
> <mailto:him@REDACTED>>:
>
> Is there a way to add a non-unique label to a process? If not, I
> would like to propose that it be added.
>
> The label could be shown with or instead of a PID. I think this
> would be useful in at least two areas.
>
> First, when observing a running system, the PID is not
> descriptive. I have Observer open right now looking at part of my
> system, and I can see one globally registered process name
> displayed, but everything else is a PID. What are those processes?
> I might be able to figure it out by clicking the process and
> seeing what its initial call was, but often I can tell is "it's a
> GenServer." The structure of the system would be much more
> apparent if I saw labels like "db_connection" or
> "request_queue_worker".
>
> Second, when reading error messages in logs or an exception
> tracker, the PID is not useful. For example, I'm looking at an
> error in Sentry right now that says "Sentry.CrashError error **
> (exit) 'stopping because dependent process <0.2255.0> died:
> killed'". I have no idea what `<0.2555.0>` was, so I don't know
> what to debug.
>
> Does this exist or would others support it being added to the BEAM?
>
> -- Nathan
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20210507/37debcad/attachment.htm>
More information about the erlang-questions
mailing list