mirror of
https://github.com/elastic/kibana.git
synced 2025-04-23 17:28:26 -04:00
90 lines
No EOL
5.2 KiB
Text
90 lines
No EOL
5.2 KiB
Text
[[transactions]]
|
|
=== Transaction overview
|
|
|
|
TIP: A {apm-overview-ref-v}/transactions.html[transaction] describes an event captured by an Elastic APM agent instrumenting a service.
|
|
The APM agents automatically collect performance metrics on HTTP requests, database queries, and much more.
|
|
|
|
// Clicking *service* brings you to detail of transaction
|
|
Selecting a <<services,*service*>> will display all associated *transactions*.
|
|
The charts and table on this dashboard display the transaction duration, requests per minute, and a list of transactions for the selected service.
|
|
|
|
[role="screenshot"]
|
|
image::apm/images/apm-transactions-overview.png[Example view of transactions table in the APM UI in Kibana]
|
|
|
|
*Transaction duration* shows the response times for this service and is broken down into average, 95th, and 99th percentile.
|
|
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.
|
|
|
|
*Requests per minute* is divided into response codes: 2xx, 3xx, 4xx, etc.,
|
|
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.
|
|
|
|
The table at the bottom is similar to the <<traces,traces>> overview and shows the name of each transaction occurring in the selected service.
|
|
Transactions with the same name are grouped together and only shown once in this table.
|
|
By default, transactions are sorted by _Impact_.
|
|
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]
|
|
====
|
|
The transaction overview will only display helpful information when the transactions in your service are named correctly.
|
|
|
|
Elastic APM Agents come with built-in support for popular frameworks out-of-the-box.
|
|
However, if you only see one route in the Transaction overview page, or if you have transactions named "unknown route",
|
|
it could be a symptom that the agent either wasn't installed correctly or doesn't support your framework.
|
|
|
|
For further details, including troubleshooting and custom implementation instructions,
|
|
refer to the documentation for each {apm-agents-ref}[APM Agent] you've implemented.
|
|
====
|
|
|
|
[[transaction-details]]
|
|
==== Transaction details
|
|
|
|
Selecting a transaction group will bring you to the *transaction* details.
|
|
Transaction details include a high-level overview of the transaction group duration,
|
|
requests per minute, and transaction group duration distribution.
|
|
It's important to note that all three of these graphs show data from every transaction within the selected transaction group.
|
|
|
|
[role="screenshot"]
|
|
image::apm/images/apm-transaction-response-dist.png[Example view of response time distribution]
|
|
|
|
A single sampled transaction is also displayed.
|
|
This sampled transaction is based on your selection in the *Transactions duration distribution*.
|
|
You can update the sampled transaction by selecting a new _bucket_ in the transactions duration distribution graph.
|
|
The number of requests per bucket is displayed when hovering over the graph, and the selected bucket is highlighted to stand out.
|
|
|
|
[role="screenshot"]
|
|
image::apm/images/apm-transaction-duration-dist.png[Example view of transactions duration distribution graph]
|
|
|
|
Let's look at an example.
|
|
In the screenshot below,
|
|
you'll notice most of our requests fall into buckets on the left side of the graph,
|
|
with a long tail of smaller buckets to the right.
|
|
This is 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.
|
|
By clicking on these buckets,
|
|
we're presented with a span timeline waterfall showing what a typical request in that bucket was doing.
|
|
By investigating this timeline waterfall, we can hopefully see why it was slow and then implement a fix.
|
|
|
|
[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>>.
|
|
|
|
For a particular transaction sample, we can get even more information in the tabs:
|
|
|
|
* *Timeline* - See the <<spans, Spans>> section for more information.
|
|
* *Request* - The URL, headers, body, etc..
|
|
* *Response* - The response.
|
|
* *System* - The system hostname, architecture, platform, etc..
|
|
* *Service* - The service/application runtime, agent, name, etc..
|
|
* *Process* - The process id that served up the request.
|
|
* *User* - This requires additional configuration, but allows you to see which user experienced the current transaction.
|
|
This can be extremely useful if it's determined that specific users are getting slow requests.
|
|
* *Tags* - Useful if you want to start correlating transactions with log files or metrics from Metricbeat.
|
|
* *Custom* - You can configure your agent to add custom contextual information on transactions.
|
|
|
|
TIP: All of this data is stored in documents in Elasticsearch.
|
|
This means you can select "Actions - View sample document" to see the actual Elasticsearch document under the discover tab. |