Skip to technology filters Skip to main content
Dynatrace Hub

Extend the platform,
empower your team.

Popular searches:
Home hero bg
Microsoft SQL ServerMicrosoft SQL Server
Microsoft SQL Server

Microsoft SQL Server

Improve the health and performance monitoring of your Microsoft SQL Servers.

Extension
Free trialDocumentation
Get an overview of your SQL Server monitoring using New Dashboards, which are bundled with the extension upon activation.See the largest files in your SQL Server Environment via logs ingested by the extension.See the longest running queries in your SQL Server environment via logs ingested by the extension.Instance viewLocks and sql statements chartsMemory monitoring
  • Product information
  • Release notes

Overview

Microsoft SQL Server database monitoring is based on a remote monitoring approach implemented as a Dynatrace ActiveGate extension. The extension queries MS SQL databases for key performance and health metrics, extending your visibility, and allowing DAVIS AI to provide anomaly detection and problem analysis.

Use cases

  • Understand the impact of resource shortages, locks or other database issues have on your application by observing the database server itself.
  • Track health and performance of the MS SQL servers

Get started

Activation

  • Activate Extension in the Hub: Dynatrace Hub → SQL Server → Add to environment.
  • Add a monitoring configuration with endpoints that connect to individual SQL Server instances.
    • For more quick start information, please see the documentation.
  • Enabling log monitoring will activate extension status logs and allow for monitoring of the longest running queries and largest database files.

Compatibility information

Supported types of SQL Server

  • SQL Server (editions: Enterprise, Standard, Developer, Web, Express) on Windows servers.
  • Azure SQL Database.
  • Azure SQL Managed Instance.

Important note: The extension is reported to work with other types of SQL Server, such as AWS RDS or SQL Server on Linux, but they are not officially supported.

Supported types of HA or replication

  • Always On

Important note: Other types of replication and HA monitoring, including publisher/subscriber model, are not supported yet.

Supported versions of SQL Server

Any version of SQL Server with active extended support by Microsoft is supported by this extension. Please refer to the official Microsoft documentation about lifecycle dates for SQL Server.

Simultaneous use of different versions of extension

  • Running two or more different versions of the extension against the same SQL Server is not supported.
  • Running different major versions (for example, version 1 and version 2) of the extension on the same tenant is highly discouraged and is not supported. This will break the topology model.

Compatibility with OneAgent

  • In order for SQL Server Instance entity to be linked to the Host entity, they must share the same IP address. If the monitoring configuration for SQL Server is configured with a different IP address, two instances will not be linked with each other.

Using DQL and Logs

Top queries

How to enable?

Collection of top queries ordered by total duration can be enabled using the Queries feature set.

Prerequisites

  • Query Store must be enabled on SQL Server instance.
  • The database from which queries are collected is determined by:
    • Explicit database name specified in the endpoint for monitoring configuration; or
    • Default database configured for the connected user.

How often is the information updated?

Top queries are fetched by extension every 5 minutes.

How to list top queries?

The query below, when executed in Logs and Events, displays top queries, as observed within the most recent 5 min timeframe, using DQL:

fetch logs, from:now()-5m
| filter matchesValue(dt.extension.name, "com.dynatrace.extension.sql-server")
| filter matchesValue(event.group, "longest_queries")
| fields total_duration, avg_duration, content, server, instance, num_executions, query_plan
| sort asDouble(total_duration) desc

Description of fields:

  • total_duration field represents a sum of all executions of this query over the given 5 min timeframe in seconds
  • avg_duration represents an average execution time of this query of the given 5 min timeframe in seconds
  • content field contains the SQL text of the query

On Managed tenants: log records can be retrieved by filtering logs using 2 attributes

  • dt.extension.name: com.dynatrace.extension.sql-server; and
  • event.group: longest_queries.

Largest files

How to enable?

Collection of largest database files by size can be enabled using the Database files feature set.

How often is the information updated?

Top database files by size are fetched by extension every 5 minutes.

How to list the largest database files by size?

The query below, when executed in Logs and Events, displays the largest database files, as observed within the most recent 5 min timeframe, by size using DQL:

fetch logs, from:now()-5m
| filter matchesValue(dt.extension.name, "com.dynatrace.extension.sql-server")
| filter matchesValue(event.group, "largest_files")
| fields content, file_size, file_type_desc, file_state_desc, database, server, instance, file_used_space, file_empty_space
| sort asDouble(file_size) desc

Description of fields:

  • content field represents the physical name of the file as handled by host OS
  • file_size is reported in KB
  • file_used_space is reported in KB and represents amount of space occupied by allocated pages within a specific file
  • file_empty_space is reported in KB and represents amount of space that is still empty within a specifc file

On Managed tenants: log records can be retrieved by filtering logs using 2 attributes

  • dt.extension.name: com.dynatrace.extension.sql-server; and
  • event.group: largest_files.

Current jobs

How to enable?

Monitoring of current jobs can be enabled using the Jobs feature set.

How often is the information updated?

Current jobs are fetched by extension every 5 minutes.

How to list current jobs?

The query below, when executed in Logs and Events, displays current jobs, as observed within the most recent 5 min timeframe, using DQL:

fetch logs, from:now()-5m
| filter matchesValue(dt.extension.name, "com.dynatrace.extension.sql-server")
| filter matchesValue(event.group, "current_jobs")
| fields job_name, job_status, content, enabled, last_run_outcome, duration, instance, server, start_execution_date, stop_execution_date
| sort asDouble(duration) desc

Description of fields:

  • content field represents the last execution outcome message.
  • job_status and last_run_outcome are identical, except for two situations:
    • When the job was not executed yet, the job_status equals Idle
    • When the job is currently being executed, the job_status equals In Progress
  • duration represents complete job duration in seconds after execution is finished

On Managed tenants: log records can be retrieved by filtering logs using 2 attributes

  • dt.extension.name: com.dynatrace.extension.sql-server; and
  • event.group: current_jobs.

