Data exports

Overview

Monte Carlo's data exports make it easy to access and analyze critical metadata about your Data + AI Observability platform. It replaces our legacy "Insights" reports with a more aligned, flexible, and transparent approach to exporting Monte Carlo data.

With data exports, you can retrieve structured information on Monitors, Alerts, Events (the underlying events in an alert), and Assetsβ€”directly from the UI, via API/CLI, or through Snowflake data shares. These exports are refreshed daily and mirror what you see in Monte Carlo, allowing for easy integration into internal workflows, self-service reporting, and deep analysis.

For users seeking logs of each individual executions of a monitor, we recommend Monitor logs. ThisΒ allowΒ usersΒ to sendΒ detailed monitorΒ execution logsΒ to externalΒ systemsΒ via webhooks. Though it is a separate feature from data exports, the data is designed to be easily joined with data from Exports. Monitor logs are sent close to real-time andΒ areΒ usefulΒ for organizationsΒ that wantΒ toΒ centralizeΒ auditing and complianceΒ inΒ theirΒ ownΒ toolsΒ orΒ platforms.

A fifth data export, Consumption, is also available for customers on consumption pricing plans. It is available through the UI from the Settings > Billing page, via API/CLI, or through Snowflake data shares.

Monitor Runs, currently in private preview, exports the observed value and the threshold band it was evaluated against for each monitor execution. It is available via API/CLI or through Snowflake data shares, and joins to the other exports on the monitor ID.

πŸ“˜

Data exports are available to workspaces on the Scale and Enterprise plans.

Key Benefits

  • Rich, structured data for Monitors, Alerts, Events, and Assets
  • Reliable, daily-refreshed exports that match what you see in Monte Carlo
  • Download directly from relevant Monte Carlo product pages for one-off analysis
  • Snowflake private listing data share, configurable self-serve via the UI

Access methods

MethodDescription
UINavigate to Monitors, Alerts, or Assets pages and download CSVs.
API / CLIFor programmatic access.
SnowflakeAccess shared tables via a Snowflake private listing. Configure in Settings β†’ Data sharing.
BigQueryExample script to export from the CLI coming soon.
DatabricksExample notebook to export from the CLI coming soon.

Note: The Alerts export includes both Alerts and their related Events.

CLI

Follow the CLI guide to get set up and see the export CLI docs for more information. Direct download and direct upload to S3 are both options.

API

Data exports are also available programmatically through the GraphQL API at https://api.getmontecarlo.com/graphql. See API Authentication to create a key and authenticate your requests.

Use the getDataExportUrl query to get a short-lived, presigned URL for the latest version of an export, then download the CSV from that URL β€” see DataExportURL in the API reference for the query and response shape. dataExportName accepts MONITORS, ALERTS, EVENTS, ASSETS, ALERTS_AND_EVENTS, MONITOR_LOGS, and CONSUMPTION.

Snowflake data share

For Snowflake users, we offer the ability to use data exports via Snowflake's Data Sharing capabilities. This is an opt-in feature.

Configuring via the UI

Account owners can enable and manage the Snowflake data share directly in Settings β†’ Data sharing without contacting support.

To enable:

  1. Click Enable data sharing.
  2. Provide your Snowflake account details (shown in any Snowflake worksheet):
    • Organization β€” SELECT CURRENT_ORGANIZATION_NAME(); (e.g. ACMECORP)
    • Account name β€” SELECT CURRENT_ACCOUNT_NAME(); (e.g. ACME_PROD β€” the account name, not the account locator)
  3. Click Enable data sharing to confirm.

Monte Carlo will add your account to the private listing β€” this can take a few hours to take effect.

To accept the listing in Snowflake:

  1. In Snowsight, open Data sharing β†’ External sharing.
  2. Select the Shared with you tab.
  3. Find the Monte Carlo Data Share listing and click Get to mount the database.

Once mounted, the shared database appears in your Snowflake account and is ready to query.

