Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents


 


What is Transaction Tracing

Transaction tracing lets one trace code execution from beginning to end.  It also enabled Database Operations reporting. In case of SPM, transaction tracing can also cross applications, networks, and servers. For example, you can trace code execution from a beginning of an HTTP request made to a web application through any calls this web application makes to relational, NoSQL, or any other databases or backend servers and services like Elasticsearch or Solr or Kafka, etc., all the way to the response the application returns to the original caller. Transaction tracing is not limited to HTTP requests - one can also trace arbitrary applications, including backend apps, command-line apps, batch jobs like MapReduce, etc.  Such tracing makes it possible to find performance bottlenecks in running code, whether in production or some other environment.

Starting with version 1.24.10, the SPM client provides ability to track application transactions, thus making it easier to find bottleneck in running applications and troubleshoot performance issues.

Notes:

  • Transaction Tracing requires SPM monitor running in embedded mode (in-process/javaagent).
  • Enabling/disabling the tracing agent requires SPM monitor restart, which means it requires the restart of the application running the embedded SPM monitor.
  • Enabling transaction traces adds only about 1% CPU overhead.
  • Transaction Tracing is different from On Demand Profiling.

Resources:

...

To enable tracing edit the monitor configuration file - /opt/spm/spm-monitor/conf/spm-monitor-config-${token}-${jvm}.properties:

...

Precedence rules for resolving transaction names:

PrecedenceNaming
3Servlet config parameter
2Spring handler
1Servlet/Filter

Non-web transactions can be (re)named using the transaction-name attribute as described in Custom Pointcuts section.

...