<div dir="ltr">As far as I understand how VM works implementation of the idea of garbage collectable atoms will lead to devastating consequences. And performance will be the first victim.<br><br>IMHO cheapest implementation of process labels can be achieved on top of process dictionary (oh, slippery) through some special value. Plus modification of observer app.  <br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">пт, 7 мая 2021 г. в 11:24, Loïc Hoguin <<a href="mailto:essen@ninenines.eu">essen@ninenines.eu</a>>:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">What you want is to be able to either:<br>
<br>
* register processes using any term and not just atoms<br>
* have garbage collectable atoms<br>
<br>
That way Observer will always show the proper name.<br>
<br>
Then for logs all you need is for <0.2555.0> to be identified at some <br>
point (in other logs with its registered name + pid for example). Or <br>
hook into logger as others have pointed out.<br>
<br>
GC atoms has long been on the wishlist of many people:<br>
<br>
* <a href="https://www.erlang.org/erlang-enhancement-proposals/eep-0020.html" rel="noreferrer" target="_blank">https://www.erlang.org/erlang-enhancement-proposals/eep-0020.html</a><br>
* <a href="https://github.com/nox/otp/commit/bf3334c1d2c0e404abaec72a985134def158afcf" rel="noreferrer" target="_blank">https://github.com/nox/otp/commit/bf3334c1d2c0e404abaec72a985134def158afcf</a><br>
<br>
It would be fantastic if this could get traction.<br>
<br>
Cheers,<br>
<br>
On 06/05/2021 16:06, Nathan Long wrote:<br>
> Is there a way to add a non-unique label to a process? If not, I would <br>
> like to propose that it be added.<br>
> <br>
> The label could be shown with or instead of a PID. I think this would be <br>
> useful in at least two areas.<br>
> <br>
> First, when observing a running system, the PID is not descriptive. I <br>
> have Observer open right now looking at part of my system, and I can see <br>
> one globally registered process name displayed, but everything else is a <br>
> PID. What are those processes? I might be able to figure it out by <br>
> clicking the process and seeing what its initial call was, but often I <br>
> can tell is "it's a GenServer." The structure of the system would be <br>
> much more apparent if I saw labels like "db_connection" or <br>
> "request_queue_worker".<br>
> <br>
> Second, when reading error messages in logs or an exception tracker, the <br>
> PID is not useful. For example, I'm looking at an error in Sentry right <br>
> now that says "Sentry.CrashError error ** (exit) 'stopping because <br>
> dependent process <0.2255.0> died: killed'". I have no idea what <br>
> `<0.2555.0>` was, so I don't know what to debug.<br>
> <br>
> Does this exist or would others support it being added to the BEAM?<br>
> <br>
> -- Nathan<br>
<br>
-- <br>
Loïc Hoguin<br>
<a href="https://ninenines.eu" rel="noreferrer" target="_blank">https://ninenines.eu</a><br>
</blockquote></div>