To update: click Reconfigure on the settings page.

To disable: click Disable on the private-listing share card. You can re-enable at any time.

Migrating from a legacy direct share

If your account uses a legacy direct share (locator-based), it appears as a separate card in Settings β†’ Data sharing. You can migrate to the private listing at your own pace β€” both share types can run simultaneously, so consumers are never disrupted during the transition.

Option 1 β€” Run both in parallel (recommended)

  1. Enable the private listing share as described above.
  2. Have your consumers accept the new listing in Snowflake and switch their queries to the new database.
  3. Once all consumers have migrated, disable the legacy share from its card.

Both shares expose the same tables and refresh on the same schedule β€” consumers can switch at their own pace.

Option 2 β€” Replace immediately

  1. Enable the private listing share as described above.
  2. Confirm your consumers are ready to switch, then disable the legacy share from its card.
  3. Consumers accept the new private listing in Snowflake. When mounting the database, they can use the same name as the legacy share database β€” all existing queries and workflows will continue to work without any changes.

Note: Disabling a legacy share is irreversible and cannot be undone via the UI.

FAQs

Are exports filtered by domain or audience?

No. Exports include all relevant records. Users restricted to specific domains do not have access to data exports.

Where can I find the export option in the UI?

Look for export/download buttons within the Monitors, Alerts, and Assets pages. There is no centralized "Exports" tab at this time.

How often are exports refreshed?

Daily. Report generation generally finishes around 11:00 UTC, though there may be some day-to-day variation.

Data export schemas

Each export contains a clean, well-documented schema. Fields are consistently named, and join keys are aligned across exports.

Note: All columns are delivered as TEXT in the data share regardless of the semantic type shown below. Cast to the appropriate type on read (e.g. TO_TIMESTAMP_NTZ(created_at)).

Monitors

FieldDescriptionData TypeExample
MONITOR_IDUUID of the monitorSTRING39280e8e-689a-49a8-9ccd-e70b7a7e1bcf
MONITOR_TYPEType of monitor (e.g., validation, custom_sql)STRINGValidation
TITLEMonitor name or descriptionSTRINGSFDC β†’ Account β†’ Account info
PRIORITYPriority levelSTRINGP3
STATUSMonitor statusSTRINGEnabled
SCHEDULEHuman-readable scheduleSTRINGevery 1 week(s) starting at Nov 18th 2024 12:30 UTC
CONNECTION_NAMEName of the connection used to run this monitor.STRINGSnowflake Prod
CREATED_ATCreation timestampTIMESTAMP2025-01-02T06:25:13.842Z
CREATED_BYCreator emailSTRING[email protected]
LAST_MODIFIED_ATLast modified timestampTIMESTAMP2025-01-06T06:25:13.842Z
LAST_MODIFIED_BYLast modifier emailSTRING[email protected]
IS_DELETEDIf monitor is deleted. Deleted monitors are retained for 30 daysBooleanFALSE
AUDIENCESAudience namesLIST["data engineering"]
MONITOR_TAGSCustom tagsLIST["ADDP", "MC-Pilot"]
DATA_QUALITY_DIMENSIONDimension categorySTRINGCompleteness
ASSETSAssociated assetsLIST["raw.monolith_export.warehouse_tables"]
ASSET_IDSUUIDs of assetsLIST["asset-123"]
ASSET_COUNTNumber of assetsINTEGER42
DOMAINSAssociated domainsLIST["Prod Analytics", "Gold Datamart"]
MONITOR_URLLink to monitor in UISTRINGhttps://getmontecarlo.com/monitors/...

For Table Monitors, the ASSETS and ASSET_IDS fields include up to 1,000 assets per monitor; larger monitors are truncated to the first 1,000. Tip: when syncing exports to Snowflake via Data share, use parse_json(assets) (Snowflake) to query individual assets.

CONNECTION_NAME is not included for table monitors, query performance monitors

Alerts

