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:
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:
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:
Use the Appsignal.tag_request
helper method:
before_action do Appsignal.tag_request( :user_id => current_user.id, :stripe_customer_id => stripe_customer_id, ) end
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, } )
Use the imported setTag
helper function:
import { setTag } from "@appsignal/nodejs"; setTag("user_id", user_id); setTag("stripe_customer_id", stripe_customer_id);
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.
By default, AppSignal offers six filterable variables for error and performance samples:
web
, frontend
, backend
, or a custom namespace name.You can use these filters to search and filter issues in the Performance and Errors Issue lists.
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. |
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. |
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). |
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.
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.
AppSignal offers a 30-day free trial, no credit card is required. All features are available in all plans. Start monitoring your application in just a few clicks!