Showing results for 
Show  only  | Search instead for 
Did you mean: 

This product reached the end of support date on March 31, 2021.

Database Detail in Transaction Flow


We are trying to create UML like information about our services using the transaction flow diagrams generated by DynaTrace. We are having an issue with database calls.

  1. Is there a way to show which services make which calls to a given database, as a part of the transaction flow? We would like to be able to see the actual queries in the transaction flow diagram.
  2. If the above is not possible, is there a way to see the exact database calls by service in the database details dashlet? From the transaction flow, you can right click an agent and click Database details. This view shows the specific queries run by the entire transaction, but not which service made which database call. It simply shows all queries that were made as a part of the transaction.



Dynatrace Leader
Dynatrace Leader


Did you look at the Sequence Diagram view of a given transaction? That might help give you what you want.

But in general keep in mind the difference between individual transaction views and aggregated views. It's not easy to visualize individual details (like the SQL text) of individual transactions when viewing aggregated views. Simply a challenge of too much data to show. Therefore it can be important to drill into specific transactions when you need that level of detail.

Another approach that might work for you is to drill from one view to another view in context. For example, drill from Transaction Flow to Database View. This can be done by mousing over the DB element in the Transaction Flow and selecting "Show Database Calls". This works whether the current transaction flow is a single transaction, or a set of transactions.

Another approach is to find a given SQL call, and right click, drill down to Services, and then you can see which services invoked that SQL text. Or right click on a given service, and drilldown Database, to see the set of SQL calls made from a given service.

Do any of these work for you?

Dynatrace Pro
Dynatrace Pro

Similar to this question, is there a way we can split the DB part of the transaction flow by host so we can determine which DB is slow from the Transaction Flow?

Dynatrace Leader
Dynatrace Leader

Kyle, If you zoom into the Transaction flow, further details will be shown to break down the time by tier. If a given tier (Database) has more than one node in it, that icon will show the number of hosts in the upper right corner with an arrow to allow for expanding. Once expanded, the time of each host can be seen. This allows for determining of which DB is slow when a given transaction accesses more than one database.

Screenshot below showing the zoomed and expanded view with the databases on the right. Notice that these two database don't seem balanced, in traffic volume nor in response time. Of course this isn't the greatest example as these requests are coming from different upstream tiers.

Thanks Joe,

Do you know if this also works on a generic database tier or it needs to be mapped to a supported dynaTrace DB instance? I ask because our DB is an informix DB, and for the most part it shows up as a generic DB in our purepaths.

Dynatrace Leader
Dynatrace Leader

This should work for any DB that is identified uniquely. If a DB can't be identified for some reason, the traffic gets lumped together in a generic bucket. So all generic traffic would be in the same icon.

As for Informix, it should identify it distinctly and if not I would raise a support case to find out why. This assumes you're using a standard JDBC compliant driver. Support will certainly want to know what type of JDBC driver you're using.