FieldDescriptionData TypeExample
ALERT_IDUUID of the alertSTRING646bb94d-28ec-4ab3-8b2e-283a7bd9e509
MONITOR_IDAssociated monitor IDSTRING6798620c-a44f-432a-b1cd-e68d585852ba
DESCRIPTIONAlert messageSTRINGFreshness anomalies in [snowflake] analytics:prod
CREATED_ATAlert creation timeTIMESTAMP2024-09-26T12:04:50.264Z
STATUSCurrent status (e.g., ACKNOWLEDGED)STRINGFixed
FIRST_RESPONSE_TIMESTAMPTime of first responseTIMESTAMP2024-09-27T12:04:50.264Z
HOURS_TO_FIRST_RESPONSETime to respond (hours)NUMBER24
RESOLVED_TIMESTAMPResolution timeTIMESTAMP2024-09-28T12:04:50.264Z
HOURS_TO_RESOLVEDTime to resolve (hours)NUMBER48
OWNEROwner of the alertSTRING[email protected]
PRIORITYPriority levelSTRINGP3
IS_INCIDENTFlag for incident statusBOOLEANTRUE
SEVERITYSeverity levelSTRINGSEV-2
AUDIENCESTarget audiencesLIST["platform_services", "data-engineering"]
RECIPIENT_CHANNELSNotification channelsLIST["wills-slack-channel", "[email protected]"]
EXTERNAL_LINKSLinked issues (Jira, etc.)LIST["https://name.atlassian.net/browse/ST-686"]
DOMAINSAssociated domainsLIST["analytics"]
ALERT_URLLink to alert in UISTRINGhttps://getmontecarlo.com/alerts/...
TROUBLESHOOTING_AGENT_RUNTRUE if troubleshooting agent was used on this alertBOOLEANTRUE
TROUBLESHOOTING_AGENT_RUN_DATEDate the agent was runDATE2025-09-07
TROUBLESHOOTING_AGENT_RUN_BYEmail of user who ran the agentSTRING[email protected]

Events

FieldDescriptionData TypeExample
EVENT_IDUUID of the eventSTRINGe1800f7b-0cc4-4345-93aa-4b64c022a9fe
ALERT_IDLinked alert IDSTRINGe1800f7b-0cc4-4345-93aa-4b64c022a9fe
MONITOR_IDLinked monitor IDSTRING0277dba3-226c-473d-b738-51959a7d097e
JOB_IDUUID of the monitor execution that generated the event; only for Custom SQL and ValidationsSTRINGcc66e00b-8275-4d95-9e7b-23f9f8a3dbf4
ASSET_IDAssociated asset UUIDSTRINGasset-123
DATABASE_NAMESource DBSTRINGraw
SCHEMA_NAMESource schemaSTRINGmonolith_export
ASSET_NAMETable or view nameSTRINGwarehouse_tables
FULL_ASSET_NAMEFull asset pathSTRINGraw.monolith_export.warehouse_tables
EVENT_TYPEType of anomalySTRINGnull_rate
FIELDAffected fieldSTRINGevent_app_url
SEGMENTED_BYSegment dimension or SQLSTRINGproduct_type
SEGMENTSegment valueSTRINGloans
CREATED_ATEvent timestampTIMESTAMP2025-01-07T06:25:13.842Z
ANOMALY_TIMESTAMPTimestamp of anomaly bucketTIMESTAMP2025-01-06T03:00:00.000Z
LOWER_THRESHOLD_VALUELower boundSTRING0
UPPER_THRESHOLD_VALUEUpper boundSTRING.0167
ACTUAL_VALUEObserved valueSTRING.35
SCHEMA_CHANGESChanges to schemaLIST["fields_added: ['audiences']"]
DOMAINSAssociated domainsLIST["equity_domain", "low_carbon_transition"]
EVENT_URLLink to event (if available)STRINGTBD

Monitor Runs

Note: This feature is in private preview β€” reach out to your account representative to request access.