Failed jobs

How to enable?

Monitoring of failed jobs can be enabled using the Jobs feature set.

How often is the information updated?

Failed jobs are fetched by extension every 5 minutes.

How to list failed jobs?

The query below, when executed in Logs and Events, displays failed jobs, as observed within the most recent 5 min timeframe, using DQL:

fetch logs, from:now()-5m
| filter matchesValue(dt.extension.name, "com.dynatrace.extension.sql-server")
| filter matchesValue(event.group, "failed_jobs")
| fields job_name, step_name, outcome, content, duration, instance, server, sql_severity, retries_attempted, start_execution_date, stop_execution_date
| sort stop_execution_date desc

Description of fields:

  • content field represents the message of the last executed step and usually contains the error.
  • outcome represents the final job status message as composed by SQL Server Agent.
  • duration represents complete job duration in seconds after execution is finished

On Managed tenants: log records can be retrieved by filtering logs using 2 attributes

  • dt.extension.name: com.dynatrace.extension.sql-server; and
  • event.group: failed_jobs.

License Consumption

DDUs are consumed at 0.001 DDU from your available quota for each ingested data point. Each enabled feature set increases DDU consumption. The "default" feature set cannot be turned off.

DDU consumption for each metric (per hour) is calculated as follows: number of unique associated entities * retrieval frequency per hour * 0.001 DDUs per data point

Example:

  • Metric: sql-server.databases.backup.size
  • Associated entity: SQL Server Database
  • Number of unique associated entities:
    • Let's assume we monitor 2 instances with 20 databases in each.
    • Therefore, there are 2 (SQL Server Instances) * 20 (SQL Server Databases in each) = 40 unique databases in total.
  • Retrieval frequency per hour: 60 (metric is retrieved every minute).
  • Total DDU consumption for this metric over the environment (per hour): 40 * 60 * 0.001 = 2.4 DDUs.
  • Total DDU consumption for this metric over the environment (per year): 2.4 * 24 * 365 = 21,024 DDUs.

Feature Sets

default

  • sql-server.memory.target
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.memory.physical
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.databases.state
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.uptime
    • Associated entity: SQL Server Instance
    • Frequency: 12 times per hour (every 5 minutes)
    • Data points per hour: number of SQL Server Instances in environment * 12
  • sql-server.databases.transactions.count
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.memory.total
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.cpu.kernelTime.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.general.userConnections
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.general.processesBlocked
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.general.logins.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.cpu.userTime.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.memory.virtual
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.host.cpus
    • Associated entity: SQL Server Host
    • Frequency: 12 times per hour (every 5 minutes)
    • Data points per hour: number of SQL Server Hosts in environment * 12

Always On

  • sql-server.always-on.ag.secondaryRecoveryHealth
    • Associated entity: SQL Server Availability Group
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Groups in environment * 60
  • sql-server.always-on.ag.primaryRecoveryHealth
    • Associated entity: SQL Server Availability Group
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Groups in environment * 60
  • sql-server.always-on.ar.failoverMode
    • Associated entity: SQL Server Availability Replica
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Replicas in environment * 60
  • sql-server.always-on.ag.synchronizationHealth
    • Associated entity: SQL Server Availability Group
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Groups in environment * 60
  • sql-server.always-on.ar.operationalState
    • Associated entity: SQL Server Availability Replica
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Replicas in environment * 60
  • sql-server.always-on.ar.connectedState
    • Associated entity: SQL Server Availability Replica
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Replicas in environment * 60
  • sql-server.always-on.db.filestreamSendRate
    • Associated entity: SQL Server Availability Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Databases in environment * 60
  • sql-server.always-on.db.state
    • Associated entity: SQL Server Availability Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Databases in environment * 60
  • sql-server.always-on.db.synchronizationHealth
    • Associated entity: SQL Server Availability Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Databases in environment * 60
  • sql-server.always-on.db.logSendQueueSize
    • Associated entity: SQL Server Availability Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Databases in environment * 60
  • sql-server.always-on.ar.role
    • Associated entity: SQL Server Availability Replica
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Replicas in environment * 60
  • sql-server.always-on.db.synchronizationState
    • Associated entity: SQL Server Availability Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Databases in environment * 60
  • sql-server.always-on.db.redoRate
    • Associated entity: SQL Server Availability Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Databases in environment * 60
  • sql-server.always-on.db.redoQueueSize
    • Associated entity: SQL Server Availability Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Databases in environment * 60
  • sql-server.always-on.ar.synchronizationHealth
    • Associated entity: SQL Server Availability Replica
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Replicas in environment * 60
  • sql-server.always-on.db.logSendRate
    • Associated entity: SQL Server Availability Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Databases in environment * 60
  • sql-server.always-on.ar.availabilityMode
    • Associated entity: SQL Server Availability Replica
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Replicas in environment * 60
  • sql-server.always-on.ag.automatedBackupPreference
    • Associated entity: SQL Server Availability Group
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Groups in environment * 60
  • sql-server.always-on.ar.isLocal
    • Associated entity: SQL Server Availability Replica
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Replicas in environment * 60
  • sql-server.always-on.ar.recoveryHealth
    • Associated entity: SQL Server Availability Replica
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Availability Replicas in environment * 60

Backups

  • sql-server.databases.backup.age
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.databases.backup.size
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60

Database files

  • sql-server.databases.file.emptySpace
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.databases.file.size
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.databases.file.usedSpace
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • largest_files
    • Associated Entity: SQL Server Instance
    • Frequency: 12 times per hour (Every 5 minutes)
    • Data points per hour: Up to 100 (num of files) * 12 * avg log size

Latches

  • sql-server.latches.waits.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.latches.averageWaitTime.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60

Locks

  • sql-server.locks.timeouts.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.locks.waits.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.locks.waitTime.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.locks.deadlocks.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60

