Extend the platform,
empower your team.
Improve the health and performance monitoring of your Microsoft SQL Servers.
ExtensionMicrosoft 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.
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.
Important note: Other types of replication and HA monitoring, including publisher/subscriber model, are not supported yet.
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.
Collection of top queries ordered by total duration can be enabled using the Queries
feature set.
Top queries are fetched by extension every 5 minutes.
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 secondsavg_duration
represents an average execution time of this query of the given 5 min timeframe in secondscontent
field contains the SQL text of the queryOn Managed tenants: log records can be retrieved by filtering logs using 2 attributes
dt.extension.name
: com.dynatrace.extension.sql-server
; andevent.group
: longest_queries
.Collection of largest database files by size can be enabled using the Database files
feature set.
Top database files by size are fetched by extension every 5 minutes.
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 OSfile_size
is reported in KBfile_used_space
is reported in KB and represents amount of space occupied by allocated pages within a specific filefile_empty_space
is reported in KB and represents amount of space that is still empty within a specifc fileOn Managed tenants: log records can be retrieved by filtering logs using 2 attributes
dt.extension.name
: com.dynatrace.extension.sql-server
; andevent.group
: largest_files
.Monitoring of current jobs can be enabled using the Jobs
feature set.
Current jobs are fetched by extension every 5 minutes.
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:
job_status
equals Idle
job_status
equals In Progress
duration
represents complete job duration in seconds after execution is finishedOn Managed tenants: log records can be retrieved by filtering logs using 2 attributes
dt.extension.name
: com.dynatrace.extension.sql-server
; andevent.group
: current_jobs
.Monitoring of failed jobs can be enabled using the Jobs
feature set.
Failed jobs are fetched by extension every 5 minutes.
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 finishedOn Managed tenants: log records can be retrieved by filtering logs using 2 attributes
dt.extension.name
: com.dynatrace.extension.sql-server
; andevent.group
: failed_jobs
.SELECT
queries to obtain monitoring data. The database is never modified or locked.sys.*
system views and msdb
database (when applicable). User databases and objects are never affected.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:
sql-server.databases.backup.size
2
instances with 20
databases in each.2 (SQL Server Instances) * 20 (SQL Server Databases in each) = 40
unique databases in total.60
(metric is retrieved every minute).40 * 60 * 0.001 = 2.4 DDUs
.2.4 * 24 * 365 = 21,024 DDUs
.sql-server.memory.target
number of SQL Server Instances in environment * 60
sql-server.memory.physical
number of SQL Server Instances in environment * 60
sql-server.databases.state
number of SQL Server Databases in environment * 60
sql-server.uptime
number of SQL Server Instances in environment * 12
sql-server.databases.transactions.count
number of SQL Server Databases in environment * 60
sql-server.memory.total
number of SQL Server Instances in environment * 60
sql-server.cpu.kernelTime.count
number of SQL Server Instances in environment * 60
sql-server.general.userConnections
number of SQL Server Instances in environment * 60
sql-server.general.processesBlocked
number of SQL Server Instances in environment * 60
sql-server.general.logins.count
number of SQL Server Instances in environment * 60
sql-server.cpu.userTime.count
number of SQL Server Instances in environment * 60
sql-server.memory.virtual
number of SQL Server Instances in environment * 60
sql-server.host.cpus
number of SQL Server Hosts in environment * 12
sql-server.always-on.ag.secondaryRecoveryHealth
number of SQL Server Availability Groups in environment * 60
sql-server.always-on.ag.primaryRecoveryHealth
number of SQL Server Availability Groups in environment * 60
sql-server.always-on.ar.failoverMode
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.ag.synchronizationHealth
number of SQL Server Availability Groups in environment * 60
sql-server.always-on.ar.operationalState
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.ar.connectedState
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.db.filestreamSendRate
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.db.state
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.db.synchronizationHealth
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.db.logSendQueueSize
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.ar.role
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.db.synchronizationState
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.db.redoRate
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.db.redoQueueSize
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.ar.synchronizationHealth
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.db.logSendRate
number of SQL Server Availability Databases in environment * 60
sql-server.always-on.ar.availabilityMode
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.ag.automatedBackupPreference
number of SQL Server Availability Groups in environment * 60
sql-server.always-on.ar.isLocal
number of SQL Server Availability Replicas in environment * 60
sql-server.always-on.ar.recoveryHealth
number of SQL Server Availability Replicas in environment * 60
sql-server.databases.backup.age
number of SQL Server Databases in environment * 60
sql-server.databases.backup.size
number of SQL Server Databases in environment * 60
sql-server.databases.file.emptySpace
number of SQL Server Databases in environment * 60
sql-server.databases.file.size
number of SQL Server Databases in environment * 60
sql-server.databases.file.usedSpace
number of SQL Server Databases in environment * 60
largest_files
Up to 100 (num of files) * 12 * avg log size
sql-server.latches.waits.count
number of SQL Server Instances in environment * 60
sql-server.latches.averageWaitTime.count
number of SQL Server Instances in environment * 60
sql-server.locks.timeouts.count
number of SQL Server Instances in environment * 60
sql-server.locks.waits.count
number of SQL Server Instances in environment * 60
sql-server.locks.waitTime.count
number of SQL Server Instances in environment * 60
sql-server.locks.deadlocks.count
number of SQL Server Instances in environment * 60
sql-server.buffers.checkpointPages.count
number of SQL Server Instances in environment * 60
sql-server.memory.grantsOutstanding
number of SQL Server Instances in environment * 60
sql-server.memory.connection
number of SQL Server Instances in environment * 60
sql-server.buffers.pageWrites.count
number of SQL Server Instances in environment * 60
sql-server.buffers.pageLifeExpectancy
number of SQL Server Instances in environment * 60
sql-server.memory.grantsPending
number of SQL Server Instances in environment * 60
sql-server.buffers.cacheHitRatio
number of SQL Server Instances in environment * 60
sql-server.buffers.freeListStalls.count
number of SQL Server Instances in environment * 60
sql-server.buffers.pageReads.count
number of SQL Server Instances in environment * 60
sql-server.sql.recompilations.count
number of SQL Server Instances in environment * 60
sql-server.sql.compilations.count
number of SQL Server Instances in environment * 60
sql-server.sql.batchRequests.count
number of SQL Server Instances in environment * 60
longest_queries
Up to 100 (num of queries) * 12 * avg log size
sql-server.replica.bytesSentToTransport.count
number of SQL Server Instances in environment * 60
sql-server.replica.sends.count
number of SQL Server Instances in environment * 60
sql-server.replica.sendsToTransport.count
number of SQL Server Instances in environment * 60
sql-server.replica.bytesReceived.count
number of SQL Server Instances in environment * 60
sql-server.replica.bytesSent.count
number of SQL Server Instances in environment * 60
sql-server.replica.resentMessages.count
number of SQL Server Instances in environment * 60
sql-server.replica.receives.count
number of SQL Server Instances in environment * 60
sql-server.sessions
number of SQL Server Instances in environment * 60
sql-server.databases.log.flushWaits.count
number of SQL Server Databases in environment * 60
sql-server.databases.log.filesUsedSize
number of SQL Server Databases in environment * 60
sql-server.databases.log.growths.count
number of SQL Server Databases in environment * 60
sql-server.databases.log.truncations.count
number of SQL Server Databases in environment * 60
sql-server.databases.log.shrinks.count
number of SQL Server Databases in environment * 60
sql-server.databases.log.filesSize
number of SQL Server Databases in environment * 60
sql-server.databases.log.percentUsed
number of SQL Server Databases in environment * 60
current_jobs
Number of currently enabled jobs * 12 * avg log size
failed_jobs
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.
v2.0.0
:
instance
dimension now only contains the name of the actual named instance or MSSQLSERVER
by default.hoursSinceBackup
metric is removed and replaced by sql-server.databases.backup.age
.v1.2.0
:
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 on:
Views and tables involved:
Supported on:
Involved Views and Tables:
Supported on:
Involved Views and Tables:
Supported on:
Involved Views and Tables:
Monitoring query performance stats
Supported on:
Involved Views and Tables:
Monitoring TOP longest queries
Supported on:
Involved Views and Tables:
Supported on:
Involved Views and Tables:
Supported on:
Involved Views and Tables:
Supported on:
Involved Views and Tables:
Monitoring age of latest backup and individual backups per database
Supported on:
Involved Views and Tables:
Monitoring backup files size per database
Supported on:
Involved Views and Tables:
Monitoring individual Azure SQL Database backups
Supported on:
Involved Views and Tables:
Monitoring database files stats
Supported on:
Involved Views and Tables:
Monitoring largest database files on Azure SQL Database
Supported on:
Involved Views and Tables:
Monitoring largest database files on other SQL Server types
Supported on:
Involved Views and Tables:
Supported on:
Involved Views and Tables:
Supported on:
Involved Views and Tables
Required permissions:
VIEW SERVER PERFORMANCE STATE
permission.VIEW SERVER STATE
permission.##MS_ServerStateReader##
server role.VIEW DATABASE STATE
permission on the database; or##MS_ServerStateReader##
server role.VIEW SERVER STATE
permission.VIEW SERVER PERFORMANCE STATE
permission.VIEW SERVER STATE
permission.##MS_ServerStateReader##
server role.VIEW DATABASE STATE
permission on the database; or##MS_ServerStateReader##
server role.VIEW SERVER STATE
permission.master
database for all databases to be visible.master
database are visible.ONLINE
databases:
VIEW ANY DATABASE
(default permission for the public role)OFFLINE
databases as well:
ALTER ANY DATABASE
on server level; orCREATE DATABASE
permission in the master
database.VIEW DATABASE STATE
permission.VIEW DATABASE STATE
permission.VIEW DATABASE STATE
permission.VIEW DATABASE STATE
permission.VIEW DATABASE STATE
permission.VIEW SERVER PERFORMANCE STATE
permission.VIEW SERVER STATE
permission.VIEW ANY DEFINITION
; orCREATE DATABASE
; orALTER ANY DATABASE
.VIEW ANY DEFINITION
permission.VIEW ANY DEFINITION
permission.VIEW ANY DATABASE
; orALTER ANY DATABASE
; orCREATE DATABASE
permission in master
is required.VIEW SERVER PERFORMANCE STATE
permission.VIEW SERVER STATE
permission.VIEW SERVER PERFORMANCE STATE
permission.VIEW SERVER STATE
permission.VIEW SERVER PERFORMANCE STATE
permission.VIEW SERVER STATE
permission.##MS_ServerStateReader##
server role.VIEW DATABASE STATE
permission on the database; or##MS_ServerStateReader##
server role.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.
master
database (limitation of SQL Server itself).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.
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.
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.
Metric name | Metric key | Description | Unit |
---|---|---|---|
Time spent in kernel mode | sql-server.cpu.kernelTime.count | Time spent by all threads in kernel mode | MilliSecond |
Time spent in user mode | sql-server.cpu.userTime.count | Time spent by all threads in user mode | MilliSecond |
Uptime | sql-server.uptime | Time in seconds since instance was last started | Seconds |
CPU Count | sql-server.host.cpus | Detected CPU Count | Count |
Physical memory | sql-server.memory.physical | Total amount of physical memory on the machine | KiloByte |
Virtual memory | sql-server.memory.virtual | Total amount of virtual address space available to the process in user mode | KiloByte |
Total server memory | sql-server.memory.total | Amount of memory the server has committed using the memory manager | KiloByte |
Target server memory | sql-server.memory.target | Amount of memory that can be consumed by memory manager | KiloByte |
Logins | sql-server.general.logins.count | Number of logins started, excluding pooled connections | Count |
User connections | sql-server.general.userConnections | Number of users currently connected to SQL Server | Count |
Processes blocked | sql-server.general.processesBlocked | Number of currently blocked processes | Count |
Transactions | sql-server.databases.transactions.count | Number of transactions started for the database | Count |
Database state | sql-server.databases.state | Database state | State |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Sessions | sql-server.sessions | Number of active sessions per user | Count |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Buffer cache hit | sql-server.buffers.cacheHitRatio | Percentage of pages found in the buffer cache without having to read from disk | Percent |
Free list stalls | sql-server.buffers.freeListStalls.count | Number of requests that had to wait for a free page | Count |
Page reads | sql-server.buffers.pageReads.count | Number of physical database page reads that are issued | Count |
Page writes | sql-server.buffers.pageWrites.count | Number of physical database page writes that are issued | Count |
Checkpoint pages | sql-server.buffers.checkpointPages.count | Number of pages flushed to disk by a checkpoint or other operations that require all dirty pages to be flushed | Count |
Page life expectancy | sql-server.buffers.pageLifeExpectancy | Number of seconds a page will stay in the buffer pool without references | Second |
Connection memory | sql-server.memory.connection | Total amount of dynamic memory the server is using for maintaining connections | KiloByte |
Memory grants outstanding | sql-server.memory.grantsOutstanding | Number of processes that have successfully acquired a workspace memory grant | Count |
Memory grants pending | sql-server.memory.grantsPending | Number of processes waiting for a workspace memory grant | Count |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Database file size | sql-server.databases.file.size | Total size of files of specific types per database | KiloByte |
Database file used size | sql-server.databases.file.usedSpace | Total size of space used in files of specific types per database | KiloByte |
Database file empty size | sql-server.databases.file.emptySpace | Total size of empty space in files of specific types per database | KiloByte |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Latch waits | sql-server.latches.waits.count | Number of latch requests that could not be granted immediately | Count |
Average latch wait time | sql-server.latches.averageWaitTime.count | Average latch wait time for latch requests that had to wait | MilliSecond |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Log files size | sql-server.databases.log.filesSize | Cumulative size of all the transaction log files in the database | KiloByte |
Log files used size | sql-server.databases.log.filesUsedSize | The cumulative used size of all the log files in the database | KiloByte |
Log flush waits | sql-server.databases.log.flushWaits.count | Number of commits waiting for the log flush | Count |
Log growths | sql-server.databases.log.growths.count | Number of times the transaction log for the database has been expanded | Count |
Log shrinks | sql-server.databases.log.shrinks.count | Number of log shrinks for this database | Count |
Log truncations | sql-server.databases.log.truncations.count | Number of times the transaction log has been truncated (in Simple Recovery Model) | Count |
Percent log used | sql-server.databases.log.percentUsed | Percentage of space in the log that is in use | Percent |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Batch requests | sql-server.sql.batchRequests.count | Number of Transact-SQL command batches received | Count |
SQL compilations | sql-server.sql.compilations.count | Number of SQL statement compilations | Count |
SQL re-compilations | sql-server.sql.recompilations.count | Number of SQL statement re-compilations | Count |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Minutes since last backup | sql-server.databases.backup.age | Number of minutes passed since last backup | Minute |
Size of the last backup | sql-server.databases.backup.size | Size of the last backup of that type | Byte |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Automated backup preference | sql-server.always-on.ag.automatedBackupPreference | Preferred location for backups in this availability group | State |
Primary recovery health | sql-server.always-on.ag.primaryRecoveryHealth | Indicates the recovery health of the primary replica | State |
Secondary recovery health | sql-server.always-on.ag.secondaryRecoveryHealth | Indicates the recovery health of a secondary replica | State |
Synchronization health | sql-server.always-on.ag.synchronizationHealth | Reflects a rollup of the synchronization health of all replicas the group | State |
Availability mode | sql-server.always-on.ar.availabilityMode | The availability mode of the replica | State |
Failover mode | sql-server.always-on.ar.failoverMode | The failover mode of the replica | State |
Is replica local | sql-server.always-on.ar.isLocal | Whether the replica is local | State |
Replica role | sql-server.always-on.ar.role | Current groups role of a local replica or a connected remote replica | State |
Operational state | sql-server.always-on.ar.operationalState | Current operational state of the replica | State |
Recovery health | sql-server.always-on.ar.recoveryHealth | Rollup of the database_state column | State |
Synchronization health | sql-server.always-on.ar.synchronizationHealth | Rollup of the database synchronization state of all joined replicas and the availability mode of the replica | State |
Connected state | sql-server.always-on.ar.connectedState | Whether a secondary replica is currently connected to the primary replica | State |
Synchronization state | sql-server.always-on.db.synchronizationState | Data-movement state | State |
Synchronization health | sql-server.always-on.db.synchronizationHealth | Intersection of the synchronization state of a database that is joined to the group on the replica and the availability mode of the replica | State |
Database state | sql-server.always-on.db.state | State of the availability database | State |
Log send queue size | sql-server.always-on.db.logSendQueueSize | Amount of log records of the primary database not sent to the secondary databases | KibiByte |
Log send rate | sql-server.always-on.db.logSendRate | Average rate at which primary replica instance sends data | KiloBytePerSecond |
Redo queue size | sql-server.always-on.db.redoQueueSize | Amount of log records in the log files of the secondary replica that has not yet been redone | KiloByte |
Redo rate | sql-server.always-on.db.redoRate | Average Rate at which the log records are being redone on a given secondary database | KiloBytePerSecond |
Filestream send rate | sql-server.always-on.db.filestreamSendRate | The rate at which the filestream files are shipped to the secondary replica | KiloBytePerSecond |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Bytes sent to replica | sql-server.replica.bytesSent.count | Message bytes queued to be sent to replicas | Byte |
Sends to replica | sql-server.replica.sends.count | Number of messages queued to be sent to replica | Count |
Bytes sent to transport | sql-server.replica.bytesSentToTransport.count | Dequeued message bytes sent across network to replicas | Byte |
Sends to transport | sql-server.replica.sendsToTransport.count | Number of messages sent across network to replicas | Count |
Bytes received from replica | sql-server.replica.bytesReceived.count | Message bytes received from replica | Byte |
Receives from replica | sql-server.replica.receives.count | Number of messages received from replica | Count |
Resent messages | sql-server.replica.resentMessages.count | Number of messages that had to be resent to replica | Count |
Metric name | Metric key | Description | Unit |
---|---|---|---|
Lock timeouts | sql-server.locks.timeouts.count | Number of lock requests that timed out, including requests for NOWAIT locks | Count |
Deadlocks | sql-server.locks.deadlocks.count | Number of lock requests that resulted in a deadlock | Count |
Lock waits | sql-server.locks.waits.count | Number of lock requests that required the caller to wait | Count |
Lock wait time | sql-server.locks.waitTime.count | Wait time for locks | MilliSecond |
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.
Bug fixes:
sql-server.databases.log.percentUsed
.Bug fixes:
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.Bug fixes:
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.Bug fixes:
sql-server.databases.backup.age
metric. This has now been fixed and the age of the most recent backup is being reported instead.Improvements:
device_type
, recovery_model
, software_name
.backup_type
dimension: "Full", "Full copy-only", "Differential", "Transaction log", "File or filegroup", "Differential file", "Partial", "Differential partial".Features:
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.Improvements:
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:
Warning:
Bug fixes:
Warning:
Bug fixes:
Bug fixes:
Arithmetic overflow error / An expression of non-boolean type specified
for Database Files feature setImprovements:
New features:
Jobs
feature set).Addressed issues:
backup_type
dimension now contains full backup type names instead of a single letter.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
.instance
dimension is now retrieved from "InstanceName" server property but only contains an actual named instance name. Defaults to MSSQLSERVER
for unnamed instances.server
dimension is now retrieved from ServerName
but only contains an actual machine or server name, without named instance.instance
and server
dimensions.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.
Improvements:
Bugfixes: