All notable changes to this project will be documented in this file.
Released on February 12, 2026
- DTAGENT_OWNER Role Introduction: Re-architected SnowAgent to introduce
DTAGENT_OWNERrole that owns all SnowAgent artifacts (database, schemas, tables, procedures, tasks). TheDTAGENT_ADMINrole is now reserved exclusively for elevated administrative privileges, whileDTAGENT_VIEWERhandles regular telemetry-related operations. - Deployment vs. Upgrade Permission Requirements: Deployment and upgrade now have separate permission requirements with the new owner-admin-viewer role separation model.
- Deployment Configuration: Configuration files are now in YAML format. Multi-configuration deployment is no longer supported. Each DSOA instance must be deployed separately with its own configuration. Use
convert_config_to_yaml.shscript to convert existing JSON files. - Configuration Structure: Reorganized Snowflake-related configuration into nested
core.snowflakestructure. Theconvert_config_to_yaml.shscript automatically migrates old paths to the new structure.
- Admin Deployment Scope: New
admindeployment scope for administrative operations, enabling granular control via--scope=adminoption. - Custom Snowflake Object Names: Added ability to customize names for all Snowflake objects (database, warehouse, resource monitor, roles). Set admin role or resource monitor to
"-"to skip their creation entirely. - Optional Object Deployment: When admin role or resource monitor is disabled via
"-", related SQL code is automatically excluded from deployment scripts.
- Log Timestamp Handling: Fixed timestamps in logs being sent as nanoseconds instead of milliseconds.
- Event Log Resource Attributes: Fixed duplicated resource attribute fields in event log entries.
- Metric Dimension Array Formatting: Fixed issue where array-type dimensions (e.g.,
db.snowflake.dbs,db.snowflake.tables) were being sent to Dynatrace as Python list representations (e.g.,['DATABASE']) causing 400 Bad Request errors. Arrays are now properly converted to comma-separated strings (e.g.,DATABASEorDB1,DB2,DB3).
- Flexible Role Model: Implemented role hierarchy with
ACCOUNTADMIN→DTAGENT_OWNER→DTAGENT_VIEWERas primary hierarchy andDTAGENT_OWNER→DTAGENT_ADMINas optional admin branch. - Security Model: Isolated administrative operations in dedicated admin scripts with automated tests to enforce separation.
- Selective Plugin Deployment: Enabled deployment with only selected plugins based on use case requirements.
- Custom Warehouse Support: Added ability to disable the built-in Resource Monitor or use a customer-provided warehouse.
- Data Retention Configuration: Added ability to configure data retention on
DTAGENT_DBpermanent tables (default: 1 day). - Simplified Configuration Format: YAML format with lowercase keys to match Snowflake configuration table paths.
- Enhanced Deployment Script: Refactored
deploy.shwith improved parameter handling using named parameters (--scope,--from-version,--output-file,--options). - Structured Deployment Scopes: Introduced well-defined deployment scopes (
init,admin,setup,plugins,config,agents,apikey,all,teardown,upgrade). - Flexible Scope Combinations: The
apikeydeployment scope can now be combined with other scopes (e.g.,setup,plugins,config,agents,apikey). - Upgrade Process: Delivered upgrade process with
--scope=upgrade --from-version=VERSIONparameters, supporting custom queries for version migrations. - Bill of Materials: BOM files are now included as part of the documentation with structured tables.
- Extended Code Quality: Extended code quality checks to include
build/*.pyfiles.
Released on November 24, 2025
- Self-monitoring Telemetry: All self-monitoring telemetry will now have
dsoa.run.contextset toself_monitoring(underscore) instead ofself-monitoring(hyphen).
- Example Dashboards: Added example dashboards to help users visualize and interpret telemetry data, including costs monitoring, self-monitoring, and Snowflake security dashboards with descriptions and screenshots.
- Configurable Query Analysis: Introduced options to configure minimum query runtime and the maximum number of top queries for deeper analysis, providing greater flexibility in performance monitoring.
- Telemetry Configuration: It is now possible to exclude certain telemetry types, e.g., events, spans, from being sent, either globally or on a per-plugin basis.
- Event Log Metrics: Extended support for
RECORD_ATTRIBUTESin event log metrics for richer telemetry data.
- Data Schema Plugin: Now reports on objects (tables, schemas, databases) modified by DDL queries as events.
- Query Robustness: Improved query robustness in the Resource Monitors and Users plugins by using explicit column selection to prevent errors from column order changes in
SHOW WAREHOUSESandSNOWFLAKE.ACCOUNT_USAGE.USERS. - Telemetry Sender: Enabled labeling and classification of telemetry calls for better differentiation and analysis of query data. Added
SEND_TELEMETRYsupport forSHOWstatements, enabling more flexible custom queries. - Event Handling: Expanded event-handling capabilities, including support for sending multiple events in a single call and improved handling of Davis events.
- Metric Dimensions: Plugin and context names are now available as metric dimensions, improving traceability.
- Telemetry Query Performance: Improved performance of reading and processing telemetry data by using simpler queries. Added safety limits and ordering to event log queries to handle high-volume applications.
- Self-monitoring: Agent execution now returns detailed status information, including the number of telemetry objects sent by type, plugin, and run context. The deployment process also reports its start and finish as BizEvents, compatible with other telemetry.
- Configuration: API post timeout and retry delay are now configurable for metrics and events, providing better control over telemetry delivery.
- Code Quality & Testing: Streamlined internal plugin implementations and extended tests for all plugins. Added a suite of code quality checks to the automated build process.
- Documentation: Updated documentation to reflect new features, improved the structure for easier navigation as online GitHub pages, and added comprehensive troubleshooting guide for debugging data delivery issues.
Released on September 18, 2025
- Telemetry Sender:
SEND_TELEMETRYprocedure now supportsSHOWstatements, enabling more flexible and powerful custom queries/ - Modular Documentation: The documentation has been restructured into multiple files (
PLUGINS.md,SEMANTICS.md,APPENDIX.md) for improved readability and maintainability.
- Resource Monitors: Queries now use explicit column selection to prevent errors caused by changes in the column order of
SHOW WAREHOUSEScommand results. - Query History: Fixed upgrade for procedure
P_REFRESH_RECENT_QUERIESto ensure it works correctly when upgrading from versions prior to 0.8.3.
Released on July 25, 2025
- Open Source: This release marks a significant milestone for the Dynatrace Snowflake Observability Agent. The project is now available as an Open Source project on GitHub under the permissive MIT license. We welcome community contributions to help us expand its capabilities and improve observability for Snowflake environments.
Released on July 14, 2025.
- Meta-field semantics: In order to align with rebranding to new official name of Dynatrace Snowflake Observability Agent (DSOA) or Dynatrace SnowAgent in short, a number of field names had to be refactored.
- Shares: Reduced the number of events sent by the plugin to improve performance.
- Query History: Empty queries executed by SYSTEM user at
COMPUTE_SERVICE_WH_*are no longer reported to Dynatrace.
- Tutorial: Step-by-step debug tutorial to check if telemetry on currently running queries is correctly delivered via active_queries plugin to Dynatrace.
- Test Suite: Test suite now ensures that standardized views deliver
TIMESTAMPcolumn.
- Improved Security Model: Basic plugin tasks are now executed as
DTAGENT_VIEWER, with only special tasks executed asDTAGENT_ADMIN. - Enhanced Communication Handling: Improved auto-detection of communication issues between Snowflake and Dynatrace, reducing time to wrap up processes that were unsuccessful in sending telemetry to Dynatrace.
- Optimized Deployment: Monitoring grants are no longer granted during deployment time, reducing time to deploy the complete agent.
- Cost Optimization: Tasks are now scheduled
USING CRONto reduce costs of running the agent by saturating usage of warehouse time. - Enhanced Deployment Script: Improved interaction in
deploy.shwhenDTAGENT_TOKENis not provided.
- BizEvents Timestamps: Fixed timestamps of BizEvents sent from Snowflake.
- SSL Connection Handling: SSL connection issues are now gracefully handled during the deployment process.
- Negative Elapsed Time: Negative values of
snowflake.time.total_elapsedare no longer propagated from Snowflake telemetry. - Problem Reporting: Agent no longer mutes problems when processing or sending telemetry.
- Status Logging: Fixed how results of running Agent are reported in
STATUS.LOG_PROCESSED_MEASUREMENTSin case of no data being processed. - Span Hierarchy: Fixed span hierarchy reported from Snowflake query parent ID.
Released on May 20, 2025.
- Multi-Config Deployment: Configuration is now expected to be a JSON array of objects. Dynatrace Snowflake Observability Agent is deployed to all specified configurations, with keys from the first configuration taking precedence in case of conflicts.
- Users Plugin: Now sends all user-related information as logs.
- Timestamp-Triggered Events: The name of the timestamp field that triggered the event is now sent as the value of the
snowflake.event.triggerfield in the event.
- Active Queries:
- Introduced a configurable fast mode via the
PLUGINS.ACTIVE_QUERIES.FAST_MODEkey. The existing filter fromPLUGINS.ACTIVE_QUERIES.REPORT_EXECUTION_STATUSremains available and is applied in addition to the mode. - Updated
MONITORprivileges granted to Dynatrace Snowflake Observability Agent roles to ensure visibility into all queries.
- Introduced a configurable fast mode via the
- Users: Added multiple monitoring modes:
DIRECT_ROLES,ALL_ROLES, andALL_PRIVILEGES. See the "Users Plugin" section for more details. - Query History: Improved performance by accelerating the process of granting Dynatrace Snowflake Observability Agent the necessary permissions to monitor all warehouses.
- Communication Failure Handling: Dynatrace Snowflake Observability Agent now aborts execution upon persistent communication issues. A
task status BizEvent is sent with
dsoa.task.exec.statusset toFAILED, including details of the last failed connection attempt.
- Teardown Process: Correctly tears down tagged instances.
- Span Event Reporting: Removed the hard limit of 128 span events. The limit is now configurable via
OTEL.SPANS.MAX_EVENT_COUNT. - Spans for Queries: Fixed the problem with a hierarchy of query calls not being represented by a hierarchy of spans (0.8.2 Hotfix 1).
- Self-Monitoring Configuration: Plugin default configurations no longer overwrite self-monitoring settings.
- Self-Monitoring BizEvents: BizEvents are now sent by default when Dynatrace Snowflake Observability Agent is deployed and executed.
Released on Mar 24, 2025.
- Active Queries: The plugin no longer reports a summary of query statuses since the last run. By default, only queries with
snowflake.query.execution_statusset toRUNNINGare reported. - Event Log: Entries are now reported as OTEL logs instead of events.
- Attribute Name Changes: Corrected typos in attribute names:
authentication.factor.first,authentication.factor.second,snowflake.task.run.scheduled_from.
- Data Schema: Enables monitoring of data schema changes. Reports on objects (tables, schemas, databases) modified by DDL queries.
- Active Queries: Improved performance by reporting only RUNNING queries.
- Resource Monitors: Added
snowflake.warehouse.is_unmonitoredattribute. Log entries marked asWARNINGfor warehouses missing resource monitors andERRORfor accounts missing global resource monitors. - Event Log: Metric entries are now reported as Dynatrace metrics, and traces/spans as OTEL traces/spans, reusing
trace_idandspan_idgenerated by Snowflake. - Event Log: Old entries are cleaned up based on their timestamp compared to the
PLUGINS.EVENT_LOG.RETENTION_HOURSconfiguration option. - Trust Center: Sends all information as logs and metrics, and only critical findings as problem events.
- Documentation: Includes complete chapters on Data Platform Observability and Dynatrace Snowflake Observability Agent architecture.
- Bill of Materials: Lists Snowflake objects delivered and referenced by Dynatrace Snowflake Observability Agent.
- New Attribute:
deployment.environment.taghelps identify Dynatrace Snowflake Observability Agent instances byCORE.TAGvalue.
- Code Quality: Multiple improvements, including automated code quality checks and using YAML format for semantic dictionary
instruments-deffiles. - Telemetry:
dsoa.task.exec.idis now shared among all telemetry sent in a given run of the plugin, even if different types of objects are being sent. - Documentation: Improved clarity on how each plugin sends telemetry data, specifying what is sent as logs, spans, events, bizevents, or metrics.
- Active Queries: Long-running queries are reported each time the plugin executes. If a query remains
RUNNINGfor an hour, it will be reported 5 times with the default 10-minute interval. - Query History: Now reports queries executed by external tasks or those without
snowflake.query.parent_idin theQUERY_HISTORYview. - Trust Center: Correctly reports
status.messageafter changes to the content ofSCANNER_NAMEinTRUST_CENTER.FINDINGS. - Event Log: Correctly runs in multitenancy mode.
- Code Adjustments: Correctly sends complex objects after migrating to the new version of OTEL libraries.
- Teardown Process: Removes resource monitors associated with the Dynatrace Snowflake Observability Agent instance being removed.
Released on Jan 9, 2025.
- Dimension, Attribute, and Metric Names: Refactored for aligned, easier-to-work-with semantics.
- Configuration Refactored: Both JSON files and
CONFIG.CONFIGURATIONSrepresentation have been refactored to simplify changes, including the ability to reconfigure and disable each plugin separately.
- Shares: Reports on tables within outbound and inbound shares to track broken ones.
- Event Usage: Provides information on the history of data loaded into Snowflake event tables, reporting findings from the
EVENT_USAGE_HISTORYview.
- Users: Added support for key-pair rotation.
- Query History: Added support for query retry (time and cause) and fault handling time. Also, information on query acceleration estimates is now automatically added for slower queries.
- Support for sending Events and BizEvents.
- The new
APP.SEND_TELEMETRY()procedure allows sending data from tables, views, or arrays/objects as selected telemetry types to Dynatrace. - You can now configure only selected plugins to be active.
- Severe issues in the monitored Snowflake environment are sent directly as Dynatrace Problem events.
- Complete documentation is now available in PDF form.
- Dynatrace Snowflake Observability Agent tasks are reported via BizEvents.
- A self-monitoring dashboard has been added.
- Stored procedures now return meaningful, human-readable status on successful runs or error messages in case of issues.
- Event information is now sent as events instead of logs.
- More telemetry attributes are now reported as metric dimensions.
- All queries are now reported as span traces in the Query History.
- The Dynatrace API Key is automatically deployed during initial setups.
- Re-deploying Dynatrace Snowflake Observability Agent runs without issues.
Released on Nov 29, 2024.
- Dynamic Tables: Enables tracking the availability and performance of running Snowflake dynamic table refreshes. The telemetry is based
on checking three functions:
INFORMATION_SCHEMA.DYNAMIC_TABLES(),INFORMATION_SCHEMA.DYNAMIC_TABLE_REFRESH_HISTORY(), andINFORMATION_SCHEMA.DYNAMIC_TABLE_GRAPH_HISTORY().
- Added support for multitenancy, enabling telemetry to be sent to multiple Dynatrace tenants from a single Snowflake account.
Released on Oct 8, 2024.
- Active Queries: Lists currently running queries and tracks the status of queries that finished since the last check. Reports findings
from the
INFORMATION_SCHEMA.QUERY_HISTORY()function, providing details on compilation and running times.
- Pickle for testing of the Users plugin.
- Copyright statements to the code.
- Issues with reporting metrics from the Budgets plugin.
- Granting monitoring access for the role
DTAGENT_VIEWERon new warehouses. - Self-monitoring issues, with plugins not reporting once their execution is finished.
- Warehouse usage views filtering, to avoid sending the same entries multiple times.
Released on Sep 25, 2024.
- Possibility of using customer-owned account event tables instead of
EVENT_LOG. - Automatically disabling the Trust Center plugin if Trust Center findings are not enabled by the admin.
- Resource monitor as a dimension for warehouse monitoring settings.
- Ability to define only modified configuration values in per-env config file.
- Budget task by adjusting timestamps in plugin views.
- DT token is no longer visible in query logs.
- DT token is no longer visible in Snowflake query history.
- Configuration deployment is resilient to providing incomplete configuration information.
- Transposed
CONFIG.CONFIGURATIONtable to make it easier for extending. Refactored related code. - Updated dashboards.
Released on Sep 12, 2024.
- Budgets: Monitors budgets, resources linked to them, and their expenditures. Allows managing the Dynatrace Snowflake Observability Agent’s own budget, reporting on all budgets within the account, including their details, spending limit, and recent spending.
- Tasks: Provides information regarding the last performed serverless tasks, including credits used, timestamps, and IDs of the warehouse and database the task is performed on.
- Warehouse Usage: Provides detailed information regarding warehouses' credit usage, workload, and events triggered on them, based on
WAREHOUSE_EVENTS_HISTORY,WAREHOUSE_LOAD_HISTORY, andWAREHOUSE_METERING_HISTORY.
- Updating configuration table when deployment procedure is called without parameters.
README.mdandINSTALL.mdfiles.- Query quality monitoring dashboard.
- BI ETL operations log dashboard.
- Warehouses and resource monitors dashboard.
- Snowflake security dashboard.
- Snowflake security anomaly detection workflow.
- Data volume anomaly detection workflow.
test/test_utils.pyfile, cleaned and simplified tests.
- Generic method
Plugin::_log_entries(). - Issues with connecting to Snowflake with a custom connection name.
- Missing table information in query history view.
- Cleaned up semantics.
- Updated dashboards, workflows, and anomaly detection to new semantics (post-cleanup).
- Migrated metric extraction rules to DQL to unlock PPX/OpenPipeline.
Released on Aug 30, 2024.
- Login History: Provides details about login and session history from
V_LOGIN_HISTORYandV_SESSIONS, including user IDs, error codes, connection types, timestamps, and session details. - Trust Center: Evaluates and monitors accounts for security, downloading data from the
TRUST_CENTER.FINDINGSview and providing information on scanner details and at-risk entities.
- Enabled trimming
event_logtable to the last 24 hours. - Setting context in which spans and logs are generated.
- Analyzing only the top N slowest queries with query operator stats.
- Tasks and procedures are not run by
ACCOUNTADMINnorSECURITYADMIN. - Sending
processed_last_timestampas a string toDTAGENT_DB.STATUS.LOG_PROCESSED_MEASUREMENTS.
- Optimized memory usage in DT_AGENT.
- Refactored code to replace globals with encapsulating classes.
- Optimized Dynatrace Snowflake Observability Agent credit usage.
- Expanded
event_logattributes into separate log attributes.
Released on May 21, 2024.
- Resource Monitors: Reports the state of resource monitors and analyzes warehouse conditions, providing detailed logs and warnings about monitor setups and warehouse states.
- Enabled tracing of slow queries.
- Mapped metrics to custom device entities.
- Implemented metrics based on table and database volume.
- Sending augmented query history as logs with related trace.id.
- Recursive query dependencies analysis into multilevel span-trace hierarchies.
- Retrying API posts to Dynatrace if connection fails.
- Support for internal Snowflake logging.
- Sending recently logged information in
event_logto table to DT as logs.
get_query_operator_statsto analyze each query independently to avoid queries overflowing Snowflake memory.
- Improved dimension sets with metrics.