Memory

  • sql-server.buffers.checkpointPages.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.memory.grantsOutstanding
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.memory.connection
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.buffers.pageWrites.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.buffers.pageLifeExpectancy
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.memory.grantsPending
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.buffers.cacheHitRatio
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.buffers.freeListStalls.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.buffers.pageReads.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60

Queries

  • sql-server.sql.recompilations.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.sql.compilations.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.sql.batchRequests.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • longest_queries
    • Associated Entity: SQL Server Instance
    • Frequency: 12 times per hour (Every 5 minutes)
    • Data points per hour: Up to 100 (num of queries) * 12 * avg log size

Replication

  • sql-server.replica.bytesSentToTransport.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.replica.sends.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.replica.sendsToTransport.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.replica.bytesReceived.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.replica.bytesSent.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.replica.resentMessages.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60
  • sql-server.replica.receives.count
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60

Sessions

  • sql-server.sessions
    • Associated entity: SQL Server Instance
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Instances in environment * 60

Transaction logs

  • sql-server.databases.log.flushWaits.count
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.databases.log.filesUsedSize
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.databases.log.growths.count
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.databases.log.truncations.count
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.databases.log.shrinks.count
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.databases.log.filesSize
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60
  • sql-server.databases.log.percentUsed
    • Associated entity: SQL Server Database
    • Frequency: 60 times per hour (every 1 minute)
    • Data points per hour: number of SQL Server Databases in environment * 60

Jobs

  • current_jobs

    • Associated Entity: SQL Server Instance
    • Frequency: 12 times per hour (Every 5 minutes)
    • Data points per hour: Number of currently enabled jobs * 12 * avg log size
  • failed_jobs

    • Associated Entity: SQL Server Instance
    • Frequency: 12 times per hour (Every 5 minutes)
    • Data points per hour: top 100 failed jobs * 12 * avg log size
  • note on current_jobs, failed_jobs, longest_queries, and largest_files: These metrics are based on Log data. As every environment is different the calculation needs to be estimated on the client side. Then calculate the data size ingested. Currently, 100 DDUs are consumed per GB ingested. Please refer to the DDU consumption model for Log Management and Analytics in the documentation. If you are on Log Monitoring Classic: each log record (line, message, entry) deducts 0.005 DDU from your available qouta. Please refer to the DDUs for Log Monitoring Classic in the documentation.

Breaking changes

  • v2.0.0:
    • All monitoring configurations need to be recreated because of change in feature sets.
    • The instance dimension now only contains the name of the actual named instance or MSSQLSERVER by default.
    • The hoursSinceBackup metric is removed and replaced by sql-server.databases.backup.age.
  • v1.2.0:
    • When updating monitoring configurations to version 1.2.0+, feature sets need to be enabled for the monitoring to continue.

Permissions

Each available Feature Set is supported by a corresponding set of SQL Server types. For details on the individual permissions that must be granted to the extension user for each Feature Set, please refer to the Involved Views and Tables section and the granular permission details for each system view provided below.

Supported systems and involved system views per feature set

default

Supported on:

  • SQL Server (all versions)
  • Azure SQL Database
  • Azure SQL Managed Instance
  • Azure Synapse Analytics
  • Analytics Platform System (PDW)

Views and tables involved:

  • sys.dm_os_sys_info
  • sys.dm_os_performance_counters
  • sys.databases

Memory

Supported on:

  • SQL Server (all versions)
  • Azure SQL Database
  • Azure SQL Managed Instance
  • Azure Synapse Analytics
  • Analytics Platform System (PDW)

Involved Views and Tables:

  • sys.dm_os_performance_counters

Locks

Supported on:

  • SQL Server (all versions)
  • Azure SQL Database
  • Azure SQL Managed Instance
  • Azure Synapse Analytics
  • Analytics Platform System (PDW)

Involved Views and Tables:

  • sys.dm_os_performance_counters

Latches

Supported on:

  • SQL Server (all versions)
  • Azure SQL Database
  • Azure SQL Managed Instance
  • Azure Synapse Analytics
  • Analytics Platform System (PDW)

Involved Views and Tables:

  • sys.dm_os_performance_counters

Queries

  • Monitoring query performance stats

    Supported on:

    • SQL Server (all versions)

    Involved Views and Tables:

    • sys.dm_os_performance_counters
  • Monitoring TOP longest queries

    Supported on:

    • SQL Server (2016 and later)
    • Azure SQL Database
    • Azure SQL Managed Instance
    • Azure Synapse Analytics

    Involved Views and Tables:

    • sys.query_store_runtime_stats
    • sys.query_store_plan
    • sys.query_store_query
    • sys.query_store_query_text

Replication

Supported on:

  • SQL Server (all versions)
  • Azure SQL Database
  • Azure SQL Managed Instance
  • Azure Synapse Analytics
  • Analytics Platform System (PDW)

Involved Views and Tables:

  • sys.dm_os_performance_counters

Sessions

Supported on:

  • SQL Server (all versions)
  • Azure SQL Database
  • Azure SQL Managed Instance
  • Azure Synapse Analytics
  • Analytics Platform System (PDW)
  • SQL analytics endpoint in Microsoft Fabric
  • Warehouse in Microsoft Fabric

Involved Views and Tables:

  • sys.dm_exec_sessions

Transaction logs

Supported on:

  • SQL Server (all versions)
  • Azure SQL Database
  • Azure SQL Managed Instance
  • Azure Synapse Analytics
  • Analytics Platform System (PDW)

Involved Views and Tables:

  • sys.dm_os_performance_counters

Backups

  • Monitoring age of latest backup and individual backups per database

    Supported on:

    • SQL Server (all versions)
    • Azure SQL Managed Instance

    Involved Views and Tables:

    • sys.databases
    • msdb.dbo.backupset
    • msdb.dbo.backupmediafamily
    • msdb.dbo.backupmediaset
  • Monitoring backup files size per database

    Supported on:

    • SQL Server (all versions)

    Involved Views and Tables:

    • sys.databases
    • msdb.dbo.backupset
    • msdb.dbo.backupmediafamily
    • msdb.dbo.backupmediaset
    • msdb.dbo.backupfile
    • sys.master_files
  • Monitoring individual Azure SQL Database backups

    Supported on:

    • Azure SQL Database

    Involved Views and Tables:

    • sys.db_database_backups

