Loading

Create a latency threshold rule

Note

For Observability serverless projects, the Editor role or higher is required to create latency threshold rules. To learn more, refer to Assign user roles and privileges.

You can create a latency threshold rule to alert you when the latency of a specific transaction type in a service exceeds a defined threshold. Threshold rules can be set at different levels: environment, service, transaction type, and/or transaction name. Add actions to raise alerts via services or third-party integrations e.g. mail, Slack, Jira.

Create rule for APM latency threshold alert
Tip

These steps show how to use the Alerts UI. You can also create a latency threshold rule directly from any page within Applications. Click the Alerts and rules button, and select Create threshold rule and then Latency. When you create a rule this way, the Name and Tags fields will be prepopulated but you can still change these.

To create your latency threshold rule:

  1. In Observability UI, go to Alerts.

  2. Select Manage Rules from the Alerts page, and select Create rule.

  3. Enter a Name for your rule, and any optional Tags for more granular reporting (leave blank if unsure).

  4. Select the Latency threshold rule type from the APM use case.

  5. Select the appropriate Service, Type, Environment and Name (or leave ALL to include all options). Alternatively, you can select Use KQL Filter and enter a KQL expression to limit the scope of your rule.

  6. Define the threshold and period:

    • When: Choose between Average, 95th percentile, or 99th percentile.
    • Is Above: Enter a time in milliseconds (defaults to 1500ms).
    • For the last: Define the period to be assessed in (defaults to last 5 minutes).
  7. Choose how to Group alerts by. Every unique value will create an alert.

  8. Define the interval to check the rule (for example, check every 1 minute).

  9. (Optional) Set up Actions.

  10. Save your rule.

You can extend your rules with actions that interact with third-party systems, write to logs or indices, or send user notifications. You can add an action to a rule at any time. You can create rules without adding actions, and you can also define multiple actions for a single rule.

To add actions to rules, you must first create a connector for that service (for example, an email or external incident management system), which you can then use for different rules, each with their own action frequency.

The latency threshold alert triggers when the latency of a specific transaction type in a service exceeds a defined threshold.

Before continuing, identify the service name, environment name, and transaction type that you’d like to create a latency threshold rule for.

This guide will create an alert for an error group ID based on the following criteria:

  • Service: {your_service.name}
  • Transaction: {your_transaction.name}
  • Environment: {your_service.environment}
  • Average latency is above 1500ms for last 5 minutes
  • Group alerts by service.name and service.environment
  • Check every 1 minute
  • Send the alert via email to the site reliability team

From any page in Applications, select Alerts and rulesCreate threshold ruleLatency threshold. Change the name of the alert (if you wish), but do not edit the tags.

Based on the criteria above, define the following rule details:

  • Service: {your_service.name}
  • Type: {your_transaction.name}
  • Environment: {your_service.environment}
  • When: Average
  • Is above: 1500ms
  • For the last: 5 minutes
  • Group alerts by: service.name service.environment
  • Check every: 1 minute

Next, select the Email connector and click Create a connector. Fill out the required details: sender, host, port, etc., and select Save.

A default message is provided as a starting point for your alert. You can use the Mustache template syntax ({{variable}}) to pass additional alert values at the time a condition is detected to an action. A list of available variables can be accessed by selecting the add variable button.

Select Save. The alert has been created and is now active!