Skip to main content
Instead of defining your monitor placement specifications in the UI, you can also provide a YML file to specify where to place monitors programmatically. This is beneficial if you prefer to manage monitor placement through code, e.g., enforce it through your CI/CD development process.

Getting started

  1. Install synqcli from the releases page, or follow the installation instructions for your platform
  2. Authenticate. For interactive use, synqcli auth login opens a browser; for CI, set up an API Client by clicking Add client with the following scopes
  • Edit SQL Tests
  • Edit Automatic Monitors
  • Edit Custom Monitors and pass them as QUALITY_CLIENT_ID / QUALITY_CLIENT_SECRET
  1. Run synqcli deploy against your YAML
Every command and flag is in the CLI reference.

Defining monitors in code

Create a YAML file where you’ll be managing the monitor setup, for example, synq_monitors.yml. You can split your configuration up into multiple files and use namespaces to manage individual domains or data products independently.
Using NamespacesMonitors in one namespace are isolated from those in another, which helps you:
  • Avoid conflicts when multiple teams manage monitors in parallel.
  • Keep different pipelines or environments separate (e.g., transformation models in CI vs. external tables in prod).
  • Apply ownership, defaults, and alerts consistently within a group.
You can define a namespace at the top of your YAML file, or override it inside individual monitor definitions when needed.
Example content of the file
This example uses the original flat monitors: layout, which is still accepted and is what a file with no version: key is read as. New configurations should declare version: v1beta2 and group monitors and tests under entities: — see the examples.

Configuring a monitor

You can define all custom monitor types as code (freshness, volume, custom_numeric, and field_stats). Read more about each monitor type.

Obtaining IDs from the UI

When configuring a monitor, monitored_id is the full table identifier as represented in the platform. You can locate this ID by navigating to a table in the UI (using the catalog or search functionality) and copying the ID from the URL. In the example below, bq-synq-demo::nyc_taxi::financial_statement will be the ID. title

Understanding the configurable parameters

Every configurable parameter, with its type and validation rules, is in the configuration reference. The same schema drives editor autocompletion — put this line at the top of your YAML file:
For more examples of configuring individual monitors, see the examples directory.

Verifying monitors in the UI

If you navigate to the Settings menu for a monitor, you can verify that it’s created by code by seeing the Monitor was created via API and can't be managed in APP label. title