Database files

  • Monitoring database files stats

    Supported on:

    • SQL Server (all versions)
    • Azure SQL Managed Instance
    • Analytics Platform System (PDW)

    Involved Views and Tables:

    • sys.master_files
  • Monitoring largest database files on Azure SQL Database

    Supported on:

    • Azure SQL Database

    Involved Views and Tables:

    • sys.database_files
  • Monitoring largest database files on other SQL Server types

    Supported on:

    • SQL Server (all versions)
    • Azure SQL Managed Instance
    • Analytics Platform System (PDW)

    Involved Views and Tables:

    • sys.master_files

Always On

Supported on:

  • SQL Server (2016 and later)

Involved Views and Tables:

  • sys.availability_groups
  • sys.availability_replicas
  • sys.availability_databases_cluster
  • sys.dm_hadr_availability_group_states
  • sys.dm_hadr_availability_replica_states
  • sys.dm_hadr_database_replica_states

Jobs

Supported on:

  • SQL Server (all versions)

Involved Views and Tables

  • msdb.dbo.sysjobs
  • msdb.dbo.sysjobsteps
  • msdb.dbo.sysjobhistory
  • msdb.dbo.sysjobservers
  • msdb.dbo.sysjobactivity
  • msdb.dbo.systargetservers

Required permissions:

  • Official SQL Server documentation

Specific permissions required per system view

sys.dm_os_sys_info

  • SQL Server (2022 and later)
    • VIEW SERVER PERFORMANCE STATE permission.
  • SQL Server (up to 2019)
    • VIEW SERVER STATE permission.
  • Azure SQL Database (Basic, S0, S1 service objectives and for databases in elastic pools)
    • Server admin account; or
    • Azure Active Directory admin account; or
    • Membership in the ##MS_ServerStateReader## server role.
  • Azure SQL Database (All other service objectives)
    • VIEW DATABASE STATE permission on the database; or
    • ##MS_ServerStateReader## server role.
  • Azure SQL Managed Instance
    • VIEW SERVER STATE permission.

sys.dm_os_performance_counters

  • SQL Server (2022 and later)
    • VIEW SERVER PERFORMANCE STATE permission.
  • SQL Server (up to 2019)
    • VIEW SERVER STATE permission.
  • Azure SQL Database (Basic, S0, S1 service objectives and for databases in elastic pools)
    • Server admin account; or
    • Azure Active Directory admin account; or
    • Membership in the ##MS_ServerStateReader## server role.
  • Azure SQL Database (All other service objectives)
    • VIEW DATABASE STATE permission on the database; or
    • ##MS_ServerStateReader## server role.
  • Azure SQL Managed Instance
    • VIEW SERVER STATE permission.

sys.databases

  • Azure SQL Database
    • Connect to master database for all databases to be visible.
    • When connecting to a user database, only the current database and the master database are visible.
  • Other supported types of SQL Server
    • To see just the database extension is connected to:
      • No additional permissions are required.
    • To see all ONLINE databases:
      • VIEW ANY DATABASE (default permission for the public role)
    • To see all OFFLINE databases as well:
      • ALTER ANY DATABASE on server level; or
      • CREATE DATABASE permission in the master database.

sys.query_store_runtime_stats

  • All supported types of SQL Server
    • VIEW DATABASE STATE permission.

sys.query_store_plan

  • All supported types of SQL Server
    • VIEW DATABASE STATE permission.

sys.query_store_query

  • All supported types of SQL Server
    • VIEW DATABASE STATE permission.

sys.query_store_query_text

  • All supported types of SQL Server
    • VIEW DATABASE STATE permission.

sys.dm_exec_sessions

  • To see the sessions of the user extension connects with:
    • No additional permissions are required.
  • To see all sessions within the database extension is connected to:
    • VIEW DATABASE STATE permission.
  • To see all sessions on the server:
    • SQL Server (2022 and later)
      • VIEW SERVER PERFORMANCE STATE permission.
    • SQL Server (up to 2019)
      • VIEW SERVER STATE permission.

msdb.dbo.backupset

  • Available as read-only to any user with public level access to the instance.

msdb.dbo.backupfile

  • Available as read-only to any user with public level access to the instance.

msdb.dbo.backupmediafamily

  • Available as read-only to any user with public level access to the instance.

msdb.dbo.backupmediaset

  • Available as read-only to any user with public level access to the instance.

sys.master_files

  • All supported types of SQL Server:
    • VIEW ANY DEFINITION; or
    • CREATE DATABASE; or
    • ALTER ANY DATABASE.

sys.database_files

  • All supported types of SQL Server:
    • Requires membership in the public role, see Metadata Visibility Configuration.

sys.availability_groups

  • All supported types of SQL Server:
    • VIEW ANY DEFINITION permission.

sys.availability_replicas

  • All supported types of SQL Server:
    • VIEW ANY DEFINITION permission.

sys.availability_databases_cluster

  • All supported types of SQL Server:
    • If the user with which extension makes the calls is the owner of the database, no additional permissions are required.
    • Otherwise:
      • VIEW ANY DATABASE; or
      • ALTER ANY DATABASE; or
      • CREATE DATABASE permission in master is required.

sys.dm_hadr_availability_group_states

  • SQL Server (2022 and later)
    • VIEW SERVER PERFORMANCE STATE permission.
  • SQL Server (up to 2019)
    • VIEW SERVER STATE permission.

sys.dm_hadr_availability_replica_states

  • SQL Server (2022 and later)
    • VIEW SERVER PERFORMANCE STATE permission.
  • SQL Server (up to 2019)
    • VIEW SERVER STATE permission.

