2020-04-15 21:40:15 +02:00
|
|
|
[role="xpack"]
|
2019-01-30 18:08:11 +01:00
|
|
|
[[transactions]]
|
|
|
|
=== Transaction overview
|
|
|
|
|
2020-02-12 18:41:02 +01:00
|
|
|
TIP: A {apm-overview-ref-v}/transactions.html[transaction] describes an event captured by an Elastic APM agent instrumenting a service.
|
|
|
|
APM agents automatically collect performance metrics on HTTP requests, database queries, and much more.
|
2019-01-30 18:08:11 +01:00
|
|
|
|
2019-06-14 22:24:48 +02:00
|
|
|
Selecting a <<services,*service*>> brings you to the *transactions* overview.
|
2019-01-30 18:08:11 +01:00
|
|
|
|
|
|
|
[role="screenshot"]
|
2019-11-20 19:05:14 +01:00
|
|
|
image::apm/images/apm-transactions-overview.png[Example view of transactions table in the APM app in Kibana]
|
2019-01-30 18:08:11 +01:00
|
|
|
|
2020-10-21 16:42:41 +02:00
|
|
|
The *transaction duration*, *transactions per minute*, *transaction error rate*, and *time spent by span type*
|
|
|
|
charts display information on all transactions associated with the selected service:
|
2019-07-19 22:52:29 +02:00
|
|
|
|
2020-02-12 18:41:02 +01:00
|
|
|
*Transaction duration*::
|
|
|
|
Response times for this service, broken down into average, 95th, and 99th percentile.
|
2019-01-30 18:08:11 +01:00
|
|
|
If there's a weird spike that you'd like to investigate,
|
|
|
|
you can simply zoom in on the graph - this will adjust the specific time range,
|
|
|
|
and all of the data on the page will update accordingly.
|
|
|
|
|
2020-10-21 16:42:41 +02:00
|
|
|
*Transactions per minute*::
|
2020-02-12 18:41:02 +01:00
|
|
|
Visualize response codes: `2xx`, `3xx`, `4xx`, etc.,
|
2019-01-30 18:08:11 +01:00
|
|
|
and is useful for determining if you're serving more of one code than you typically do.
|
|
|
|
Like in the Transaction duration graph, you can zoom in on anomalies to further investigate them.
|
|
|
|
|
2020-10-21 16:42:41 +02:00
|
|
|
*Transaction error rate*::
|
|
|
|
Visualize the total number of transactions with errors divided by the total number of transactions.
|
|
|
|
Any unexpected increases, decreases, or irregular patterns can be investigated further
|
|
|
|
with the <<errors,errors overview>>.
|
|
|
|
|
|
|
|
*Time spent by span type*::
|
|
|
|
Visualize where your application is spending most of its time.
|
|
|
|
For example, is your app spending time in external calls, database processing, or application code execution?
|
|
|
|
+
|
|
|
|
The time a transaction took to complete is also recorded and displayed on the chart under the "app" label.
|
|
|
|
"app" indicates that something was happening within the application, but we're not sure exactly what.
|
|
|
|
This could be a sign that the agent does not have auto-instrumentation for whatever was happening during that time.
|
|
|
|
+
|
|
|
|
It's important to note that if you have asynchronous spans, the sum of all span times may exceed the duration of the transaction.
|
|
|
|
|
2020-02-12 18:41:02 +01:00
|
|
|
[[transactions-table]]
|
|
|
|
==== Transactions table
|
|
|
|
|
|
|
|
The *Transactions* table displays a list of _transaction groups_ for the selected service.
|
|
|
|
In other words, this view groups all transactions of the same name together,
|
|
|
|
and only displays one entry for each group.
|
|
|
|
|
|
|
|
[role="screenshot"]
|
|
|
|
image::apm/images/apm-transactions-table.png[Example view of the transactions table in the APM app in Kibana]
|
|
|
|
|
2019-06-14 22:24:48 +02:00
|
|
|
By default, transaction groups are sorted by _Impact_.
|
2019-01-30 18:08:11 +01:00
|
|
|
Impact helps show the most used and slowest endpoints in your service - in other words,
|
|
|
|
it's the collective amount of pain a specific endpoint is causing your users.
|
|
|
|
If there's a particular endpoint you're worried about, you can click on it to view the <<transaction-details, transaction details>>.
|
|
|
|
|
|
|
|
[IMPORTANT]
|
|
|
|
====
|
2020-02-12 18:41:02 +01:00
|
|
|
If you only see one route in the Transactions table, or if you have transactions named "unknown route",
|
2020-03-16 18:12:08 +01:00
|
|
|
it could be a symptom that the agent either wasn't installed correctly or doesn't support your framework.
|
2019-01-30 18:08:11 +01:00
|
|
|
|
|
|
|
For further details, including troubleshooting and custom implementation instructions,
|
|
|
|
refer to the documentation for each {apm-agents-ref}[APM Agent] you've implemented.
|
|
|
|
====
|
|
|
|
|
2019-09-25 11:34:20 +02:00
|
|
|
[[rum-transaction-overview]]
|
|
|
|
==== RUM Transaction overview
|
|
|
|
|
|
|
|
The transaction overview page is customized for the JavaScript RUM Agent.
|
2020-10-21 16:42:41 +02:00
|
|
|
Specifically, the page highlights *page load times* for your service:
|
2019-09-25 11:34:20 +02:00
|
|
|
|
|
|
|
[role="screenshot"]
|
2020-06-12 17:14:19 +02:00
|
|
|
image::apm/images/apm-geo-ui.png[average page load duration distribution]
|
2019-09-25 11:34:20 +02:00
|
|
|
|
2020-10-21 16:42:41 +02:00
|
|
|
Additional RUM goodies, like core vitals, and visitor breakdown by browser, location, and device,
|
|
|
|
are available in the Observability User Experience tab.
|
|
|
|
// To do
|
|
|
|
// Add link to the Observability UE docs when complete
|
2019-09-25 11:34:20 +02:00
|
|
|
|
2019-01-30 18:08:11 +01:00
|
|
|
[[transaction-details]]
|
|
|
|
==== Transaction details
|
|
|
|
|
|
|
|
Selecting a transaction group will bring you to the *transaction* details.
|
2020-10-21 16:42:41 +02:00
|
|
|
This page is visually similar to the transaction overview, but it shows data from all transactions within
|
|
|
|
the selected transaction group.
|
2019-01-30 18:08:11 +01:00
|
|
|
|
|
|
|
[role="screenshot"]
|
|
|
|
image::apm/images/apm-transaction-response-dist.png[Example view of response time distribution]
|
|
|
|
|
2020-02-12 18:41:02 +01:00
|
|
|
Up to ten sampled transactions are also displayed.
|
2020-10-21 16:42:41 +02:00
|
|
|
These sampled transactions are based on the _bucket_ selection in the *Transactions duration distribution* chart.
|
|
|
|
You can update the sampled transactions by selecting a new _bucket_.
|
|
|
|
The number of requests per bucket is displayed when hovering over the graph,
|
|
|
|
and the selected bucket is highlighted to stand out.
|
|
|
|
|
|
|
|
The screenshot below shows a typical distribution, and indicates most of our requests were served quickly--awesome!
|
|
|
|
It's the requests on the right, the ones taking longer than average, that we probably want to focus on.
|
2019-01-30 18:08:11 +01:00
|
|
|
|
|
|
|
[role="screenshot"]
|
|
|
|
image::apm/images/apm-transaction-duration-dist.png[Example view of transactions duration distribution graph]
|
|
|
|
|
2020-10-21 16:42:41 +02:00
|
|
|
When you select a bucket,
|
2020-02-12 18:41:02 +01:00
|
|
|
you're presented with up to ten trace samples.
|
2020-10-21 16:42:41 +02:00
|
|
|
Each sample has a trace timeline waterfall that shows how a typical request in that bucket executed.
|
|
|
|
This waterfall is useful for understanding the parent/child hierarchy of transactions and spans,
|
|
|
|
and ultimately determining _why_ a request was slow.
|
|
|
|
For large waterfalls, expand problematic transactions and collapse well-performing ones
|
|
|
|
for easier problem isolation and troubleshooting.
|
2019-01-30 18:08:11 +01:00
|
|
|
|
|
|
|
[role="screenshot"]
|
|
|
|
image::apm/images/apm-transaction-sample.png[Example view of transactions sample]
|
|
|
|
|
|
|
|
NOTE: More information on timeline waterfalls is available in <<spans, spans>>.
|
|
|
|
|
2019-06-14 22:24:48 +02:00
|
|
|
For a particular transaction sample, we can get even more information in the *metadata* tab:
|
|
|
|
|
|
|
|
* Labels - Custom labels added by agents
|
|
|
|
* HTTP request/response information
|
|
|
|
* Host information
|
|
|
|
* Container information
|
|
|
|
* Service - The service/application runtime, agent, name, etc..
|
|
|
|
* Process - The process id that served up the request.
|
|
|
|
* Agent information
|
|
|
|
* URL
|
|
|
|
* User - Requires additional configuration, but allows you to see which user experienced the current transaction.
|
|
|
|
* Custom - You can configure your agent to add custom contextual information on transactions.
|
2019-01-30 18:08:11 +01:00
|
|
|
|
|
|
|
TIP: All of this data is stored in documents in Elasticsearch.
|
2020-02-12 18:41:02 +01:00
|
|
|
This means you can select "Actions - View sample document" to see the actual Elasticsearch document under the discover tab.
|