How do I sort and filter sample data?
AppSignal is designed to help you quickly get to the root cause of errors and performance issues.
This guide will familiarise you with AppSignal's filtering and sorting functionality, so you can quickly navigate to issues and samples with ease.
This article will help you to:
- ✅ Add tags to performance and error samples
- ✅ Sort and filter issue lists
- ✅ Filter and sort samples
- ✅ Filter saved samples
- ✅ Customize sample overviews
Add tags to performance and error samples
Tags are a great way to add additional context to performance and error samples. You could, for example, create tags containing user ids or other important logic like organization ids or order ids, to help you quickly access sample data relevant to specific contexts, like:
- All samples for a specific user
- All samples for a specific organization
- All samples for a specific order
You can set tags wherever the current transaction or span is accessible. We recommend calling a tag before your application code runs in a request, such as a callback.
Let's imagine we have an e-commerce application that handles payments. We want to add tags to user_id and stripe_customer_id fields in samples to help us better filter issues. Below are examples of how to do this depending on which language you use:
Ruby
Use the Appsignal.tag_request helper method:
before_action do
Appsignal.tag_request(
:user_id => current_user.id,
:stripe_customer_id => stripe_customer_id,
)
endElixir
Use the Appsignal.Span.set_sample_data helper function:
Appsignal.Span.set_sample_data(
Appsignal.Tracer.root_span,
"tags",
%{
locale: "en",
user_id: user_id,
stripe_customer_id: stripe_customer_id,
}
)Node.js
Use the imported setTag helper function:
import { setTag } from "@appsignal/nodejs";
setTag("user_id", user_id);
setTag("stripe_customer_id", stripe_customer_id);Python
Use the set_tag helper method:
from appsignal import set_tag
set_tag("user_id", user_id)
set_tag("stripe_customer_id", stripe_customer_id)Once that's configured, you'll see the following data when viewing error or performance samples in AppSignal:

You can then use those tags to filter and sort sample data in AppSignal.
You can learn more about tagging by reading our Adding tags to a request documentation.
Sort and filter issue lists
By default, AppSignal offers six filterable variables for error and performance samples:
- Namespace: The namespace where the incident occurred, for example,
web,frontend,backend, or a custom namespace name. - Status: The status of an issue, which can have one of the following values:
- Open
- Work in progress
- Closed
- Severity: The severity of the issue, in order from most to least critical:
- Critical
- High
- Low
- Informational
- No severity set
- Assignee: The team member assigned to an issue.
- Action name: The name of the action where an issue occurred.
- Deployment: Filter issues to a specific deployment.

You can use these filters to search and filter issues in the Performance and Errors Issue lists.
Performance issue list columns
Issues can also be sorted in ascending or descending order alphabetically or numerically by clicking on the relevant column:
| Column name | Description |
|---|---|
| Action name | The name of the endpoint where the performance issue occurred, for example, the controller/endpoint or background job name. |
| Status | The status of a performance issue. |
| Mean | The mean of the value of all occurrences of this issue. For example, the mean response time for a slow performance issue. |
| Throughput | The throughput of an application is the total number of requests sent through an action/job in a certain time frame. Sorting by throughput can help you target performance issues in the areas of your application that receive the most traffic. |
| Impact | The impact of an action on an application depends on its frequency and duration relative to other actions. When one action takes longer or occurs more frequently its impact increases. You can use this metric to help understand and prioritize which issues are having the greatest impact on your application's performance. For example: Total combined duration: 2000 seconds. |
| Assignees | The team members assigned to an issue. |
Error issue list columns
| Column | Description |
|---|---|
| Action and error type | The action name and error type of an issue, for example: ActionName#NoMethodError |
| Status | The status of an error issue. |
| In deploy | The amount of times an error has occurred in the latest deployment. |
| Total | Total number of error occurrences. |
| Last | The datetime of the most recent error occurrence. |
| Assignees | The team members assigned to an issue. |
Filter and sort samples
When viewing an error or performance issue, you can filter samples of other occurrences for the same issue. The attributes that can be filtered will vary depending on what custom data tags you track with AppSignal. Clicking on an attribute value will automatically apply a filter to the overview.
Samples can be sorted in ascending or descending order by clicking on the relevant column:
Performance issue
(This ignores any custom data tags your application tracks.)
| Column | Sorted by |
|---|---|
| Time | The datetime of the sample. |
| Duration | The amount of time the request took to execute. |
| N+1 | The amount of N+1 queries detected in the sample. |
| Hostname | The name of the host where the sample occurred. |
| Method | The HTTP method of the action where the issue occurred. |
| Request_id | The ID of the request. |
| Request_method | The method of the request. |
Error issue
(This ignores any custom data tags your application tracks.)
| Column | Sorted by |
|---|---|
| Time | The datetime of the sample. |
| Hostname | The name of the host where the sample occurred. |
| Method | The HTTP method of the action where the issue occurred. |
| Path | The path where the error occurred. |
| Request_method | The method of the request. |
| Revision | The revision where the error occurred (if revisions are configured). |
Filter saved samples
When reviewing an issue's saved sample, you can navigate and filter other saved samples. By default, you can filter samples based on datetime. Revisions are also a great way to quickly filter samples to a specific deployment. If you've configured deploy markers, you will see them in the saved samples list.
Samples can be filtered by using tag values in the Saved samples search bar, or by clicking on the filter icon in the "Tags for sample" table.

Customize sample overviews
To make it easier to filter error and performance samples, you can customize what attributes the issue sample table shows.

What attributes are available will depend on what data you send to AppSignal.
To learn more about sending custom data via tags, we recommend reading our tagging documentation.
Make your next crash make sense.
Free for 30 days. No credit card. Two-minute install.