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

Gary Brown gbrown at redhat.com
Fri May 13 06:24:33 EDT 2016


Hi Stefan

On further reflection, I think your suggestion of using properties/tags is better. Will help to simplify the UI and enable greater flexibility in how the fragments are categorised.

Regards
Gary


----- Original Message -----
> Hello,
> 
> What was described in the original email sounded to me like tagging. A
> transaction fragment stored in BTM could be tagged with an arbitrarily
> number of tags. Here is an example { application: myapp, service:
> superservice, datacenter: east}. And then the API needs to allow users to
> query data based on tags and query the actual tag values.
> 
> So rather than expanding the design to cover just one other single concept
> (application) the design with tags is generic and flexible.
> 
> 
> Thank you,
> Stefan Negrea
> 
> Software Engineer
> 
> On Thu, May 12, 2016 at 7:47 AM, Gary Brown < gbrown at redhat.com > wrote:
> 
> 
> Hi Thomas
> 
> I think possibly there are different concepts here, so I need to clarify -
> the one I was trying to describe is to capture the individual services,
> which may be user facing, and would essentially map onto the individual
> services (in a micro-services world).
> 
> So possibly rather than application, it should be termed "service"? which
> would actually match the microservices world better anyway.
> 
> This service concept, especially in the case of user facing endpoints, would
> be used to derive stats like Apdex - although the same stats could be
> defined for internal services as well, to provide the dev teams behind those
> services with a satisfaction index for their consumers.
> 
> I think the highlevel communication diagram provided in the Distributed
> Tracing UI page could act as the basis for understanding which 'services'
> and resources (if we dig further to understand databases, etc used) are used
> to deliver the total 'application'.
> 
> Having an understanding of the separate 'services' and potentially the
> resources they used, could then enable ManageIQ to build the logical
> grouping that you mention, out of those services? So to be clear, BTM could
> provide a highlevel understanding of the services and their communication
> paths (and possibly resources used), and ManageIQ could use this information
> to selectively (or as a complete set of interrelated services) present the
> user with a logical group consisting of those managed objects.
> 
> > So here if an activity on a user registration endpoint is recorded, would
> > it
> > record for each segment with app it referred to ?
> > 
> 
> Wasn't sure what you meant here, if you could give an example?
> 
> Regards
> Gary
> 
> 
> ----- Original Message -----
> > 
> > 
> > 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
> > 
> > 
> > 
> > 
> > _______________________________________________
> > hawkular-dev mailing list
> > hawkular-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/hawkular-dev
> > 
> _______________________________________________
> hawkular-dev mailing list
> hawkular-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hawkular-dev
> 
> 
> _______________________________________________
> hawkular-dev mailing list
> hawkular-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/hawkular-dev
> 


More information about the hawkular-dev mailing list