You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mesos.apache.org by Alex Rukletsov <al...@mesosphere.com> on 2016/07/22 15:07:48 UTC
On creating actor instances in Mesos
Folks,
I've noticed recently that some actors do not specify a distinguishable
actor ID. As a result, it may be hard to match output to a specific actor,
for example an excerpt from "__processes__" endpoint:
[{"events":[],"id":"(10)"},{"events":[],"id":"(11)"},{"events":[],"id":"(1279859)"},{"events":[],"id":"(15)"},
... ]
Every time you create an actor, i.e., a `ProcessBase` instance, you most
probably want to give it a meaningful id. Consider `StatusUpdateManager`.
Currently, the code does not specify the ID:
StatusUpdateManagerProcess::StatusUpdateManagerProcess(const Flags& _flags)
: flags(_flags), paused(false) {}
Instead, a preferred way of calling the `StatusUpdateManagerProcess` c-tor
would be:
StatusUpdateManagerProcess::StatusUpdateManagerProcess(const Flags& _flags)
: ProcessBase(process::ID::generate("status-update-manager")),
flags(_flags),
paused(false) {}
Best,
Alex
Re: On creating actor instances in Mesos
Posted by Gastón Kleiman <ga...@mesosphere.io>.
Hi,
As you can see in MESOS-5917, I made sure that all the processes I could
find specify a distinguishable IDs.
After talking to Alex R and Ben M, I enforced the following naming schema:
For processes created by Mesos:
- Every process must specify a distinguishable process ID.
- The process ID must contain only lowercase characters and use a dash
as word separator, e.g., `zookeeper-leader-contender`.
- A common pattern is to prefix the ID with the name of the component,
e.g., `log-recover`, `logrotate-logger`.
For processes created by libprocess:
- The ID of a process internal to libprocess (one with not associated
route/endpoint) must be enclosed in double underscores, and use underscores
instead of dashes as word separator, e.g., `__authentication_router__`.
- The Mesos process ID naming schema applies to libprocess exposed to
libprocess users, via a route/associated to an endpoint, e.g., use `help`
instead of `__help__`.
From now on, please make sure you adhere to this naming scheme when
defining new processes!
Thanks,
-Gastón
On Sat, Jul 23, 2016 at 12:04 AM, Timothy Chen <tn...@gmail.com> wrote:
> +1
>
> Previously when I was adding tracing to Mesos this was one of the most
> missing piece of metadata to easily detect sender and receiver
> information.
>
> Tim
>
> On Fri, Jul 22, 2016 at 11:07 PM, Alex Rukletsov <al...@mesosphere.com>
> wrote:
> > Folks,
> >
> > I've noticed recently that some actors do not specify a distinguishable
> > actor ID. As a result, it may be hard to match output to a specific
> actor,
> > for example an excerpt from "__processes__" endpoint:
> >
> > [{"events":[],"id":"(10)"},{"events":[],"id":"(11)"},{"
> events":[],"id":"(1279859)"},{"events":[],"id":"(15)"},
> > ... ]
> >
> > Every time you create an actor, i.e., a `ProcessBase` instance, you most
> > probably want to give it a meaningful id. Consider `StatusUpdateManager`.
> > Currently, the code does not specify the ID:
> >
> > StatusUpdateManagerProcess::StatusUpdateManagerProcess(const Flags&
> _flags)
> > : flags(_flags), paused(false) {}
> >
> > Instead, a preferred way of calling the `StatusUpdateManagerProcess`
> c-tor
> > would be:
> >
> > StatusUpdateManagerProcess::StatusUpdateManagerProcess(const Flags&
> _flags)
> > : ProcessBase(process::ID::generate("status-update-manager")),
> > flags(_flags),
> > paused(false) {}
> >
> > Best,
> > Alex
>
Re: On creating actor instances in Mesos
Posted by Timothy Chen <tn...@gmail.com>.
+1
Previously when I was adding tracing to Mesos this was one of the most
missing piece of metadata to easily detect sender and receiver
information.
Tim
On Fri, Jul 22, 2016 at 11:07 PM, Alex Rukletsov <al...@mesosphere.com> wrote:
> Folks,
>
> I've noticed recently that some actors do not specify a distinguishable
> actor ID. As a result, it may be hard to match output to a specific actor,
> for example an excerpt from "__processes__" endpoint:
>
> [{"events":[],"id":"(10)"},{"events":[],"id":"(11)"},{"events":[],"id":"(1279859)"},{"events":[],"id":"(15)"},
> ... ]
>
> Every time you create an actor, i.e., a `ProcessBase` instance, you most
> probably want to give it a meaningful id. Consider `StatusUpdateManager`.
> Currently, the code does not specify the ID:
>
> StatusUpdateManagerProcess::StatusUpdateManagerProcess(const Flags& _flags)
> : flags(_flags), paused(false) {}
>
> Instead, a preferred way of calling the `StatusUpdateManagerProcess` c-tor
> would be:
>
> StatusUpdateManagerProcess::StatusUpdateManagerProcess(const Flags& _flags)
> : ProcessBase(process::ID::generate("status-update-manager")),
> flags(_flags),
> paused(false) {}
>
> Best,
> Alex