In APM, the Trace details tab shows the timing of individual segments in a transaction trace. This document describes the sections and features of the Trace details tab.
Trace details page functions
Go to one.newrelic.com > All capabilities > APM & services > (select an app) > Monitor > Transactions > (select a transaction trace) > Trace details.
The Trace details page displays a table and waterfall with the timing data for the segments in a transaction, plus additional features and functions. Additional tabs are available to view all segment attributes and database queries recorded during the trace.
Trace details page | Description |
---|---|
Primary trace data, functions | The top of each transaction trace UI page shows several primary pieces of data, including the trace time, response time, and, if available, CPU info. Also, sometimes the UI may indicate a partial trace. When the trace is derived from Distribtued tracing, it also contains a link to view the full distributed that includes this transaction trace. |
Segment column | The Segment column displays segment names and counts. Fast and repeat calls may be automatically grouped together. Sometimes you may see Application code as the name of a segment or subsegment. Use the expand and collapse dropdown arrows to expand segments. |
Segment icons | Icons represent significant characteristics of the segments. |
Duration column | The duration of each segment and subsegment is shown as both the number of milliseconds and a percentage of the total transaction time. Especially slow segments are color-coded. |
Segment icons
Icons indicate significant characteristics of a segment:
Icon | Description |
---|---|
Database queries | The database icon identifies a database call segment. Click on the segment to view the raw database query. Depending on your transaction trace settings, this query can either show as raw data or obfuscated data. |
Stack traces | The stack trace icon icon indicates that a stack trace is available for this segment. |
Latency | The latency icon indicates that this segment accounts for a significant portion of latency in the trace. See latency color codes. |
Color coding of segment duration data
The Duration column of the Trace details table is color-coded:
Red: More than 25% of the total transaction time was spent in this segment.
Yellow: More than 5% of the total transaction time was spent in this segment.
Color-coded durations do not necessarily indicate a problem. Whether the timing is actually a problem depends on what you consider normal and acceptable for your application.
Application code in traces
If a segment is listed as Application code in the table, it indicates that that section of code was not instrumented. You can use custom instrumentation to get more detail on that part of the code. Segments will often be listed as Application code for partial traces.
Partial traces
For performance reasons, APM only captures the first 2,000 segments of a transaction trace (900 for Node.js). If a transaction trace exceeds that number of segments, the agent truncates the transaction trace and displays a message at the top of the Details page:
This is a partial trace.
The APM agents have differing rules for when to truncate segments.
APM agent | Truncate segment rules |
---|---|
Go | The segment duration must be greater than the |
Java, .NET, Ruby | These agents truncate traces chronologically. For more information, see the transaction tracer documentation for Java, .NET, or Ruby as applicable. |
Node.js | The Node.js agent only captures the first 900 segments of a transaction trace. For more information, see Node.js transaction tracer configuration. |
PHP | Truncates based on segment duration; the slowest 2,000 segments are captured for the trace. For more information, see PHP transaction tracer configuration. |
Python | Truncates based on segment duration; the slowest 2,000 segments are captured for the trace. For more information, see Python transaction tracer configuration. |
Segment grouping rules
Transaction traces that have a lot of segments can be hard to interpret. New Relic helps you by automatically grouping fast and/or repeated method calls into a single segment grouping.
For example, you might see a segment titled 7 fast method calls
. This means that, because of their fast completion, New Relic assumed these calls were unlikely to be a problem and grouped them together. You can expand that grouping to see the individual segments.
Rules underlying segment grouping include:
- Fast calls: When New Relic detects four or more consecutive segments with a duration of 7.5 ms or less, these are grouped into a single collapsed header.
- Identical calls: When New Relic detects four or more consecutive identical calls, this usually indicates an N+1 problem. These segments are collapsed. Expanding the collapsed node displays only the first three calls, not all calls.
Distributed traces
When a transaction trace is based on distributed trace data, you can view the full distributed trace by clicking on the distributed trace link in the page header.
The trace details page will display slightly different information when looking at a distributed trace instead of a transaction trace.
- All attributes are grouped into a single
Attributes
section rather than being split out into the three default attribute types - Segment metric names may differ slightly between distributed traces and transaction traces
- Stack traces are not displayed in segment attributes