| DisplayName | Description | ID | Target | Category | Enabled | Instance Name | Counter Name | Frequency | Event_ID | Event Source | Alert Generate | Alert Severity | Alert Priority | Remotable | Event Log |
| MSSQL 2016: Availability Group Failed | This error occurs when the local availability replica of availability group is in “Failed” state. | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityGroupFailed | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | EventCollection | False | | | 0 | 0 | | True | Warning | Normal | True | Application |
| MSSQL 2016: Availability Replica Role Changed | This error occurs when Availability replica changes its role. | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplicaRoleChanged | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | EventCollection | True | | | 0 | 0 | | True | Warning | Normal | True | Application |
| MSSQL 2016: Bytes Received from Replica / sec | Total number of bytes received from this replica over the network for the AG | Microsoft.SQLServer.2016.AlwaysOn.BytesReceivedFromReplicaPerSecond | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$:Availability Replica | Bytes Received from Replica/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Bytes Sent to Replica / sec | The number of database message bytes enqueued to be send over the network to this replica. The bytes include messages for all databases in the AG. | Microsoft.SQLServer.2016.AlwaysOn.BytesSentToReplicaPerSecond | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$:Availability Replica | Bytes Sent to Replica/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Bytes Sent to Transport / sec | The total number of bytes send over the network to the replica | Microsoft.SQLServer.2016.AlwaysOn.BytesSentToTransportPerSecond | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$:Availability Replica | Bytes Sent to Transport/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Database Replica Role Changed | This error occurs when Database replica changes its role. | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplicaRoleChanged | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | EventCollection | True | | | 0 | 0 | | True | Warning | Normal | True | Application |
| MSSQL 2016: File Bytes Received / sec | The number of filestream bytes received by from this replica. This is valid only on the secondary | Microsoft.SQLServer.2016.AlwaysOn.FileBytesReceivedPerSecond | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | File Bytes Received/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Flow Control / sec | Number of flow controls enabled for this replica per second | Microsoft.SQLServer.2016.AlwaysOn.FlowControlPerSecond | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$:Availability Replica | Flow Control/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Flow Control Time (ms/sec) | The number of milliseconds flow control was enabled to this replica within the last second | Microsoft.SQLServer.2016.AlwaysOn.FlowControlTimeSeconds | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$:Availability Replica | Flow Control Time (ms/sec) | 900 | 0 | | False | | | True | |
| MSSQL 2016: Log Apply Pending Queue | Number of log blocks pending to be applied to the database replica. | Microsoft.SQLServer.2016.AlwaysOn.LogApplyPendingQueue | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Log Apply Pending Queue | 900 | 0 | | False | | | True | |
| MSSQL 2016: Log Apply Ready Queue | Number of log blocks pending and ready to be applied to the database replica. | Microsoft.SQLServer.2016.AlwaysOn.LogApplyReadyQueue | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Log Apply Ready Queue | 900 | 0 | | False | | | True | |
| MSSQL 2016: Log Bytes Received / sec | The number of log bytes received by this replica. This is valid only on the secondary | Microsoft.SQLServer.2016.AlwaysOn.LogBytesReceivedPerSecond | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Log Bytes Received/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Log Remaining for undo | The amount of log that need to be undone in KB. | Microsoft.SQLServer.2016.AlwaysOn.LogRemainingForUndo | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Log remaining for undo | 900 | 0 | | False | | | True | |
| MSSQL 2016: Log Send Queue | The size of the log send queue on this replica. | Microsoft.SQLServer.2016.AlwaysOn.LogSendQueue | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Log Send Queue | 900 | 0 | | False | | | True | |
| MSSQL 2016: Mirrored Write Transactions / sec | The number of transactions processed through synchronization commits. Dividing transaction delay by mirrored transactions to get delay per transaction. | Microsoft.SQLServer.2016.AlwaysOn.MirroredWriteTransactionsPerSecond | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Mirrored Write Transactions/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Receives from Replica / sec | Total number of messages received from this replica for the AG | Microsoft.SQLServer.2016.AlwaysOn.ReceivesFromReplicaPerSecond | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$:Availability Replica | Receives from Replica/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Resent Messages / sec | The rate per second to get acknowledgements for messages sent to the replica | Microsoft.SQLServer.2016.AlwaysOn.RecentMessagesPerSecond | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$:Availability Replica | Resent Messages/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Recovery Queue | Amount of log records in the log files of the secondary replica that has not yet been redone. | Microsoft.SQLServer.2016.AlwaysOn.RecoveryQueue | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Recovery Queue | 900 | 0 | | False | | | True | |
| MSSQL 2016: Redo blocked/sec | Number of times the REDO thread was blocked in this database since this database was brought ONLINE. | Microsoft.SQLServer.2016.AlwaysOn.RedoBlockedSec | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Redo blocked/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Redo Bytes Remaining | The amount of log bytes remaining to be redone to finish the reverting phase. | Microsoft.SQLServer.2016.AlwaysOn.RedoBytesRemaining | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Redo Bytes Remaining | 900 | 0 | | False | | | True | |
| MSSQL 2016: Redone Bytes / sec | The rate at which log records are redone on the secondary. | Microsoft.SQLServer.2016.AlwaysOn.RedoneBytesPerSecond | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Redone Bytes/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Sends to Replica / sec | Number of messages enqueued to be send over the network to this replica | Microsoft.SQLServer.2016.AlwaysOn.SendsToReplicaPerSecond | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$:Availability Replica | Sends to Replica/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Sends to Transport / sec | Number of messages sent over the network to this replica. This account for all the messages sent from this replica including control messages. | Microsoft.SQLServer.2016.AlwaysOn.SendsToTransportPerSecond | Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.AvailabilityReplica"]/PerformanceObjectName$:Availability Replica | Sends to Transport/sec | 900 | 0 | | False | | | True | |
| MSSQL 2016: Total Log requiring undo | Total kilobytes of log that must be undone. | Microsoft.SQLServer.2016.AlwaysOn.TotalLogRequiringUndo | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Total Log requiring undo | 900 | 0 | | False | | | True | |
| MSSQL 2016: Transaction Delay | The total time for all transactions waited on the secondary acknowledgement. | Microsoft.SQLServer.2016.AlwaysOn.TransactionDelay | Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica | PerformanceCollection | True | $Target/Property[Type="AlwaysOnDisc!Microsoft.SQLServer.2016.AlwaysOn.DatabaseReplica"]/PerformanceObjectName$:Database Replica | Transaction Delay | 900 | 0 | | False | | | True | |