sys.dm_hadr_database_replica_states

  • SQL Server (2022 and later)
    • VIEW SERVER PERFORMANCE STATE permission.
  • SQL Server (up to 2019)
    • VIEW SERVER STATE permission.

sys.db_database_backups

  • Azure SQL Database (Basic, S0, S1 service objectives and for databases in elastic pools)
    • Server admin account; or
    • Microsoft Entra ID admin account; or
    • Membership in the ##MS_ServerStateReader## server role.
  • Azure SQL Database (All other service objectives)
    • VIEW DATABASE STATE permission on the database; or
    • ##MS_ServerStateReader## server role.

Limitations

Aggregated metrics for database files

The two metrics below

  • sql-server.databases.file.usedSpace
  • sql-server.databases.file.emptySpace

are only reported for the database the extension is currently connected to. This is due to sys.allocation_units only containing information about used pages of the database that is currently used inside the connection.

Top busiest queries

  • Top queries are only collected for a single database.
  • Top queries cannot be collected for master database (limitation of SQL Server itself).

Azure backups

Azure backups are monitored by querying the sys.db_database_backups view which is currently available for all Azure SQL Database service tiers except Hyperscaler.

Always On

To obtain information about every replica in a given availability group, connect the extension to the server instance that is hosting the primary replica. When connected to a server instance that is hosting a secondary replica of an availability group, the extension returns only local information for the availability group.

When connected to a secondary replica, the extension retrieves states of every secondary database on the server instance. On the primary replica, the extension returns data for each primary database and for the corresponding secondary database.

Depending on the action and higher-level states, database-state information may be unavailable or out of date. Furthermore, the values have only local relevance. See limitations of sys.dm_hadr_database_replica_states.

When a database is added to an availability group, the primary database is automatically joined to the group. Secondary databases must be manually prepared on each secondary replica before they can be joined to the availability group.

If the local server instance cannot communicate with the WSFC failover cluster, for example, because the cluster is down or quorum has been lost, only rows for local availability replicas are returned. These rows will contain only the columns of data that are cached locally in metadata.

FAQ

How does the extension affect the target database?

  • The extension only executes SELECT queries to obtain monitoring data. The database is never modified or locked.
  • The extension only queries sys.* system views and msdb database (when applicable). User databases and objects are never affected.
  • All executed queries are static and are cached within the target database after their first execution.
  • Even with all Feature Sets enabled, the effect the extension has on each target database is negligible.

How to size ActiveGates for this extension?

  • Each monitoring configuration is automatically assigned to an ActiveGate within the assigned ActiveGate group.
  • All of the endpoints within a single monitoring configuration are executed on a single ActiveGate.
  • Failover migration of monitoring configuration is automatically performed in case an ActiveGate is brought down. Migration is only performed within a single ActiveGate group.
  • Each monitoring configuration can handle hundreds of active endpoints simultaneously on a single ActiveGate with 2vCPU and 4GiB RAM.
  • The number of monitoring configurations that can be created is limited. It is much more performance and resource-efficient to have many endpoints inside a monitoring configuration instead of creating too many monitoring configurations.

Are there any special considerations when monitoring Always On clusters?

  • It is recommended to create two distinct monitoring configurations when monitoring an Always On cluster:
    • First monitoring configuration with only the "Always On" feature set enabled and connected exclusively to primary replicas within the cluster.
    • Second monitoring configuration with every feature set enabled except for "Always On" (disabled within the second monitoring configuration) with a connection to all instances within the cluster.
    • This configuration will ensure that full infrastructure observability is enabled for every instance within the cluster while the data related to Always On is reliably collected from the primary replicas.
  • It is recommended to create a separate monitoring configuration to monitor Always On clusters and only create endpoints to primary replicas. Due to built-in limitations of Always On, the secondary replicas do not have full information about the entire Always On cluster they belong to.
  • Connecting to both the primary and secondary replica in the same Always On cluster while having the "Always On" feature set enabled for both of them will result in duplicate metrics as well as distorted monitoring and is highly discouraged.

What authentication schemas are supported?

  • The following authentication types are supported
    • Basic authentication
    • Kerberos
    • NTLM

Are self-signed SSL certificates and PKCS12 truststores supported?

  • Yes, certificates signed with a non-public signing chain must be added to a truststore.
  • When an encryption certificate is generated using a non-publicly verifiable certificate authority, that CA must be made known to the ActiveGate.
  • See instructions on adding a truststore for a step-by-step guide.

Troubleshooting

  • To troubleshoot this extension, use the guide(s) in the Dynatrace Community
Dynatrace
DocumentationMore Information
By Dynatrace
Dynatrace support center
Subscribe to new releases
Copy to clipboard

Extension content

Content typeNumber of items included
alerts
2
screen injections
1
metric metadata
73
list screen layout
6
document dashboard
1
screen actions
14
generic type
7
screen entities lists
22
screen custom cards
2
generic relationship
7
screen properties
6
dashboards
1
screen chart groups
25
screen layout
10
screen dql table
2

Feature sets

Below is a complete list of the feature sets provided in this version. To ensure a good fit for your needs, individual feature sets can be activated and deactivated by your administrator during configuration.