For each monitor execution, the observed value and the threshold band it was evaluated against β€” one row per time series per run. Only time series with a modeled threshold (an active rule) are included; context-only metrics with no threshold are omitted.

Access: Available via the Snowflake data share, the montecarlo export CLI, and the GraphQL API. It is not available as a UI download.

History: Via Snowflake Data Share, history accrues from when the export is enabled, up to a rolling 90 days. Via API/CLI, the last 2 days of runs are included.

Both static (manual GT/LT/EQ/…) and dynamic (AUTO) thresholds are represented.

FieldDescriptionData TypeExample
MONITOR_IDUUID of the monitor this run belongs to. Joins to MONITOR_ID in the Monitors, Alerts, and Events exports.STRING0277dba3-226c-473d-b738-51959a7d097e
TIME_SERIES_IDUUID of the specific time series this run measuredSTRINGcc66e00b-8275-4d95-9e7b-23f9f8a3dbf4
METRICThe metric measured on this runSTRINGrow_count
FIELDThe field the metric was computed on; blank when the metric is not field-scopedSTRINGamount
MEASUREMENT_TIMESTAMPWhen the value was measuredTIMESTAMP2025-01-06T03:00:00.000Z
VALUEThe observed value for this runNUMBER4.0
THRESHOLD_LOWERLower bound of the threshold band for this run. Blank = unbounded on this sideNUMBER0
THRESHOLD_UPPERUpper bound of the threshold band for this run. Blank = unbounded on this sideNUMBER3
IS_BREACHWhether VALUE fell outside the threshold band. TRUE/FALSE; blank when the run had no threshold. A containment check on the band β€” not the product's alert decision.BOOLEANTRUE
SEGMENTED_VALUESFor segmented monitors, the segment values defining this time series, as a JSON array of strings; empty array when not segmentedLIST["loans"]
MONITOR_URLLink to the monitor in the UISTRINGhttps://getmontecarlo.com/monitors/...

Assets

FieldDescriptionData TypeExample
ASSET_IDUUID of the assetSTRINGasset-123
SOURCE_NAMEIntegration nameSTRINGsnowflake-staging
DATABASE_NAMESource DBSTRINGraw
SCHEMA_NAMESource schemaSTRINGmonolith_export
ASSET_NAMETable or view nameSTRINGwarehouse_tables
FULL_ASSET_NAMEFull asset pathSTRINGraw.monolith_export.warehouse_tables
ASSET_TYPEObject typeSTRINGView
IMPORTANCE_SCOREAsset importanceNUMBER.99
READSCount of queries reading the asset from the last 30 daysNUMBER512
WRITESCount of queries updating the asset from the last 30 daysNUMBER31
LAST_READTimestamp of most recent query reading the tableTIMESTAMP2025-08-04 09:34:27.326000+00:00
LAST_WRITETimestamp of most recent query updating the tableTIMESTAMP2025-08-04 09:34:27.326000+00:00
READ_USERSCount of distinct users executing the queries in READSNUMBER6
WRITE_USERSCount of distinct users executing the queries in WRITESNUMBER4
ASSET_TAGSCustom tagsLIST["critical", "finance"]
DOMAINSAssociated domainsLIST["Gold", "analytics"]
ASSET_URLLink to assetSTRINGTBD

Consumption

FieldDescriptionData TypeExample
DATEDate of consumptionDATE2025-09-07
WAREHOUSE_NAMEWarehouse of monitorSTRINGprod-snowflake
WAREHOUSE_IDWarehouse UUID of monitorSTRING316ca77a-696c-491c-ac32-11xx4a0cb752
MONITOR_TYPEType of monitorSTRINGTable
MONITOR_IDUUID of monitorSTRINGc4ee57c1-0d8b-4aa9-82ce-73x1d38q435f
CREDITS_CONSUMEDCredits consumed on that day by monitorNUMBER21.75



Did this page help you?