Notifications

Notification channels define where alerts are delivered and under what conditions. You can attach multiple channels to a single monitor and use condition expressions to route alerts selectively — for example, sending all alerts to a general channel but routing URGENT monitors to PagerDuty.

Channels


Requires the mailer option to be enabled in the Uptrace config file. Users must have a valid email address set in their profile. Self-hosted only.

Create an Incoming Webhook in your Slack workspace and paste the webhook URL into the channel form. Select the target channel or DM recipient in the Slack app configuration.

Create an Incoming Webhook integration in your Mattermost team and paste the webhook URL into the channel form.

Create a bot via @BotFather and copy the bot token. Add the bot to the target group or channel, then copy the chat ID from the group info.

Create an Incoming Webhook connector in your Teams channel and paste the webhook URL. Alerts are delivered as adaptive cards.

Create a service in PagerDuty with an "Events API v2" integration and copy the integration key. Uptrace creates and resolves incidents automatically.

Create an API integration in Opsgenie and copy the API key. Uptrace sends alerts with the monitor name as the title.

Enter your Prometheus AlertManager endpoint URL. Alerts are forwarded in the Alertmanager v2 format.

Create an Incoming Webhook in your Google Chat space and paste the webhook URL into the channel form.

Create an application in Pushover to get an API token. Provide the token and your user key in the channel form.

Generate an API key in your incident.io account settings and paste it into the channel form. Uptrace creates and resolves incidents automatically.

Uptrace sends a POST request with a JSON body to the configured URL on every alert state change. Use this to integrate with any custom system.

Configure your ServiceNow instance URL and credentials. Uptrace creates and resolves incidents through the ServiceNow REST API.

Create a channel via Alerting → Channels → New channel. Select the channel type, fill in the connection details, and optionally add a routing condition to filter which alerts it receives.

Channel conditions

When creating a channel, you can specify a condition expression to filter which alerts it receives. Conditions are written in the Expr language.

In addition to Expr's built-in functions, Uptrace provides:

FunctionReturns
monitorName() stringThe monitor name.
alertName() stringThe alert name.
alertType() string"error" or "metric".
attr(key string) stringThe value of an alert attribute.
hasAttr(key string) booltrue if the attribute exists on the alert.

Route only prod alerts to a Slack channel:

text
attr("deployment_environment") == "prod"

Route only prod hosts to PagerDuty:

text
attr("host_name") startsWith "prod-"

Route only URGENT monitors:

text
monitorName() contains "URGENT"

Route all metric alerts to one channel, all error alerts to another:

text
alertType() == "metric"

Notification frequency

On the first occurrence, Uptrace creates an alert and sends a notification immediately. For ongoing occurrences, Uptrace uses an adaptive interval that increases over time to reduce alert fatigue.

Metric monitors — interval starts at 15 minutes and doubles every 3 notifications. Maximum is 24 hours.

Notifications sentInterval
1–315 minutes
4–630 minutes
7–91 hour
10–122 hours
...doubles every 3
max24 hours

Error monitors — interval starts at 1 hour and doubles every 2 notifications. Maximum is 1 week.

Notifications sentInterval
1–21 hour
3–42 hours
5–64 hours
7–88 hours
...doubles every 2
max1 week

When an alert closes, Uptrace sends a recovery notification immediately. The total number of notifications is not limited — a metric monitor that never recovers will notify every 24 hours indefinitely.

Email notifications

To receive email notifications in Uptrace Community, users must have correct email addresses configured and the mailer option must be enabled in the Uptrace config file.