Feature setsNumber of metrics included
Metric nameMetric keyDescriptionUnit
Database statesql-server.databases.stateDatabase stateState
Transactionssql-server.databases.transactions.countNumber of transactions started for the databaseCount
CPU Countsql-server.host.cpusDetected CPU CountCount
Time spent in kernel modesql-server.cpu.kernelTime.countTime spent by all threads in kernel modeMilliSecond
Time spent in user modesql-server.cpu.userTime.countTime spent by all threads in user modeMilliSecond
Physical memorysql-server.memory.physicalTotal amount of physical memory on the machineKiloByte
Virtual memorysql-server.memory.virtualTotal amount of virtual address space available to the process in user modeKiloByte
Total server memorysql-server.memory.totalAmount of memory the server has committed using the memory managerKiloByte
Target server memorysql-server.memory.targetAmount of memory that can be consumed by memory managerKiloByte
Uptimesql-server.uptimeTime in seconds since instance was last startedSeconds
Loginssql-server.general.logins.countNumber of logins started, excluding pooled connectionsCount
User connectionssql-server.general.userConnectionsNumber of users currently connected to SQL ServerCount
Processes blockedsql-server.general.processesBlockedNumber of currently blocked processesCount
Metric nameMetric keyDescriptionUnit
Bytes sent to replicasql-server.replica.bytesSent.countMessage bytes queued to be sent to replicasByte
Sends to replicasql-server.replica.sends.countNumber of messages queued to be sent to replicaCount
Bytes sent to transportsql-server.replica.bytesSentToTransport.countDequeued message bytes sent across network to replicasByte
Sends to transportsql-server.replica.sendsToTransport.countNumber of messages sent across network to replicasCount
Bytes received from replicasql-server.replica.bytesReceived.countMessage bytes received from replicaByte
Receives from replicasql-server.replica.receives.countNumber of messages received from replicaCount
Resent messagessql-server.replica.resentMessages.countNumber of messages that had to be resent to replicaCount
Metric nameMetric keyDescriptionUnit
Minutes since last backupsql-server.databases.backup.ageNumber of minutes passed since last backupMinute
Size of the last backupsql-server.databases.backup.sizeSize of the last backup of that typeByte
Metric nameMetric keyDescriptionUnit
Failed Distributed Transactionssql-server.databases.failedDistributedTransactions.countThe number of failed distributed transactionsCount
Batch requestssql-server.sql.batchRequests.countNumber of Transact-SQL command batches receivedCount
SQL compilationssql-server.sql.compilations.countNumber of SQL statement compilationsCount
SQL re-compilationssql-server.sql.recompilations.countNumber of SQL statement re-compilationsCount
Metric nameMetric keyDescriptionUnit
Sessionssql-server.sessionsNumber of active sessions per userCount
Metric nameMetric keyDescriptionUnit
Lock timeoutssql-server.locks.timeouts.countNumber of lock requests that timed out, including requests for NOWAIT locksCount
Deadlockssql-server.locks.deadlocks.countNumber of lock requests that resulted in a deadlockCount
Lock waitssql-server.locks.waits.countNumber of lock requests that required the caller to waitCount
Lock wait timesql-server.locks.waitTime.countWait time for locksMilliSecond
Metric nameMetric keyDescriptionUnit
Synchronization statesql-server.always-on.db.synchronizationStateData-movement stateState
Synchronization healthsql-server.always-on.db.synchronizationHealthIntersection of the synchronization state of a database that is joined to the group on the replica and the availability mode of the replicaState
Database statesql-server.always-on.db.stateState of the availability databaseState
Log send queue sizesql-server.always-on.db.logSendQueueSizeAmount of log records of the primary database not sent to the secondary databasesKibiByte
Log send ratesql-server.always-on.db.logSendRateAverage rate at which primary replica instance sends dataKiloBytePerSecond
Redo queue sizesql-server.always-on.db.redoQueueSizeAmount of log records in the log files of the secondary replica that has not yet been redoneKiloByte
Redo ratesql-server.always-on.db.redoRateAverage Rate at which the log records are being redone on a given secondary databaseKiloBytePerSecond
Filestream send ratesql-server.always-on.db.filestreamSendRateThe rate at which the filestream files are shipped to the secondary replicaKiloBytePerSecond
Automated backup preferencesql-server.always-on.ag.automatedBackupPreferencePreferred location for backups in this availability groupState
Primary recovery healthsql-server.always-on.ag.primaryRecoveryHealthIndicates the recovery health of the primary replicaState
Secondary recovery healthsql-server.always-on.ag.secondaryRecoveryHealthIndicates the recovery health of a secondary replicaState
Synchronization healthsql-server.always-on.ag.synchronizationHealthReflects a rollup of the synchronization health of all replicas the groupState
Availability modesql-server.always-on.ar.availabilityModeThe availability mode of the replicaState
Failover modesql-server.always-on.ar.failoverModeThe failover mode of the replicaState
Is replica localsql-server.always-on.ar.isLocalWhether the replica is localState
Replica rolesql-server.always-on.ar.roleCurrent groups role of a local replica or a connected remote replicaState
Operational statesql-server.always-on.ar.operationalStateCurrent operational state of the replicaState
Recovery healthsql-server.always-on.ar.recoveryHealthRollup of the database_state columnState
Synchronization healthsql-server.always-on.ar.synchronizationHealthRollup of the database synchronization state of all joined replicas and the availability mode of the replicaState
Connected statesql-server.always-on.ar.connectedStateWhether a secondary replica is currently connected to the primary replicaState
Metric nameMetric keyDescriptionUnit
Log files sizesql-server.databases.log.filesSizeCumulative size of all the transaction log files in the databaseKiloByte
Log files used sizesql-server.databases.log.filesUsedSizeThe cumulative used size of all the log files in the databaseKiloByte
Log flush waitssql-server.databases.log.flushWaits.countNumber of commits waiting for the log flushCount
Log growthssql-server.databases.log.growths.countNumber of times the transaction log for the database has been expandedCount
Log shrinkssql-server.databases.log.shrinks.countNumber of log shrinks for this databaseCount
Log truncationssql-server.databases.log.truncations.countNumber of times the transaction log has been truncated (in Simple Recovery Model)Count
Percent log usedsql-server.databases.log.percentUsedPercentage of space in the log that is in usePercent
Metric nameMetric keyDescriptionUnit
Database file sizesql-server.databases.file.sizeTotal size of files of specific types per databaseKiloByte
Database file used sizesql-server.databases.file.usedSpaceTotal size of space used in files of specific types per databaseKiloByte
Database file empty sizesql-server.databases.file.emptySpaceTotal size of empty space in files of specific types per databaseKiloByte
Metric nameMetric keyDescriptionUnit
Latch waitssql-server.latches.waits.countNumber of latch requests that could not be granted immediatelyCount
Average latch wait timesql-server.latches.averageWaitTime.countAverage latch wait time for latch requests that had to waitMilliSecond
Metric nameMetric keyDescriptionUnit
-sql-server.sql.agent.status--
Metric nameMetric keyDescriptionUnit
Buffer cache hitsql-server.buffers.cacheHitRatioPercentage of pages found in the buffer cache without having to read from diskPercent
Free list stallssql-server.buffers.freeListStalls.countNumber of requests that had to wait for a free pageCount
Page readssql-server.buffers.pageReads.countNumber of physical database page reads that are issuedCount
Page writessql-server.buffers.pageWrites.countNumber of physical database page writes that are issuedCount
Checkpoint pagessql-server.buffers.checkpointPages.countNumber of pages flushed to disk by a checkpoint or other operations that require all dirty pages to be flushedCount
Page life expectancysql-server.buffers.pageLifeExpectancyNumber of seconds a page will stay in the buffer pool without referencesSecond
Connection memorysql-server.memory.connectionTotal amount of dynamic memory the server is using for maintaining connectionsKiloByte
Memory grants outstandingsql-server.memory.grantsOutstandingNumber of processes that have successfully acquired a workspace memory grantCount
Memory grants pendingsql-server.memory.grantsPendingNumber of processes waiting for a workspace memory grantCount
Customer story Photobox
“With such a diverse technology stack, not many solutions were able to meet all our needs, but Dynatrace was the exception.”
Alex Hibbitt
Engineering Director, SRE & Fulfillment
See their story

