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