Ready to lean back while Toro monitors your data for you?

This guide will introduce Toro's basic concepts and help you set up your first metric. More advanced concepts like grouped metrics and custom metrics will be explained in later articles.

What you'll learn in this 5 minute article:

  1. Navigational overview, learn where to find things in Toro
  2. Metrics: the basic building blocks of monitoring
  3. Alerts: how Toro notifies you when something is wrong
  4. The Catalog: browsing your data and metrics
  5. Creating a metric: set up your first metric 

Navigation overview 

Toro is divided into a few basic sections: Metrics, Custom Metrics, Catalog, and Settings.

The Metrics section contains the list of all current alerts, a unified list of every metric your team has configured, and the global list of all metric suggestions Toro is currently recommending based on your data.

The Custom Metrics section contains the list of current custom metric alerts, and a list of all custom metrics your team has configured.

The Catalog is a hierarchical map of your data, starting from a view of the databases connected to Toro, then diving into schemas, tables, columns, and finally the metrics you have configured on each column. New metrics can be created from the column pages within the catalog (because Toro needs to know which columns to collect the metric on).

Finally, the Settings section contains things like password reset, warehouse connection management, and report-exporting pages. 

Metrics: the basic building blocks

Metrics are the basic building block of monitoring in Toro. Metrics are measurements of aspects of your data: percent of null values in a string column, the maximum value in a numeric column, etc. Toro collects a metric on a schedule (e.g. hourly) and creates a time series from the results.

EXAMPLE: a 1-day "Count" metric on the users.user_uuid column will query your database with something like SELECT COUNT(user_uuid) FROM users WHERE  _loaded_at >= NOW() - INTERVAL '1 day'; each time it runs. The result is appended to the time series for that metric every time the metric is collected. Alerts are fired when that time series shows anomalous behavior. 

NOTE: The time axis in Toro is the measure of when the metric was collected. It does not reflect any notion of time within your data (e.g. users.signup_timestamp). Let's say you got an alert from Toro at 8:00AM that the 1-day user count was 790k, more than 3x what it should be. You fix the upstream problem and regenerate the data at 8:45AM. the user count is now 265k, much more normal. Toro's time series will permanently show that the count was 790k at 8:00AM, and that it came back within range when it was next collected at 9:00AM, so your team can always see when and where outages occurred, even after the underlying data has been fixed.

Metrics can be filtered (e.g. is_test_data = FALSE) and even grouped (e.g. group the Count by every value in merchant_category). Learn more about these advanced features in Metrics 101 [LINK TO METRICS101 ARTICLE].

Alerts: notifying you when something looks wrong

Alerts are how Toro tells you when a metric needs your attention. This might be due to a data quality issue, or it might be weird behavior from a KPI you're monitoring.

Alerts can be sent over Slack or email, to individuals, teams, or both.

Alerts are configured individually for each metric, and can be modified at any time by editing the metric.

Toro supports two alerting methods: constant and relative. Look out for more advanced detection methods in future versions!


Constant alerts use simple flat upper and lower bounds, alerting you if a metric crosses either bound. Example: a 1% upper bound on 1-day Whitelist (%) on payments.client_plan_tier, will alert you any time Toro sees more than 1% values that don't match the whitelist.

Relative alerts help when you need to respect seasonality, or when you just want to automatically configure the alert from historical data. A relative alert looks back in time and defines the upper and lower bounds as percent difference from the earlier time. Example: setting a 7-day +/- 10% relative alert on the 1-day Count of users.user_uuid will alert you if the count of users is ever 10% higher or lower than it was 7 days ago. These metrics require setting a reference time on the table, which is used to look backwards in time (in the example, 7 days back in time) each time the metric is collected.

The Catalog: navigating tables, columns, and metrics

The Catalog is how you browse your data to see what metrics you have configured. Once a database is connected, Toro automatically indexes it, generating the catalog.

Starting from a list of databases, you can drill into each schema, table, and column to see the metrics you have configured, sample data, and more. 

To learn more about the Catalog, check out Catalog 101 [ADD LINK TO ARTICLE] 

Creating a metric

Open the catalog, and browse to a column you'd like to monitor.
Click the (+) New button in the upper right, then choose "Metric"

Choose a metric type.

Set a schedule to collect the metric on. Warning: faster schedules will put more load on your database.

(optional) Set any filters needed to rule out data you don't want to include in this metric.

(optional) Group the metric by a dimension, e.g. Region or Product-type. Toro supports grouping by dimensions within the same table only. Learn more about grouped metrics in [LINK TO METRICS101 ARTICLE]

(optional) Configure alerts. If you grouped the metric you may also configure Alert Exceptions for specific groups. 

Save the metric.

You're done!

Now you know the basics of Toro and are ready to automate your data monitoring. If you have questions, feel free to contact the Toro team any time, we're here to help!

Did this answer your question?