Related to Microsoft SQL Server

Microsoft SQL Server (local) logo

Microsoft SQL Server (local)

Improve the health and performance monitoring of your Microsoft SQL Servers.

Full version history

To have more information on how to install the downloaded package, please follow the instructions on this page.
ReleaseDate

Full version history

New Feature:

  • Configurable frequency for the SQL queries

Full version history

Adds the SAME_AS relationship between SQL Instances and related Process Group Instances on OneAgent monitored hosts.

Full version history

Features:

  • Added a built-in dashboard for 3rd gen SaaS tenants.

Full version history

Fixed in this version:

  • Sorting SQL statements in Databases app would produce duplicate results

Full version history

New Entity
  • SQL Agent added to topology
New Metrics
  • Agent Status
  • Failed Distributed Transactions Count
New Log Ingests
  • Top 25 Agent Queries running longer than 60 seconds
  • Top 25 Application Queries running longer than 60 seconds

Bug Fixes

  • Fixed an issue where Databases App did not display Uptime Hours due to syntax error.
  • Fixed Arithmetic Overflow Error that had a chance to occur in large environments on the Largest Files Managed calculation.

Full version history

Improvements

  • Execution Plan fetching now done in Databases App
  • Instance entity parsing from log records

Changes

  • Removed query plan from longest_queries query
  • Show latest back-up age

Full version history

Improvements:

  • Added default value for availability.replica.instance dimension: MSSQLSERVER.

    This enables the SAME AS relationship between the sql:sql_server_instance and sql:sql_server_availability_replica entities based on the equality of their respective attributes: server = ar_server_name and instance = ar_instance_name.

    Previously, if the replica was running on an instance that had a default name, the relationshp wasn't being established.

Full version history

Bug fixes:

  • Fixed typo in the metric description of the sql-server.databases.log.percentUsed.

Full version history

Bug fixes:

  • Added SAME_AS relationship from sql:sql_server_availability_replica to sql:sql_server_instance based on the matching ar_server_name -> server and ar_instance_name -> instance attributes.

Full version history

Bug fixes:

  • Hotfix for backup age retrieval in metric sql-server.databases.backup.age. Release 2.5.0 introduced a bug where age of the oldest backup instead of the latest one was retrieved.

Full version history

Bug fixes:

  • Only the age of the oldest observable backup was reported in the sql-server.databases.backup.age metric. This has now been fixed and the age of the most recent backup is being reported instead.

Improvements:

  • Additional dimensions in for backup metrics: device_type, recovery_model, software_name.
  • Better granularity for backup_type dimension: "Full", "Full copy-only", "Differential", "Transaction log", "File or filegroup", "Differential file", "Partial", "Differential partial".

Features:

  • Backup monitoring for Azure SQL Database is now available through "Backups" feature set. The sys.dm_database_backups view is queried every 5 minutes and a record about each finished backup is ingested as a log. Can be filtered using the backups_azure value for event.group attribute.
  • Monitoring of each individual backup for SQL Server and Azure SQL Managed Instances is now available through "Backups" feature set. Information about every backup finished within the last 5 minutes is retrieved and ingested as a log record.

Full version history

Improvements:

  • Default timeout for longest_queries is increased to 120 seconds. Allowing query to have more time to complete and fetch the data about top busiest queries on the target database.

Features:

  • New variable "Longest queries timeout" that can be specified per monitoring configuration. Default is 120 seconds. Can be increased to values up to 290 seconds.

Warning:

  • Any value specified in the "Longest queries timeout" variable field must be a valid integer.

Full version history

Bug fixes:

  • Fixed incorrectly detected relationship between Availability Databases and Availability Groups. Previously only one availability database was visible per group.

Warning:

  • Direct topology relationship between Availability Group and Availability Database entity types was removed. Instead, the relationship between them is now derived through Availability Replica.
  • Direct topology relationship between Database and Availability Database is removed. It wasn't detected properly in the past and has been removed as redundant.

Full version history

Bug fixes:

  • Fix retrieval problems in "Queries" and "Jobs" feature sets for instances in non-UTC time zones or running on hosts in non-UTC time zones.

Full version history

Bug fixes:

  • Fixed: Arithmetic overflow error / An expression of non-boolean type specified for Database Files feature set

Full version history

Improvements:

  • Top queries and failed jobs are now correctly retrieved for instances with a timezone other than UTC.

Full version history

