Viewing Traces

A trace is the path of a single request through an application. AppOptics gathers traces on a continuous basis and mines them for data, then makes them available in the UI filterable based on a number of criteria.

At a high level, traces are grouped by service (though a single trace can span multiple services), and you can find them under each service’s Overview page.

Trace Heatmap

The heat map chart shows a histogram of the request latency. The y-axis represents the request latency, and the color intensity of the chart represents the number of requests. The darker the color, the more requests. This chart type makes it easy to identify outliers. You can further adjust the chart to only show requests below certain percentiles and limit the number of rows displayed. To learn about specific traces you can click and drag your mouse around a specific request or group of requests on the chart. This will filter the list of traces beneath the chart to only show the ones in the area you selected.

trace_latency

Searching for particular traces

Filtering: By using the Filter By feature you have the ability to filter by any of the suggested tags, e.g. drill down into a specific transaction.

Scope: By default, we show the Traced Requests–traces of requests to the service in question. If you hover over Traced Requests you will see a dropdown menu that allows you to switch to database queries, remote service calls, or cache calls.

trace_dropdown

Trace Details

Clicking on a trace will display trace details. A single trace could be as simple as a single span on a web server hosting static content, or as complex as the path through a load balancer into one of many app servers, through to an API call, and back again.

trace_breakdown

As previously noted, traces can span across multiple services. You can view the details for this trace within a specific service by using the Trace Breakdown by dropdown. In this example, the only service this trace interacts with is api.

trace-breakdown-by-service

Clicking on a span in the chart opens up a detail window on the right. In the example below, I have clicked on the sequel span, which is a Ruby library being used by this application to query a database. The detail window shows information from the database name right down to the query that was executed.

trace_breakdown_detail

The tables below the visualization are also interactive: clicking a row in the table will pull up details about the relevant span(s) in the right-hand panel.

If any errors occur during the duration of the trace, they will be displayed in the All Errors table. Opening the detail window for a span shows high-level information about the errors, including a link to the full backtraces. In the example below, the insertworker span is a Python process that threw a ConnectionError exception.

trace_breakdown_detail_errors