Welcome!

Agile Computing Authors: Pat Romanski, Zakia Bouachraoui, Elizabeth White, William Schmarzo, Liz McMillan

Related Topics: @DevOpsSummit, Agile Computing, @DXWorldExpo

@DevOpsSummit: Blog Feed Post

Transaction Tracing for Performance Bottleneck Detection | @DevOpsSummit #DevOps

Transaction Tracing refers to end-to-end request code execution

Transaction Tracing for Performance Bottleneck Detection
by Mick Emmett

When you’re building a monitoring solution or evaluate existing ones, what do you look for? Probably these four core aspects of functionality:

  1. Collection and display of metrics
  2. Alerting based on metric values and anomalies
  3. Collection and display of server and application logs and other types of events
  4. Alerting based on log patterns and metrics extracted from logs

But there is really one more juicy piece of functionality one should look for:

  • Distributed Transaction Tracing

What’s more, as a nice side-effect of Transaction Tracing in SPM you will also get:

  • Your app’s Request Throughput, Response Latency, plus Error & Exception Rates
  • AppMap, which which how various components in your infrastructure communicate with each other

What is Distributed Transaction Tracing?
[Note: If you know what Transaction Tracing is and what the benefits are, you can jump right to the bottom of this post to see how to enable it.]

When we say transaction in this context we are not referring to database transactions.  In the context of Application Performance Monitoring, Transaction Tracing refers to end-to-end request code execution that can span multiple applications running and multiple servers.

For example, when you shop on Amazon.com and search for a product there, your search action starts a request transaction that can be traced though various layers of Amazon.com’s application and server infrastructure, all the way down to the database and back.  That is what SPM’s Transaction Tracing can do, too, for your own applications and servers.

Where Transaction Tracing fits in
Let’s start with a simple diagram. The little “SPM agent” box is the embedded agent responsible for tracing all transactions and capturing information about them.  Everything in orange and all red arrows would be traced by SPM’s agent, even as transactions go across networks and hop from server to server – hence Distributed Transaction Tracing.

TT_2

Now, let’s quickly look at a slightly more complex diagram:

TT_3

Here we also see an external HTTP service (e.g. third party REST API) our application talks to via HTTP.  That, too, is captured, along with all orange components and red arrows.  We can also see Service1 has multiple internal classes and methods.  SPM traces execution deep inside your code, too, so it can tell you which methods in which classes are slow.

How / Why is Transaction Tracing useful?
In short, Transaction Tracing is great for:

  • Pinpointing root causes of poor application performance, so you can fix ‘em and make your users happy and your mom and dad proud!
  • Finding the slowest parts of your application, so you can speed up troubleshooting and get the most return for your development time

Have a look at the following chart and you’ll be able to relate.  It shows the response time for one of our real components deployed in production.  You can see how response time improved at one point, right?

We enabled Transaction Tracing to find and fix a bottleneck in our own code.  In short, we went from the 99th percentile response time for one of the components being 1-3 seconds to about 0.15-0.30 seconds.  That’s about 10x faster!

TT_5

Where & How to enable Transaction Tracing
If you’ve been using SPM you are likely to use one of its integrations for monitoring your backend infrastructure – Apache Spark, Solr, Storm, Elasticsearch, Hadoop, Cassandra, Kafka, that sort of backend stuff. As you can see from the above diagrams, transaction tracing starts closer to the front-end — in the tier that runs client applications which talk to backend and remote services, as well as data stores like Solr, Elasticsearch, Cassandra, HBase, MySQL, and data processing frameworks like Apache Spark or Kafka, or even Hadoop.

In other words, to get the full benefit of Transaction Tracing you need to do the following:

  • If your webapps run in Tomcat create a new SPM App for Tomcat.  If you use Jetty, Glassfish, JBoss, or some other Java container simply create an SPM App for JVM.
  • Add SPM Agent to your webapp tier (e.g. to your webapps running in Tomcat, Jetty, Glassfish, JBoss, and similar Java containers).  Use the Embedded (aka javaagent), not Standalone mode.
  • Enable Transaction Tracing in SPM Agent configs in all your tiers

And that’s it.  Once you have Transaction Tracing enabled look under the new Transactions tab in SPM:

TT_1a

In the coming days, we’ll be publishing more information about Transaction Tracing in SPM, including how-tos, additional functionality derived from Transaction Tracing, etc.

In the meantime, here are the key points:

  • Transaction Tracing does not require you to modify any source code – the instrumentation is done automatically, at the JVM bytecode level
  • Transaction Tracing is currently available for Java and Scala apps running inside the JVM
  • Transaction Tracing is exposed via the new “Transactions” report (tab) on the left side in the UI.  That said, the key bit to understand is that Transaction Tracing is really means for finding bottlenecks in your applications and how they talk to backend services, frameworks, and external services, not in the backend applications your applications connect to. See the diagram further above.
  • We support deep insight into specific technologies listed in SPM Transaction Tracing documentation
  • You’ll want to grab the latest version of the SPM client (it has some optimizations, too!)
  • You’ll need to use the SPM monitor in the embedded (aka javaagent) mode, not standalone
  • To add Transaction Tracing to your own custom apps you can easily create a custom pointcut

