locked
query external resources RRS feed

  • Question

  • Hi,

    Is it possible to create a database query that returns all the external resources that an application uses like databases, WCF, remoting, etc... ?

    What also would help is a documentation of the APM database model.

    Much appreciated,

    Peter

    Tuesday, June 12, 2012 1:46 PM

Answers

  • The amount and type of data really depends on the way our data producers are written - different technologies can employ different techniques to extract that data. In the case of a database, a connection string contains the instance name and database name - for ASMX you should have a URI, for WCF we don't show the URI in 2012, but we are doing work in SP1 to expose that too. Your feedback is useful: what other information would you like to see here?

    In our current implementation, keep also in mind that we don't just show every single external resource, but just those that led to events (exceptions or performance violations) - APM data is essentially a list of those "events". We don't store topology information (if that's what you are referring to as "map") within the APM piece itself, if those resources are never throwing any exceptions or are never considered "slow".

    Within the APM piece, in AppDiagnostics, you can select (on the top-left end) to only see "Performance" events, and then group by "Heaviest resource", or you can use reports in AppAdvisor to see those resources.

    Outside of it, in the Operations Manager piece, we have had a fairly elaborate notion of "service modeling" for some years now, but we don't discover those relationships automatically (yet) in the case of APM. We do, however, define an "application group" made up of "application components" (that represent tiers where your code runs) as part of the configuration - take a look at this blog post I wrote: http://blogs.technet.com/b/momteam/archive/2012/01/14/apm-object-model.aspx

    You could use the Distributed Application Designer in Operations Manager - we have specifically introduced a new template in 2012, the "3-Tier .NET application" which allows you to combine APM "application components" (for your front-end and middle-tier) together with "Watcher-style" synthetic transactions as well as Databases that have been discovered by, say, the SQL Server Monitoring Pack. Creating the distributed application would be a manual process at this point but, even if you don't know how the app works, once you have identified the right objects from the APM events, you should be able to go find the corresponding database or web tier --> those are discovered in Operations Manager by Management Packs.

    Friday, June 15, 2012 1:53 PM

All replies

  • Hi Peter, have you looked at AppAdvisor reports? Some of that information is available already out of the box.

    For example "Application Heavy Resources" could be one of those...

    But if you want more control, you could export the RDL files from the SQL Reporting Services Server and look at the report's "code" - which shows you the queries we do.

    As a side note, I'll try to do a blog post in the future with some SQL queries... the schema for the APM tables is not documented, but it is fairly straightforward, compared to the "traditional" OpsMgr tables, at least...

    Tuesday, June 12, 2012 2:35 PM
  • Hi Daniele,

    the idea was to create an automatic map/report with information about the external resources the applications use, like databases, WCF, remoting, asmx, mqseries, ...

    I had a look in the DB and it seems that no detailed network information is collected for external resources.  E.g. for databases it seems to be limited to the connection string and the name of the DB.

    Peter

    Friday, June 15, 2012 8:53 AM
  • The amount and type of data really depends on the way our data producers are written - different technologies can employ different techniques to extract that data. In the case of a database, a connection string contains the instance name and database name - for ASMX you should have a URI, for WCF we don't show the URI in 2012, but we are doing work in SP1 to expose that too. Your feedback is useful: what other information would you like to see here?

    In our current implementation, keep also in mind that we don't just show every single external resource, but just those that led to events (exceptions or performance violations) - APM data is essentially a list of those "events". We don't store topology information (if that's what you are referring to as "map") within the APM piece itself, if those resources are never throwing any exceptions or are never considered "slow".

    Within the APM piece, in AppDiagnostics, you can select (on the top-left end) to only see "Performance" events, and then group by "Heaviest resource", or you can use reports in AppAdvisor to see those resources.

    Outside of it, in the Operations Manager piece, we have had a fairly elaborate notion of "service modeling" for some years now, but we don't discover those relationships automatically (yet) in the case of APM. We do, however, define an "application group" made up of "application components" (that represent tiers where your code runs) as part of the configuration - take a look at this blog post I wrote: http://blogs.technet.com/b/momteam/archive/2012/01/14/apm-object-model.aspx

    You could use the Distributed Application Designer in Operations Manager - we have specifically introduced a new template in 2012, the "3-Tier .NET application" which allows you to combine APM "application components" (for your front-end and middle-tier) together with "Watcher-style" synthetic transactions as well as Databases that have been discovered by, say, the SQL Server Monitoring Pack. Creating the distributed application would be a manual process at this point but, even if you don't know how the app works, once you have identified the right objects from the APM events, you should be able to go find the corresponding database or web tier --> those are discovered in Operations Manager by Management Packs.

    Friday, June 15, 2012 1:53 PM
  • The information I would like is the URL, IP Addresses and network names.  But it would be great if APM could also automatically collect topology information. 

    Those pesky developers don't tell us all the time which resources they are connecting to :-)

    Sunday, June 17, 2012 4:31 PM
  • It's good feedback and a very valid scenario. We'll see what we can do in the future about this :-)

    Thanks!

    Sunday, June 17, 2012 6:07 PM