[Hawkular-dev] Definition the concept of Application in Hawkular BTM

Thomas Heute theute at redhat.com
Thu May 12 07:20:54 EDT 2016


On Wed, May 11, 2016 at 5:01 PM, Gary Brown <gbrown at redhat.com> wrote:

> Hi
>
> I would like to discuss how best to define the concept of an Application
> within the BTM project, how it relates to the existing concept of a
> "Business Transaction" and how it may link in with the concept of an
> application in Hawkular/ManageIQ in general.
>
> Firstly, for those not familiar with Hawkular BTM, without configuration
> the project can capture and trace an invocation across multiple
> interconnected services. The information can be used to provide stats on
> the individual components used (endpoints, databases, ejbs, etc) as well as
> (in the next version) present a graph showing the relationships between the
> communicating services.
>
> The project also enables "Business Transactions" to be configured - this
> enables a particular invocation of an endpoint to be labelled with a
> business transaction name (which is propagated to the fragments associated
> with the invoked services), and also perform additional processing on the
> messages, such as extract business properties, etc. Once a "Business
> Transaction" has been defined, it is possible to view high level stats
> about the complete "end to end" business transactions.
>
> This is achieved by creating a configuration that identifies the initial
> endpoint for the business transaction, using a regular expression, and then
> a set of 'processors' that are used to perform various processing tasks
> within the scope of that business transaction.
>
> We now have a requirement to identify the concept of an Application, and
> be able to present various stats about it. I believe that the Application
> can be viewed as orthogonal to the Business Transaction concept - so an
> Application represents the various operations that can be performed on a
> particular architectural component, whereas the Business Transaction
> represents a particular path through multiple Applications/Services, only
> using a subset of the operations/endpoints supported by the Application.
>


I quite agree here, except that I would map an application to *several*
achitectural components (for instance N microservices).
Now if you have 2 logical applications (say e-commerce and brand website),
a same architecture component may be shared (say user registration) in the
2 apps.


>
> However the requirements are very similar - when we detect some activity
> on a particular endpoint we want to determine if it belongs to an
> Application, in the same way as we currently do with Business Transactions.
> And similarly, once classified as being associated with an Application, we
> may want to do some application specific processing on the data.
>

So here if an activity on a user registration endpoint is recorded, would
it record for each segment with app it referred to ?


>
> Therefore what I am considering is making the existing Business
> Transaction Configuration generic so that it is suitable for both tasks,
> with a simple classifier to indicate whether it relates to a Business
> Transaction or Application.
>
> This will mean that the fragments of activity being recorded and sent to
> the BTM server could now potentially have two names, one for the business
> transaction (which is propagated across application/service boundaries) and
> one for an application name (which is not propagated).
>
> Where appropriate, the UI could then be updated to allow the user to also
> filter information based on application - this may only make sense on the
> APM page, but could be considered if useful elsewhere. We may also want to
> make the current Business Transaction overview page more general to include
> both Business Transactions and Applications, and then have a different type
> of details page for applications.
>
> The final point is how this may link into Hawkular/ManageIQ. Was thinking
> that where possible, it would be good if a deployment event could be used
> to trigger the configuration of the Application in Hawkular BTM -
> especially if it is possible to obtain the web context for the application
> (or JMS queue/topic), which can then be used to establish the regular
> expression. If this level of integration was possible, then no user defined
> configuration would be necessary to capture application information using
> the same name as in Hawkular - allowing an integrated view of the
> information to be made available.
>
> Thoughts?
>

In general from the very high level view (ManageIQ), I would want to be
able to define a logical notion  of "application" for monitoring purposes,
I would expect to be able to add "entities" to that logical view. It may
just be a war file (and in the case of BTM, I would likely be interested by
all entry points to that application) or it could be an "OpenShift Project"
with all its dependencies (all docker containers + everything in it), or it
could be a selection of MW servers...

In the end, the user should be able to dig into infrastructure details (and
he already has that, he can see details about the infrastructure: a
container, a host, a MW server (coming soon), a MW deployment (coming
soon)...) + details on Business transactions but also have that synthetic
view where he knows that all services that makes his online store are
running fine, and have a few KPI such as the Apdex for all user-facing
interactions, the N slowest URLs or DB requests...

(This definitely goes beyond BTM, and we likely need to simplify and work
on iterations of those ideas (or better ideas))

That's what I dream of, as a user.

Thomas



>
> Regards
> Gary
>
> _______________________________________________
> hawkular-dev mailing list
> hawkular-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hawkular-dev
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/hawkular-dev/attachments/20160512/b4479ac8/attachment.html 


More information about the hawkular-dev mailing list