What databases can Toro connect to?

Today, Toro can work with:

  • BigQuery
  • MySQL
  • Postgres
  • Presto
  • Redshift
  • Snowflake
  • SQL Server

If you have any other database you want to monitor with Toro, please reach out to us at support@torodata.io

Where do the computations run?

Toro submits test-queries to your data warehouse where they run, similar to any usual SQL query. Once the warehouse sends the result back to Toro, the pass/fail status is computed and notifications are triggered.
To reduce impact on your warehouse, test-queries can be optimized for performance by including predicates (WHERE filters) and other techniques you’d use for any other SQL query.

What triggers a test to run?

By default, tests run on schedules you set up in the Toro web interface.
An API is available for triggering off-schedule test runs, so your team can write custom test triggers, such as after an ETL job runs.

Where is Toro deployed?

Toro is currently deployed "on-prem" - we can easily set up in AWS or GCP, and our support team can help with other environments.
Please reach out to our team if you are interested in a hosted solution.

Would be possible to generate tests and alerts on-demand using the API?

Yes; Toro exposes all the APIs for your consumption. You can do everything you can do on the UI in the API, and we would provide API documentation during deployment.

How do I get alerts, and what do they include?

Toro can send you Slack and/or email alerts. Alerts include the name of the test, the time the test ran, the pass/fail status, the expected result, and the actual result.

Can you compare day-over-day or week-over-week?

Yes, custom tests can be written which query two periods, join the results, and compare the delta. Reach out to Toro support for more information on this.

Do you show the history of test runs?

Yes, Toro shows a chart of test history for all statistics collected tests.

Is it only one process? Are the UI and the backend separate and scale independently?

Currently Toro is shipped as a single app/process. We are planning on separating the backend and UI soon, and would like to hear more about your scaling requirements.

How do we configure the data warehouse connections in the app?

Once the application is running, log in with your admin account (you should have created this on initial setup), and go to Settings -> Warehouses.

Does the applications need any outbound connections?

Yes, the application needs outbound connections to send email, Slack notifications, and for usage monitoring (if enabled). The Slack and usage monitoring are HTTPS endpoints (port 443), and email is sent over SMTPS (port 465).

What happens if we stop the Toro application?

Toro can recover seamlessly from shutdown, and will reschedule all tests on startup.

What users accounts need to be created and where?

The Toro application should be provided a separate user account in the data warehouse, with relevant permissions.
If you are using local accounts for Toro, you can create them inside the application: log in with the admin account, and create a new user by going to Settings -> Create User.

Does Toro have role-based access control? 

There are currently two kinds of users in Toro - admins and regular users. Admin users are able to create new user accounts and create/edit/delete database connections. Regular users are able to view/create/edit/delete any tests in Toro.

More granular role-based access controls are on our roadmap, and we’d be happy to discuss requirements around that specific feature.

How often does Toro update the app, and how?

We aim to ship an update every 2-3 weeks. Updates need to be applied manually, and the process is dependent on how Toro is set up within your environment.

How do we kill queries issued by Toro?

You can kill queries issued by Toro using the same mechanism that you kill any queries running on the data warehouse. Toro is resilient to queries being killed, and doing so will not corrupt the results.

Does Toro enforce query timeouts?

Currently Toro sets a query timeout at 15 minutes, but we recommend also setting a timeout on your data warehouse.

Did this answer your question?