I'm fine with the REST API being a better answer or part of the answer.

A separate system that can monitor and manage an instance through the REST
API might be the right way to go, plus it separates the concerns of monitor
and monitored.

But to me, a controller service seems like a logical choice for a tool to
be configure with thresholds that will be used to evaluate processors and
queues and either alert or modify UI parameters when components exceed the
thresholds.  My original use case was the "Processor Stop Light Service"
that could change the background (or something similar) for controllers
based on their state.

On Fri, Apr 22, 2016 at 10:03 AM, Bryan Bende <bbe...@gmail.com> wrote:

> I think the only way you could do it directly without the REST API is by
> having access to the FlowController,
> but that is purposely not exposed to extension points... actually
> StandardFlowController is what implements the
> EventAccess interface which ends up providing the path way to the status
> objects.
>
> I would have to defer to Joe, Mark, and others about whether we would want
> to expose direct access to components
> through controller services, or some other extension point.
>
> On Fri, Apr 22, 2016 at 9:46 AM, Jeremy Dyer <jdy...@gmail.com> wrote:
>
> > Bryan,
> >
> > The ReportingTask enumeration makes sense and was helpful for something
> > else I am working on as well.
> >
> > Like Joe however I'm looking for a way to not just get the *Status
> objects
> > but rather start and stop processors. Is there a way to do that from the
> > ReportContext scope? I imagine you could pull the Processor "Id" from the
> > ProcessorStatus and then use the REST API but was looking for something
> > more direct than having to use the REST API
> >
> >
> > On Fri, Apr 22, 2016 at 9:23 AM, Bryan Bende <bbe...@gmail.com> wrote:
> >
> > > Hi Joe,
> > >
> > > I'm not sure if a controller service can do this, but a ReportingTask
> has
> > > access to similar information.
> > >
> > > A ReportingTask gets access to a ReportingContext, which can access
> > > EventAccess which can access ProcessGroupStatus.
> > >
> > > From ProcessGroupStatus you are at the root process group and can
> > enumerate
> > > the flow:
> > >
> > > private Collection<ConnectionStatus> connectionStatus = new
> > ArrayList<>();
> > > private Collection<ProcessorStatus> processorStatus = new
> ArrayList<>();
> > > private Collection<ProcessGroupStatus> processGroupStatus = new
> > > ArrayList<>();
> > > private Collection<RemoteProcessGroupStatus> remoteProcessGroupStatus =
> > new
> > > ArrayList<>();
> > > private Collection<PortStatus> inputPortStatus = new ArrayList<>();
> > > private Collection<PortStatus> outputPortStatus = new ArrayList<>();
> > >
> > > Not sure if that is what you were looking for.
> > >
> > > -Bryan
> > >
> > >
> > > On Fri, Apr 22, 2016 at 8:25 AM, Joe Skora <jsk...@gmail.com> wrote:
> > >
> > > > Is it possible and if so what is the best way for a controller
> service
> > to
> > > > get the collection of all processors or queues?
> > > >
> > > > The goal being to iterate over the collection of processors or queues
> > to
> > > > gather information or make adjustments to the flow.
> > > >
> > >
> >
>

Reply via email to