Skip to main content

Alerts

Inigo supports the ability to generate real-time alerts of events with your GraphQL API such as errors. Additionally, Inigo supports exporting these alerts to Slack, with more integrations coming in the future.

The main use case for alerts is to provide notifications to GraphQL service admins to inform them of GraphQL query errors or critical metric thresholds being surpassed, such as rate limits.

Configuring Alerts

An Alerts configuration is used to define various alerts that will be triggered based on metric, threshold, window of time, and filters.

In the following example, an alert would be generated for the demo:dev Service when there are 5 errors within 2 minutes for a query operation named Login:

alerts.yaml
kind: Alerts
name: demo
label: prod
spec:
alerts:
- name: "login_errors"
metric: calls
window: 2m
threshold: 5
filters:
operation_name: Login
has_errors: true

In an Alerts configuration, an AlertsFilter must be defined under the filters property. Filters can be created for hash, status, operation_type, operation_name, client, has_errors, error, and tag. Please review the Alerts configuration doc for details.

Once the Alerts configuration YAML file is created, it can be applied using the inigo apply command.

Note: Alerts are set individually for each Service, and the name and label must match an existing Service.

Viewing Alert Events

When alerts are triggered, they will be logged in Inigo's top-level Events screen under the Service Category. By viewing these alert events, you will be able to verify that they are being properly generated.

Exporting Alerts to Slack

For each Inigo Service, an Export configuration can be created, and this should be done through the Inigo Config UI for Export as shown in Figure 1.

Inigo Architecture, Composed Schema
Figure 1. Config UI for Export

Upon clicking the Edit button for the Export, a Connect to Slack button will appear as shown in Figure 2.

Inigo Architecture, Composed Schema
Figure 2. Set the destination for the Export.

The next step is to allow Inigo to have permissions to your Slack workspace as shown in Figure 3. The workspace can be changed in the upper-right menu if necessary.

Inigo Architecture, Composed Schema
Figure 3. Give Inigo permissions for Slack.

After clicking Allow the browser window will return to the Export config screen. Before continuing, click the Apply button on the upper right of the screen as shown in Figure 4.

Inigo Architecture, Composed Schema
Figure 4. Create the Export.

After clicking Apply, the Slack channel can be selected, as shown in Figure 5. The Slack channel can be either a public or a private channel.

Inigo Architecture, Composed Schema
Figure 5. Set the Slack channel.

Click the Apply button on the upper right of the screen again, and a screen similar to Figure 6 will be shown.

Inigo Architecture, Composed Schema
Figure 6. Slack channel is set. The setup is completed.

Note: After completing this setup flow, a Secret will be created that contains the Slack token. The Secret can be shown by running inigo get secrets from the CLI.

Viewing Alerts in Slack

After the Alerts configuration is applied, and the flow to set up the Slack integration is completed, alerts will be exported the configured Slack channel as shown in Figure 7.

Inigo Architecture, Composed Schema
Figure 7. An example of an alert in Slack.