Not using SPM yet, but would like to trace your apps? Just register here.  It doesn’t hurt, doesn’t require signing your life or kids away, there is no commitment, and you can leave your credit card in your wallet.  You get 30 days Free for new SPM Apps.  You can invite your colleagues, so you can collaboratively monitor your app and find those pesky bottlenecks!  Oh, and if you are a young startup, a small or non-profit organization, or an educational institution, ask us for a discount (see special pricing)!

Filed under: Monitoring Tagged: performance monitoring, spm, Transaction tracing

Read the original blog entry...

More Stories By Sematext Blog

Sematext is a globally distributed organization that builds innovative Cloud and On Premises solutions for performance monitoring, alerting and anomaly detection (SPM), log management and analytics (Logsene), and search analytics (SSA). We also provide Search and Big Data consulting services and offer 24/7 production support for Solr and Elasticsearch.

IoT & Smart Cities Stories
Dion Hinchcliffe is an internationally recognized digital expert, bestselling book author, frequent keynote speaker, analyst, futurist, and transformation expert based in Washington, DC. He is currently Chief Strategy Officer at the industry-leading digital strategy and online community solutions firm, 7Summits.
Digital Transformation is much more than a buzzword. The radical shift to digital mechanisms for almost every process is evident across all industries and verticals. This is often especially true in financial services, where the legacy environment is many times unable to keep up with the rapidly shifting demands of the consumer. The constant pressure to provide complete, omnichannel delivery of customer-facing solutions to meet both regulatory and customer demands is putting enormous pressure on...
IoT is rapidly becoming mainstream as more and more investments are made into the platforms and technology. As this movement continues to expand and gain momentum it creates a massive wall of noise that can be difficult to sift through. Unfortunately, this inevitably makes IoT less approachable for people to get started with and can hamper efforts to integrate this key technology into your own portfolio. There are so many connected products already in place today with many hundreds more on the h...
The standardization of container runtimes and images has sparked the creation of an almost overwhelming number of new open source projects that build on and otherwise work with these specifications. Of course, there's Kubernetes, which orchestrates and manages collections of containers. It was one of the first and best-known examples of projects that make containers truly useful for production use. However, more recently, the container ecosystem has truly exploded. A service mesh like Istio addr...
Digital Transformation: Preparing Cloud & IoT Security for the Age of Artificial Intelligence. As automation and artificial intelligence (AI) power solution development and delivery, many businesses need to build backend cloud capabilities. Well-poised organizations, marketing smart devices with AI and BlockChain capabilities prepare to refine compliance and regulatory capabilities in 2018. Volumes of health, financial, technical and privacy data, along with tightening compliance requirements by...
Charles Araujo is an industry analyst, internationally recognized authority on the Digital Enterprise and author of The Quantum Age of IT: Why Everything You Know About IT is About to Change. As Principal Analyst with Intellyx, he writes, speaks and advises organizations on how to navigate through this time of disruption. He is also the founder of The Institute for Digital Transformation and a sought after keynote speaker. He has been a regular contributor to both InformationWeek and CIO Insight...
Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settlement products to hedge funds and investment banks. After, he co-founded a revenue cycle management company where he learned about Bitcoin and eventually Ethereal. Andrew's role at ConsenSys Enterprise is a mul...
To Really Work for Enterprises, MultiCloud Adoption Requires Far Better and Inclusive Cloud Monitoring and Cost Management … But How? Overwhelmingly, even as enterprises have adopted cloud computing and are expanding to multi-cloud computing, IT leaders remain concerned about how to monitor, manage and control costs across hybrid and multi-cloud deployments. It’s clear that traditional IT monitoring and management approaches, designed after all for on-premises data centers, are falling short in ...
In his general session at 19th Cloud Expo, Manish Dixit, VP of Product and Engineering at Dice, discussed how Dice leverages data insights and tools to help both tech professionals and recruiters better understand how skills relate to each other and which skills are in high demand using interactive visualizations and salary indicator tools to maximize earning potential. Manish Dixit is VP of Product and Engineering at Dice. As the leader of the Product, Engineering and Data Sciences team at D...
Dynatrace is an application performance management software company with products for the information technology departments and digital business owners of medium and large businesses. Building the Future of Monitoring with Artificial Intelligence. Today we can collect lots and lots of performance data. We build beautiful dashboards and even have fancy query languages to access and transform the data. Still performance data is a secret language only a couple of people understand. The more busine...