New features:

  • Monitoring of current and failed jobs (enabled through Jobs feature set).

Addressed issues:

  • Improved compatibility with new Databases App.

Full version history

  • Number of longest queries collected every minute is reduced from 100 to 10 to comply with existing log ingestion limitations (to be increased back in the future release).
  • Monitoring of backups is now supported on Azure SQL Managed Instance and Analytics Platform System (PDW).
  • The backup_type dimension now contains full backup type names instead of a single letter.

Full version history

Major release with breaking changes

Breaking changes

  • All monitoring configurations must be recreated because of change in feature sets.
  • instance dimension changes its meaning to only contains an actual named instance name or MSSQLSERVER by default.
  • hoursSinceBackup metric is removed and replaced by sql-server.databases.backup.age.

New features

  • Query level monitoring: Top 100 longest running queries are collected every 5 minutes (enabled through Queries feature set).
  • Largest database files monitoring: Top 100 largest database files as monitored every 5 minutes (enabled through Database files feature set).
  • instance dimension is now retrieved from "InstanceName" server property but only contains an actual named instance name. Defaults to MSSQLSERVER for unnamed instances.
  • New server dimension is now retrieved from ServerName but only contains an actual machine or server name, without named instance.
  • Feature sets are not more granularly grouped allowing for fine grained control over which metrics are collected.
  • Detailed backup monitoring with backup size and backup age collected for backup type and individual database.
  • Detailed database files monitoring with average file size, used space, and empty space collected for each file type and individual database.
  • Entity screens are now adapted to the latest versions of SaaS and utilize DQL.
  • Monitoring of communication with availability replcia (bytes sent/received).
  • Conversion of database ID to human readable name for Azure SQL databases.
  • CPU and Memory monitoring.
  • Uptime monitoring.

Bug fixes

  • Incorrect detection of named instances in certain cases was addressed through better identification of instance and server dimensions.

Full version history

UPDATE WARNING

SQL Server extension starting with version 1.2+ introduces feature sets. The feature sets need to be enabled for each updated monitoring configuration. Otherwise data collection for monitored endpoints stops after updating configuration.

Changes in this release

Improvements:

  • Instance is now visible on the Host screen if OneAgent is installed
  • Action buttons added on each entity screen
  • Improved entity listings on each screen
  • Uniform style for dashboard
  • Improved metric definitions with associations to source entities
  • Added properties for each monitored entity
  • Added relations to other entities inside property cards
  • Improved state charts
  • Added database state metric

Bugfixes:

  • Wrong count metric aggregations addressed
  • Proper identification of instances and replicas, separate from each other (duplicate instances)
  • Typos in screen charts
  • Enable monitoring of msdb and tempdb
  • Compatibility with SQL Server version <2019 for database metrics added back

Full version history

  • Fix: missing column name for SQL Server versions below 2019

Full version history

  • Always On support
  • Metric type fixed for Lock Wait Time and Latch Average Wait Time
  • Entities not being generated for hosts without a domain name
  • Entity topology updated
  • List of database entities is now available

Full version history

  • Support for monitoring databases on named instances.

Full version history

  • Release v1.0.1
  • Contains the same metrics that were collected by the previous generation of the SQL Server remote monitoring.
Dynatrace Hub
Get data into DynatraceBuild your own app
All (768)Log Management and AnalyticsKubernetesAI and LLM ObservabilityInfrastructure ObservabilitySoftware DeliveryApplication ObservabilityApplication SecurityDigital ExperienceBusiness Analytics
Filter
Type
Built and maintained by
Deployment model
SaaS
  • SaaS
  • Managed
Partner FinderBecome a partnerDynatrace Developer

Discover recent additions to Dynatrace

Problems logo

Problems

Analyze abnormal system behavior and performance problems detected by Davis AI.

Logs logo

Logs

Explore all your logs without writing a single query.

Security Investigator logo

Security Investigator

Fast and precise forensics for security and logs on Grail data with DQL queries.

Business Flow logo

Business Flow

Track, analyze, and optimize your critical business processes.

Cost & Carbon Optimization logo

Cost & Carbon Optimization

Track, analyze, and optimize your IT carbon footprint and public cloud costs.

Davis Anomaly Detection logo

Davis Anomaly Detection

Detect anomalies in timeseries using the Davis AI

Analyze your data

Understand your data better with deep insights and clear visualizations.

Notebooks logo

Notebooks

Create powerful, data-driven documents for custom analytics and collaboration.

Dashboards logo

Dashboards

Transform complex data into clear visualizations with custom dashboards.

Automate your processes

Turn data and answers into actions, securely, and at scale.

Workflows logo

Workflows

Automate tasks in your IT landscape, remediate problems, and visualize processes

Jira logo

Jira

Create, query, comment, transition, and resolve Jira tickets within workflows.

Slack logo

Slack

Automate Slack messaging for security incidents, attacks, remediation, and more.

Secure your cloud application

See vulnerabilities and attacks in your environment.

Security Overview logo

Security Overview

Get a comprehensive overview of the security of your applications.

Code-Level Vulnerabilities logo

Code-Level Vulnerabilities

Detect vulnerabilities in your code in real time.

Threats & Exploits logo

Threats & Exploits

Understand, triage, and investigate application security findings and alerts.

Are you looking for something different?

We have hundreds of apps, extensions, and other technologies to customize your environment

Leverage our newest innovations of Dynatrace Saas

Kick-start your app creation

Kick-start your app creation

Whether you’re a beginner or a pro, Dynatrace Developer has the tools and support you need to create incredible apps with minimal effort.
Go to Dynatrace Developer
Upgrading from Dynatrace Managed to SaaS

Upgrading from Dynatrace Managed to SaaS

Drive innovation, speed, and agility in your organization by seamlessly and securely upgrading.
Learn More
Log Management and Analytics

Log Management and Analytics

Innovate faster and more efficiently with unified log management and log analytics for actionable insights and automation.
Learn more