Hi

The camel-management already captures on
- context
- route
- processor

levels for each statistics. So you have how many messages are processed by
routes.
You can associate a route to a route. And you can see the route in the
statistics, so your monitoring systems can aggregate data together.

However I think it would also be nice if Camel can do that
https://issues.apache.org/jira/browse/CAMEL-19038

That is on a high level with statistics only (numbers).

For actual message tracing then you can use event notifier, route policy,
message history etc.

To start|stop a collection of routes (in a group) is not possible out of
the box, and you need to do that manually.
Like your pseudo code.





On Fri, Feb 10, 2023 at 6:13 PM ski n <raymondmees...@gmail.com> wrote:

> Hi Cameleers,
>
> I'm wondering what the best way is to manage and monitor a group of routes
> as an integration ('a unit of work')?
> Through the mailing list, I try to gather some ideas on this topic.
>
>
> Background: Integration vs Routes
>
> Say I have three routes that together form my integration:
>
> <routes id="myRoutesGroup" xmlns="http://camel.apache.org/schema/spring";>
>     <route id="myRoutesGroup-1">
>         <from uri="quartz:foo?cron={{myCron}}"/>
>         <log message="Start"/>
>         <to uri="direct:myRoutesGroup-2"/>
>     </route>
>     <route id="myRoutesGroup-2">
>         <from uri="direct:myRoutesGroup-2"/>
>         <log message="In the middle"/>
>         <to uri="direct:myRoutesGroup-3"/>
>     </route>
>     <route id="myRoutesGroup-3">
>         <from uri="direct:myRoutesGroup-3"/>
>         <log message="Finished"/>
>     </route>
> </routes>
>
> So, the work processing messages is split up into three routes, but from a
> high-level view it's just one integration.
>
> From a Camel point of view the order doesn't matter, so I can create the
> same routes also like this:
>
> <routes id="myRoutesGroup" xmlns="http://camel.apache.org/schema/spring";>
>     <route id="myRoutesGroup-3">
>         <from uri="direct:myRoutesGroup-3"/>
>         <log message="Finished"/>
>     </route>
>    <route id="myRoutesGroup-2">
>         <from uri="direct:myRoutesGroup-2"/>
>         <log message="In the middle"/>
>         <to uri="direct:myRoutesGroup-3"/>
>     </route>
> <route id="myRoutesGroup-1">
>         <from uri="quartz:foo?cron={{myCron}}"/>
>         <log message="Start"/>
>         <to uri="direct:myRoutesGroup-2"/>
>     </route>
> </routes>
>
> Because the order doesn't matter for Camel the integration still works the
> same.
> So messages start at the quartz component and then flow through the others
> routes.
>
>
> What I am trying to achieve:
>
> I was wondering how to manage and monitoring such integrations (route
> groups) at once. Here is some pseudo-code how I imagine it:
>
> RoutesGroup myRoutesGroup = context.getRouteGroup("myRoutesGroup");
> myRoutesGroup.suspend(); //suspends all routes in a group
> myRoutesGroup.start(); //starts all routes in a group
> myRoutesGroup.stop(); //stops all routes in a group
> myRoutesGroup.status(); //get the status from group
>
> Besides managing the integration I also like to monitor it as a group. For
> example to get:
>
> 1. Number or Content of messages processed by a group (in and out messages)
> 2. Number or Content of messages processed by a single route in the group
> (in and out message).
>
> With the second, I mean messages on a route level. What message goes into a
> route and what messages go out. This in contrast to exchanges, because
> exchanges create events on a lower level. In this example I am using direct
> component, so that would create the following exchange events:
>
> 1. First route: ExchangeCreated, some ExchangeSending/ExchangeSent events
> 2. Second route: Only sending/sent events
> 3. Third route: Sending/sent events and the completed event.
>
> From an integration point of view, I am only interested in what goes in and
> out the integration and how many messages that are. Or I am interested
> what messages are going into and out a single route (as a processing step).
>
> Is there a way to work with integrations opposed to routes? What are the
> possibilities in Camel?
>
> Raymond
>


-- 
Claus Ibsen
-----------------
@davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to