Supported Versions
This application is validated on Windows Server 2019 and Microsoft SQL Server 2019 (RTM) - 15.0.2000.5 (X64) for both MSSQL failover instance & availability group clusters.

Application Version and Upgrade Details

Application VersionBug fixes / Enhancements
3.0.1Added Fix for Powershell script Empty Arguments issue.
3.0.0
  • Added support for single node configuration in mssql-cluster application.
  • Bug Fix for Powershell sessions issue.
2.0.1Added support for NativeType Display order changes and resource grouping by type in UI.
Click here to view the earlier version updates
Application VersionBug fixes / Enhancements
2.0.0mssql application enhancement & csv monitoring support changes.
1.0.2Full Discovery Support.
1.0.1Initial SDK2.0 app Discovery and Monitoring Implementations.

Introduction

Multi-node failover cluster Instance

SQL Server clustering describes a collection of two or more physical servers (nodes), connected via LAN, each of which host a SQL server instance and have the same access to shared storage. Clustering SQL servers provides high availability and protection from disasters when a server hosting the SQL Server instance fails.

Always on failover cluster instances

SQL Server Always On Failover Cluster Instances (FCIs) use Windows Server Failover Clustering (WSFC) to provide high availability at the server instance level. An FCI is a single instance of SQL Server that is installed across WSFC nodes to provide high availability for the entire installation of SQL Server.

Always On availability group

Always On availability groups feature a high availability and disaster recovery solution that provides an alternative to database mirroring, and maximizes the availability of a set of user databases for an enterprise. This supports a failover environment for a discrete set of user databases, known as availability databases.

The availability group supports a set of read-write primary databases and one to eight sets of corresponding secondary databases. Optionally, secondary databases can be made available for read-only access and/or some backup operations. Availability group fails over at the level of an availability replica. Failovers are not caused by database issues such as a database becoming suspect due to a loss of a data file, deletion of a database, or corruption of a transaction log.

Prerequisites

  • OpsRamp Classic Gateway 15.0.0 and above.
  • OpsRamp Nextgen Gateway 15.0.0 and above.
    Note: OpsRamp recommends using the latest Gateway version for full coverage of recent bug fixes, enhancements, etc.
  • For powershell cmdlets the following are prerequisites:

    • Windows domain User should be able to do powershell remoting
      Enable-PSRemoting -Force
    • Windows domain user should be added to Remote Management users group net localgroup "Remote Management Users" /add <user>
    • Windows domain user should be added to “Performance monitor users” group net localgroup "Performance monitor users" /add <user>
    • Add OpsrampGatewayIp to the TrustedHosts list on the target machine to allow the powershell connection from gateway to the target machine.
      • To add TrustedHosts use the following command:
        • To allow any host:
          Set-Item WSMan:\localhost\Client\TrustedHosts -Force -Value *
        • To allow a specific host:
          Set-Item WSMan:\localhost\Client\TrustedHosts -Force -Concatenate -Value <OpsRampGatewayIp>
    • Setup and restart the WinRM service for the changes to reflect
      • To set up: Set-Service WinRM -StartMode Automatic
      • Restart using: Restart-Service -Force WinRM
  • Granting Remote DCOM Rights

    • To grant the user DCOM rights, log on to each system to be monitored and complete the following procedure:
      • Go to command prompt and enter dcomcnfg
      • Navigate to component services > computers > My computer and then right click and select Properties. Then go to the COM Security tab.
      • Under Access Permissions, go to edit limits and add the domain non-admin user and enable both local and remote access then click OK.
      • In Launch and Activation permissions, go to edit limits, add the domain non-admin user and check all boxes , and click OK.
  • Granting Remote WMI Rights

    • To give the user remote WMI rights, log on to each system to be monitored and complete the following procedure:
      • Go to “computer management” and select “WMI Control” under ‘Services and Applications’.
      • Right-click WMI control and go to properties. Then select the Security tab.
      • Select root and click Security.
      • Add the domain non-admin user, and check the boxes for execute methods, enable account, remote enable, and reas security.
      • Click Advanced, select added non-admin domain user and click edit. Then for “Applies” to select “namespace and sub namespaces” in the dropdown.
      • Click OK 3 times .
  • For monitoring services like windows cluster service and other mssql services (sql server, sql agent , sql browser etc.), windows domain users have to be a part of “Local Administrators group” as we are using win32_Service class for fetching the details.

    • refer to below link:
      Get-WmiObject
    • If you do not want to add the user to local administrator group, you can use “Security descriptors” for monitoring the services.
    • For that we have to do the configuration as below:
      Refer to Windows failover cluster monitoring section of the doc.
  • Windows domain user should be granted read-only access to cluster
    Grant-ClusterAccess -User <domain\user> -Readonly

SQL authorization permissions:

  • For monitoring some metrics, we are using JDBC. For JDBC connections we are supporting mixed authentication (both NLTM and SQL server authentication)
  • The minimum privileges for SQL auth are:
    • server role: public - This server role is available by default
    • securables: We need to enable some securables for connecting to SQL instances,connecting to all databases, and also some read-only permissions like below:

 - CONNECT ANY DATABASE
      GRANT CONNECT ANY DATABASE to < user >
 - CONNECT SQL
      GRANT CONNECT SQL to < user >
 - SELECT ALL USER SECURABLES
      GRANT SELECT ALL USER SECURABLES to < user >
 - VIEW ANY DATABASE
      GRANT VIEW ANY DATABASE to < user >
 - VIEW ANY DEFINITION
      GRANT VIEW ANY DEFINITION to < user >
 - VIEW SERVER STATE
      GRANT VIEW SERVER STATE to < user >

Hierarchy of MSSQL Cluster resources

In configuration page, we have provided the one field which is MSSQL Type,

  • If you select MSSQL Type as CLUSTER, Application will discover the Mssql Cluster Related Resources.

      • MSSQL Windows Failover Cluster
            - MSSQL Windows Failover Cluster Node
            - MSSQL Windows Failover Cluster Role
            - MSSQL Cluster Shared Volume
            - MSSQL Windows Failover Cluster Storage Disk
            - MSSQL Server Instance

  • If you select MSSQL Type as STANDALONE, application can discover the MSSQL Single Node Related Resources.

                MSSQL Node
                - MSSQL Node Server Instance

Supported Metrics

Click here to view the supported metrics
Native TypeMetric NamesDisplay NameUnitApplication VersionDescription
MSSQL Windows Failover Clustermssql_cluster_node_stateMSSQL Windows Failover Cluster Node State1.0.1State of all nodes of the cluster such as up or down. Possible values 0-DOWN, 1-UP.
mssql_cluster_online_nodes_countMSSQL Windows Failover Cluster Online nodes countcount1.0.1Count of nodes which are in Online state.
mssql_cluster_node_healthMSSQL Windows Failover Cluster Node Health%1.0.1Cluster health - percentage of online nodes.
MSSQL Windows Failover Cluster Nodemssql_cluster_node_service_statusMSSQL Windows Cluster Node Service Status1.0.1State of each node's windows os service named cluster service which is responsible for windows failover cluster. Possible values 0-STOPPED, 1-RUNNING,2-Start Pending, 3-Stop Pending, 4-Continue Pending, 5-Pause Pending, 6-Paused, 7-Unknown.
mssql_cluster_node_system_os_UptimeMSSQL Windows Cluster Node System OS Uptimem1.0.1Time lapsed since last reboot in minutes
mssql_cluster_node_system_cpu_LoadMSSQL Windows Cluster Node System CPU Load1.0.1Monitors the system's last 1min, 5min and 15min load. It sends per cpu core load average.
mssql_cluster_node_system_cpu_UtilizationMSSQL Windows Cluster Node System CPU Utilization%1.0.1The percentage of elapsed time that the processor spends to execute a non-Idle thread(This doesn't includes CPU steal time).
mssql_cluster_node_system_memory_UsedspaceMSSQL Windows Cluster Node System Memory Used SpaceGB1.0.1Physical and virtual memory usage in GB.
mssql_cluster_node_system_cpu_IdleTimeMSSQL Windows Cluster Node System CPU IdleTime%1.0.1Monitors cpu time in percentage spent in various program spaces. User - The processor time spent running user space processes. System - The amount of time that the CPU spent running the kernel. IOWait - The time the CPU spends idle while waiting for an I/O operation to complete. Idle - The time the processor spends idle. Steal - The time virtual CPU has spent waiting for the hypervisor to service another virtual CPU running on a different virtual machine. Kernal Time Total Time.
mssql_cluster_node_system_networkInterfaceInTrafficMSSQL Windows Cluster Node System Network In TrafficKbps2.0.0Monitors In traffic of each interface for windows Devices.
mssql_cluster_node_system_networkInterfaceOutTrafficMSSQL Windows Cluster Node System Network Out TrafficKbps2.0.0Monitors Out traffic of each interface for windows Devices.
mssql_cluster_node_system_networkInterfaceInPacketsMSSQL Windows Cluster Node System Network In packetspackets/sec2.0.0Monitors in Packets of each interface for windows Devices.
mssql_cluster_node_system_networkInterfaceOutPacketsMSSQL Windows Cluster Node System Network out packetspackets/sec2.0.0Monitors Out packets of each interface for windows Devices.
mssql_cluster_node_system_networkInterfaceInErrorsMSSQL Windows Cluster Node System Network In ErrorsErrors per Sec2.0.0Monitors network in errors of each interface for windows Devices.
mssql_cluster_node_system_networkInterfaceOutErrorsMSSQL Windows Cluster Node System Network Out ErrorsErrors per Sec2.0.0Monitors network out errors of each interface for windows Devices.
mssql_cluster_node_system_networkInterfaceInDiscordsMSSQL Windows Cluster Node System Network In discardspsec2.0.0Monitors Network in discards of each interface for windows Devices.
mssql_cluster_node_system_networkInterfaceOutDiscordsMSSQL Windows Cluster Node System Network Out discardspsec2.0.0Monitors Network Out discards of each interface for windows Devices.
mssql_cluster_node_sqlservices_stateMSSQL Windows Cluster Node SQL services running state1.0.1Monitors sql services state. Possible values 0-STOPPED, 1-RUNNING, 2-Start Pending, 3-Stop Pending, 4-Continue Pending, 5-Pause Pending, 6-Paused, 7-Unknown.
mssql_cluster_node_sqlprocesses_cpuUsageMSSQL Windows Cluster Node SQL processes CPU usage in Secondss1.0.1Monitors sql processes cpu usage in seconds.
mssql_cluster_node_sqlprocesses_handlesMSSQL Windows Cluster Node SQL processes number of handlescount1.0.1Monitors sql processes handles count.
mssql_cluster_node_system_memory_UtilizationMSSQL Windows Cluster Node System Memory Utilization%1.0.1Physical and virtual memory usage in percentage.
MSSQL Windows Failover Cluster Rolemssql_cluster_group_running_statusMSSQL Windows Cluster Group Running Status1.0.1State of cluster group of the failover cluster. Possible values 0-OFFLINE, 1-ONLINE, 2-Initializing, 3-Failed, 4-Pending, 5-OnlinePending, 6-OfflinePending, 7-Unknown.
mssql_cluster_group_failover_statusMSSQL Windows Cluster Group Failover Status1.0.1Any other node immediately becomes owner node whenever the owner node hosting all of the cluster services goes down. This metric indicates whether the present node was the owner node during the last failover. Possible instance values, 0-if there is no change in OwnerNode, 1-If there is a change in OwnerNode, 2-If no OwnerNode.
mssql_cluster_group_listener_statusMSSQL Windows cluster group listener status1.0.1Monitors MSSQL cluster group listeners status. Possible values 0-OFFLINE, 1-ONLINE, 2-Initializing, 3-Failed, 4-Pending, 5-OnlinePending, 6-OfflinePending, 7-Unknown.
mssql_cluster_AG_instance_statusMSSQL Windows cluster availability group instance status1.0.1Monitors MSSQL availability group cluster instance status. Possible values 0-OFFLINE,1-ONLINE 2-Initializing, 3-Failed, 4-Pending, 5-OnlinePending, 6-OfflinePending, 7-Unknown. This metric is applicable only for AAG clusters.
MSSQL Windows Failover Cluster Storage Diskmssql_cluster_disk_AvailabilityStatusMSSQL Windows System Disk availability status1.0.1Monitors system disk availability status. Possible values 0-OFFLINE, 1-ONLINE, 2-Initializing, 3-Failed, 4-Pending, 5-OnlinePending, 6-OfflinePending, 7-Unknown.
mssql_cluster_disk_FailoverStatusMSSQL Windows System Disk Failover status1.0.1When the storage disc host owner node fails, any other node immediately takes over as owner node. This measurement indicates whether the present node was the owner node during the last failover. Possible instance values, 0-if there is no change in OwnerNode, 1-If there is a change in OwnerNode, 2-If no OwnerNode.
mssql_cluster_disk_UsedspaceMSSQL Windows System Disk UsedSpaceGB1.0.1Monitors disk used space in GB.
mssql_cluster_disk_UtilizationMSSQL Windows System Disk Utilization%1.0.1Monitors disk utilization in percentage.
mssql_cluster_disk_FreespaceMSSQL Windows System Disk FreeSpaceGB1.0.1Monitors the Free Space usage in GB.
MSSQL Server Instancemssql_cluster_instance_RunningStatusMSSQL Cluster Instance Running Status1.0.1Monitors MSSQL failover cluster instance running status. Possible values 0-OFFLINE, 1-ONLINE, 2-Initializing, 3-Failed, 4-Pending, 5-OnlinePending, 6-OfflinePending, 7-Unknown.
mssql_cluster_instance_FailoverStatusMSSQL Cluster Instance Failover Status1.0.1Monitors MSSQL cluster instance failover status. Possible instance values, 0-if there is no change in OwnerNode, 1-If there is a change in OwnerNode, 2-If no OwnerNode. This metric is applicable only for FCI clusters.
mssql_cluster_avgLockWaitTimeMSSQL Cluster Average Lock Wait Timems1.0.1The average amount of wait time (milliseconds) for each lock request that resulted in a wait.
mssql_cluster_bufferCacheHitRatioMSSQL Cluster Buffer Cache Hit Ration%1.0.1Percentage of pages that were found in the buffer pool without having to incur a read from disk.
mssql_cluster_sqlCacheMemoryMSSQL Cluster Cache MemoryKB1.0.1Total amount of dynamic memory the server is using for the dynamic SQL cache.
mssql_cluster_datafileSizeMSSQL Cluster Data File SizeKB1.0.1The cumulative size of all the data files in the database.
mssql_cluster_databasesCountMSSQL Cluster Databases Countcount1.0.1Show the count of total number of databases.
mssql_cluster_fullScansMSSQL Cluster SQL Server Full Scanspsec1.0.1Number of unrestricted full scans. These can either be base tables or full index scans.
mssql_cluster_databasepageReadsMSSQL Cluster Databases Page Readsrps1.0.1Number of physical database page reads issued.
mssql_cluster_databasepageWritesMSSQL Cluster Database Page Writeswps1.0.1Number of physical database page writes issued.
mssql_cluster_serverUptimeMSSQL Cluster Server UptimeDays1.0.1Monitors the uptime (in days) of the database server.
mssql_cluster_totalServerMemoryMSSQL Cluster Total Server MemoryKB1.0.1Total amount of dynamic memory the server is currently consuming
mssql_cluster_databaseTransactionsMSSQL Cluster Database Transactionspsec1.0.1The number of transactions started for the database.
mssql_cluster_databaseStatusMSSQL Cluster Database Status1.0.10 = ONLINE, 1 = RESTORING, 2 = RECOVERING SQL Server 2008 and later, 3 = RECOVERY_PENDING SQL Server 2008 and later, 4 = SUSPECT, 5 = EMERGENCY SQL Server 2008 and later, 6 = OFFLINE SQL Server 2008 and later, 7 = COPYING Azure SQL Database Active Geo-Replication, 10 = OFFLINE_SECONDARY Azure SQL Database Active Geo-Replication.
mssql_cluster_databaseActiveUsersMSSQL Cluster Database Active Userscount1.0.1Monitors the number of active user transactions per database.
mssql_cluster_datafilesFreeSpaceMSSQL Cluster Data Files Free Space%1.0.1Monitors datafiles free space regardless of auto-growth.
mssql_cluster_databaseFreeSpaceMSSQL Cluster Database Free Space%1.0.1Monitors Database Freespace in Percentage
mssql_cluster_dbLogCacheHitRatioMSSQL Cluster DB Log Cache Hit Ratio%1.0.1Monitors MSSQL database log cache-hit ratio.
mssql_cluster_dbLogfilesFreeSpaceMSSQL Cluster DB Logfiles Free Space%1.0.1Monitors MSSQL database LogFiles free space.
mssql_cluster_minsSinceLastLogBackupMSSQL Cluster Mins since Last Log Backupm1.0.1Monitors Database transaction log backup in minutes.
mssql_cluster_minsSinceLastLogFullBackupMSSQL Cluster Mins since Last Log Full Backupm1.0.1Monitors Database Backup status in Minutes since Last Full Backup.
mssql_cluster_fileGroupFreespaceWithAvailableDiskMSSQL Cluster File Group Free Space with Available Disk%1.0.1Monitor MSSQL DB Filegroup Freespace with Available Disk.
mssql_cluster_dbFileGroupFreespaceMSSQL Cluster DB File Group Free Space%1.0.1Monitors MSSQL DB Filegroup Freespace.
mssql_cluster_longRunningQueriesLast5minCountMSSQL Cluster Long Running Queries Last 5min Countcount1.0.1Monitors MSSQL Database Long Running queries count Last 5 minutes.
mssql_cluster_serverIOBusyMSSQL Cluster Server IO Busy%1.0.1Monitors MSSQL DB Server IO Busy.
mssql_cluster_dbWorkspaceMemoryMSSQL Cluster DB Workspace Memory%1.0.1Monitors MSSQL Database Workspace Memory in Percentage.
mssql_cluster_dbInstanceCpuUtilizationMSSQL Cluster DB Instance CPU Utilization%1.0.1Monitors MSSQL Database Instance CPU Utilization in percentage.
mssql_cluster_logfileFreespaceWithAvailableDiskMSSQL Cluster Logfile Free Space with Available Disk%1.0.1Monitors MSSQL DB Log File Freespace with Available Disk in percentage.
mssql_cluster_instanceFreeConnectionsMSSQL Cluster Instance Free Connections%1.0.1Monitors MSSQL Database Instance Free Connections in percentage.
mssql_cluster_daysSinceLastFullBackupMSSQL Cluster Days since Last Full BackupDays1.0.1MSSQL DB Backup Days Since Last Full Backup.
mssql_cluster_daysSinceLastLogBackupMSSQL Cluster Days since Last Log BackupDays1.0.1MSSQL DB Backup Days Since Last Log Backup.
mssql_cluster_daysSinceLastDifferentialBackupMSSQL Cluster Days since Last Differential BackupDays1.0.1MSSQL DB Backup Days Since Last Differential Backup.
mssql_cluster_alwaysOnDBAvailabilitySyncHealthMSSQL Cluster AlwaysOn DB Avalability Sync Health1.0.1MSSQL AlwaysOn DataBase Availability Synchronization Health, below are the possible states: 0 : NOT_HEALTHY, 1 : PARTIALLY_HEALTHY, 2 : HEALTHY. This metric is applicable only for AAG clusters.
mssql_cluster_alwaysOnAGSyncHealthMSSQL Cluster AlwaysOn AG Sync Health1.0.1MSSQL AlwaysOn Availability Group Synchronization Health, below are the possible values: 0 : NOT_HEALTHY, 1 : PARTIALLY_HEALTHY, 2 : HEALTHY. This metric is applicable only for AAG clusters.
mssql_cluster_alwaysOnListenerStateMSSQL Cluster AlwaysOn Listener State1.0.1MSSQL AlwaysOn Listener State, below are the possible values: 0 : OFFLINE, 1 : ONLINE, 2 : ONLINE_PENDING, 3 : FAILED. This metric is applicable only for AAG clusters.
mssql_cluster_cpuBusyMSSQL Cluster CPU Busymicrosec1.0.1MSSQL CPU Busy
mssql_cluster_cpuIdleMSSQL Cluster CPU Idlemicrosec1.0.1MSSQL CPU IDLE
mssql_cluster_cpuIOBusyMSSQL Cluster CPU IO Busymicrosec1.0.1MSSQL CPU IoBusy
mssql_cluster_alwayson_database_replicaStateMSSQL Cluster AlwaysOn DataBase Replica State1.0.1It monitor the MSSQL Always On Database Replica synchronization state along with role description.Below are the possible states: PRIMARY_NOT SYNCHRONIZING - 0, PRIMARY_SYNCHRONIZING - 1, PRIMARY_SYNCHRONIZED - 2, PRIMARY_REVERTING - 3, PRIMARY_INITIALIZING - 4, SECONDARY_NOT SYNCHRONIZING - 5, SECONDARY_SYNCHRONIZING - 6, SECONDARY_SYNCHRONIZED - 7, SECONDARY_REVERTING - 8, SECONDARY_INITIALIZING - 9, This metric is applicable only for AAG clusters.
MSSQL Cluster Shared Volumemssql_cluster_shared_volume_UtilizationMssql CSV Utilization%2.0.0Mssql cluster shared volume utilization in percentage.
mssql_cluster_shared_volume_UsageMssql CSV UsageGB2.0.0Mssql cluster shared volume usage in GB.
mssql_cluster_shared_volume_OperationalStatusMssql CSV Operational Status2.0.0Mssql cluster shared volume operational status. Possible values - Offline : 0,Failed : 1,Inherited : 2,Initializing : 3,Pending : 4,OnlinePending : 5,OfflinePending : 6,Unknown : 7,Online : 8.
MSSQL Nodemssql_node_system_OsUptimeMSSQL Node System OS Uptimem3.0.0Time lapsed since last reboot in minutes.
mssql_node_system_CpuLoadAverageMSSQL Node System CPU Load3.0.0Monitors the system's last 1min, 5min and 15min load. It sends per cpu core load average.
mssql_node_system_CpuUtilizationMSSQL Node System CPU Utilization%3.0.0The percentage of elapsed time that the processor spends to execute a non-Idle thread(This doesn't includes CPU steal time)
mssql_node_system_MemoryUsedspaceMSSQL Node System Memory Used SpaceGB3.0.0Physical and virtual memory usage in GB.
mssql_node_system_CpuIdleTimeMSSQL Node System CPU IdleTime%3.0.0Monitors cpu time in percentage spent in various program spaces. User - The processor time spent running user space processes System - The amount of time that the CPU spent running the kernel. IOWait - The time the CPU spends idle while waiting for an I/O operation to complete Idle - The time the processor spends idle Steal - The time virtual CPU has spent waiting for the hypervisor to service another virtual CPU running on a different virtual machine. Kernal Time Total Time.
mssql_node_system_NetworkInterfaceInTrafficMSSQL Node System Network In TrafficKbps3.0.0Monitors In traffic of each interface for windows Devices.
mssql_node_system_NetworkInterfaceOutTrafficMSSQL Node System Network Out TrafficKbps3.0.0Monitors Out traffic of each interface for windows Devices.
mssql_node_system_NetworkInterfaceInPacketsMSSQL Node System Network Out Trafficpackets/sec3.0.0Monitors in Packets of each interface for windows Devices.
mssql_node_system_NetworkInterfaceOutPacketsMSSQL Node System Network out packetspackets/sec3.0.0Monitors Out packets of each interface for windows Devices.
mssql_node_system_NetworkInterfaceInErrorsMSSQL Node System Network In ErrorsErrors per Sec3.0.0Monitors network in errors of each interface for windows Devices.
mssql_node_system_NetworkInterfaceOutErrorsMSSQL Node System Network Out ErrorsErrors per Sec3.0.0Monitors network out errors of each interface for windows Devices.
mssql_node_system_NetworkInterfaceInDiscordsMSSQL Node System Network In discardspsec3.0.0Monitors Network in discards of each interface for windows Devices.
mssql_node_system_NetworkInterfaceOutDiscordsMSSQL Node System Network Out discardspsec3.0.0Monitors Network Out discards of each interface for windows Devices.
mssql_node_SqlServicesStateMSSQL Node SQL services running state3.0.0Monitors sql services state. Possible values 0-STOPPED,1-RUNNING,2-Start Pending, 3-Stop Pending, 4-Continue Pending, 5-Pause Pending, 6-Paused, 7-Unknown.
mssql_node_system_MemoryUtilizationMSSQL Node System Memory Utilization%3.0.0Physical and virtual memory usage in percentage.
mssql_node_diskdrive_UsedSpaceMSSQL Node Disk Drive UsedSpaceGB3.0.0Monitors disk drive used space in GB.
mssql_node_diskdrive_UtilizationMSSQL Node Disk Drive Utilization%3.0.0Monitors disk drive utilization in percentage.
mssql_node_diskdrive_FreeSpaceMSSQL Node Disk Drive FreeSpaceGB3.0.0Monitors the disk drive Free Space usage in GB
MSSQL Node Server Instancemssql_node_sqlinstance_AvgLockWaitTimeMSSQL Node SQL Instance Average Lock Wait Timems3.0.0The average amount of wait time (milliseconds) for each lock request that resulted in a wait.
mssql_node_sqlinstance_BufferCacheHitRatioMSSQL Node SQL Instance Buffer Cache Hit Ration%3.0.0This metric displays the vcenter server total memory.
mssql_node_sqlinstance_SqlCacheMemoryMSSQL Node SQL Instance Cache MemoryKB3.0.0Total amount of dynamic memory the server is using for the dynamic SQL cache.
mssql_node_sqlinstance_DataFileSizeMSSQL Node SQL Instance Data File SizeKB3.0.0The cumulative size of all the data files in the database.
mssql_node_sqlinstance_DatabasesCountMSSQL Node SQL Instance Databases Countcount3.0.0Show the count of total number of databases.
mssql_node_sqlinstance_FullScansMSSQL Node SQL Server Full Scanspsec3.0.0Number of unrestricted full scans. These can either be base table or full index scans.
mssql_node_sqlinstance_DatabasePageReadsMSSQL Node SQL Instance Databases Page Readsrps3.0.0Number of physical database page reads issued
mssql_node_sqlinstance_DatabasePageWritesMSSQL Node SQL Instance Database Page Writeswps3.0.0Number of physical database page writes issued.
mssql_node_sqlinstance_ServerUptimeMSSQL Node SQL Instance Server UptimeDays3.0.0Monitors the uptime (in days) of the database server.
mssql_node_sqlinstance_TotalServerMemoryMSSQL Node SQL Instance Total Server MemoryKB3.0.0Total amount of dynamic memory the server is currently consuming.
mssql_node_sqlinstance_DatabaseTransactionsMSSQL Node SQL Instance Database Transactionspsec3.0.0The number of transactions started for the database.
mssql_node_sqlinstance_DatabaseStatusMSSQL Node SQL Instance Database Status3.0.00 = ONLINE 1 = RESTORING 2 = RECOVERING SQL Server 2008 and later 3 = RECOVERY_PENDING SQL Server 2008 and later 4 = SUSPECT 5 = EMERGENCY SQL Server 2008 and later 6 = OFFLINE SQL Server 2008 and later 7 = COPYING Azure SQL Database Active Geo-Replication 10 = OFFLINE_SECONDARY Azure SQL Database Active Geo-Replication.
mssql_node_sqlinstance_DatabaseActiveUsersMSSQL Node SQL Instance Database Active Userscount3.0.0Monitors the number of active user transactions per database.
mssql_node_sqlinstance_DataFilesFreeSpaceMSSQL Node SQL Instance Data Files Free Space%3.0.0Monitors datafiles free space regardless of auto-growth
mssql_node_sqlinstance_DatabaseFreeSpaceMSSQL Node SQL Instance Database Free Space%3.0.0Monitors Database Freespace in Percentage.
mssql_node_sqlinstance_DbLogCacheHitRatioMSSQL Node SQL Instance DB Log Cache Hit Ratio%3.0.0Monitors MSSQL database log cache-hit ratio.
mssql_node_sqlinstance_DbLogfilesFreeSpaceMSSQL Node SQL Instance DB Logfiles Free Space%3.0.0Monitors MSSQL database LogFiles free space.
mssql_node_sqlinstance_MinsSinceLastLogBackupMSSQL Node SQL Instance Mins since Last Log Backupm3.0.0Monitors Database transaction log backup in minutes.
mssql_node_sqlinstance_MinsSinceLastLogFullBackupMSSQL Node SQL Instance Mins since Last Log Full Backupm3.0.0Monitors Database Backup status in Minutes since Last Full Backup.
mssql_node_sqlinstance_FileGroupFreespaceWithAvailableDiskMSSQL Node SQL Instance File Group Free Space with Available Disk%3.0.0Monitor MSSQL DB Filegroup Freespace with Available Disk.
mssql_node_sqlinstance_DbFileGroupFreespaceMSSQL Node SQL Instance DB File Group Free Space%3.0.0Monitors MSSQL DB Filegroup Freespace.
mssql_node_sqlinstance_LongRunningQueriesLast5minCountMSSQL Node SQL Instance Long Running Queries Last 5min Countcount3.0.0Monitors MSSQL Database Long Running queries count Last 5 minutes.
mssql_node_sqlinstance_ServerIOBusyMSSQL Node SQL Instance Server IO Busy%3.0.0Monitors MSSQL DB Server IO Busy.
mssql_node_sqlinstance_DbWorkspaceMemoryMSSQL Node SQL Instance DB Workspace Memory%3.0.0Monitors MSSQL Database Workspace Memory in Percentage.
mssql_node_sqlinstance_DbInstanceCpuUtilizationMSSQL Node SQL Instance DB Instance CPU Utilization%3.0.0Monitors MSSQL Database Instance CPU Utilization in percentage.
mssql_node_sqlinstance_LogfileFreespaceWithAvailableDiskMSSQL Node SQL Instance Logfile Free Space with Available Disk%3.0.0Monitors MSSQL DB Logfile Freespace with Available Disk in percentage
mssql_node_sqlinstance_InstanceFreeConnectionsMSSQL Node SQL Instance Free Connections%3.0.0Monitors MSSQL Database Instance Free Connections in percentage.
mssql_node_sqlinstance_DaysSinceLastFullBackupMSSQL Node SQL Instance Days since Last Full BackupDays3.0.0MSSQL DB Backup Days Since Last Full Backup
mssql_node_sqlinstance_DaysSinceLastLogBackupMSSQL Node SQL Instance Days since Last Log BackupDays3.0.0MSSQL DB Backup Days Since Last Log Backup
mssql_node_sqlinstance_DaysSinceLastDifferentialBackupMSSQL Node SQL Instance Days since Last Differential BackupDays3.0.0MSSQL DB Backup Days Since Last Differential Backup.
mssql_node_sqlinstance_AlwaysOnDBAvailabilitySyncHealthMSSQL Node SQL Instance AlwaysOn DB Avalability Sync Health3.0.0MSSQL AlwaysOn DataBase Availability Synchronization Health - Below are the possible states:0 : NOT_HEALTHY 1 : PARTIALLY_HEALTHY 2 : HEALTHY
mssql_node_sqlinstance_AlwaysOnAGSyncHealthMSSQL Node SQL Instance AlwaysOn AG Sync Health3.0.0MSSQL AlwaysOn Availability Group Synchronization Health - Below are the possible values: 0 : NOT_HEALTHY 1 : PARTIALLY_HEALTHY 2 : HEALTHY
mssql_node_sqlinstance_AlwaysOnListenerStateMSSQL Node SQL Instance AlwaysOn Listener State3.0.0MSSQL AlwaysOn Listener State - Below are the possible values: 0 : OFFLINE 1 : ONLINE 2 : ONLINE_PENDING 3 : FAILED
mssql_node_sqlinstance_CpuBusyMSSQL Node SQL Instance CPU Busymicrosec3.0.0MSSQL CPU Busy
mssql_node_sqlinstance_CpuIdleMSSQL Node SQL Instance CPU Idlemicrosec3.0.0MSSQL CPU IDLE
mssql_node_sqlinstance_CpuIOBusyMSSQL Node SQL Instance CPU IO Busymicrosec3.0.0MSSQL CPU IoBusy.
mssql_node_sqlinstance_AlwaysOnDatabaseReplicaStateMSSQL Node SQL Instance AlwaysOn DataBase Replica State3.0.0It monitor the MSSQL Always On Database Replica synchronization state along with role description.--Below are the possible states:--PRIMARY_NOT SYNCHRONIZING - 0-PRIMARY_SYNCHRONIZING - 1-PRIMARY_SYNCHRONIZED - 2-PRIMARY_REVERTING - 3-PRIMARY_INITIALIZING - 4-SECONDARY_NOT SYNCHRONIZING - 5-SECONDARY_SYNCHRONIZING - 6-SECONDARY_SYNCHRONIZED - 7-SECONDARY_REVERTING - 8-SECONDARY_INITIALIZING - 9.

Default Monitoring Configurations

Mssql-cluster has default Global Device Management Policies, Global Templates, Global Monitors and Global metrics in OpsRamp. You can customize these default monitoring configurations as per your business use cases by cloning respective global templates and global Device Management Policies. OpsRamp recommends performing the below activity before installing the application to avoid noise alerts and data.

  1. Default Global Device Management Policies

    OpsRamp has a Global Device Management Policy for each Native Type of MS SQL Cluster. You can find those Device Management Policies at Setup > Resources > Device Management Policies, search with suggested names in global scope. Each Device Management Policy follows below naming convention:

    {appName nativeType - version}

    Ex: mssql-cluster MSSQL Windows Failover Cluster - 1 (i.e, appName = mssql-cluster, nativeType =MSSQL Windows Failover Cluster, version = 1)

  2. Default Global Templates

    OpsRamp has a Global Template for each Native Type of MSSQL Windows Failover Cluster. You can find those templates at Setup > Monitoring > Templates, search with suggested names in global scope. Each template follows below naming convention:

    {appName nativeType 'Template' - version}

    Ex: mssql-cluster MSSQL Windows Failover Cluster Template - 1 (i.e, appName = mssql-cluster , nativeType = MSSQL Windows Failover Cluster, version = 1)

  3. Default Global Monitors

    OpsRamp has a Global Monitors for each Native Type which has monitoring support. You can find those monitors at Setup > Monitoring > Monitors, search with suggested names in global scope. Each Monitors follows below naming convention:

    {monitorKey appName nativeType - version}

    Ex: MSSQL Windows Failover Cluster Monitor mssql-cluster MSSQL Windows Failover Cluster 1 (i.e, monitorKey = MSSQL Windows Failover Cluster Monitor, appName = mssql-cluster , nativeType = MSSQL Windows Failover Cluster , version= 1)

Configure and Install the MS SQL Cluster Integration

  1. From All Clients, select a client.
  2. Go to Setup > Account.
  3. Select the Integrations and Apps tab.
  4. The INSTALLED INTEGRATIONS page, where all the installed applications are displayed.
    Note: If there are no installed applications, it will navigate to the Available Integrations and Apps page.
  5. Click + ADD on the INSTALLED INTEGRATIONS page. The AVAILABLE INTEGRATIONS AND APPS page displays all the available applications along with the newly created application with the version.
    Note: You can even search for the application using the search option available. Also you can use the All Categories option to search.
MS SQL Configure
  1. Click ADD in the MS SQL Cluster application.
  2. In the Configurations page, click + ADD. The Add Configuration page appears.
  3. Enter the below mentioned BASIC INFORMATION:
FunctionalityDescription
NameEnter the name for the configuration.
IP Address/Host NameIP address of the target.
PortPort
Example: By default 443 is the port value
MSSQL TypeSelect CLUSTER or STANDALONE from the drop-down list.
Note: By default CLUSTER is selected.
MSSQL Cluster TypeSelect FailoverClusterInstance or AvailabilityGroup from the drop-down list.
Note: By default FailoverClusterInstance is selected.
Windows Cluster CredentialsSelect the windows cluster credentials from the drop-down list.
Note: Click + Add to create a credential.
SQL Server CredentialsSelect the SQL Server credentials from the drop-down list.
Note: Click + Add to create a credential.

Notes:

  • By default the Is Secure and SQL Server Authentication Mode checkbox is selected.

  • IP Address/Host Name and Port should be accessible from Gateway.

  • App Failure Notifications: if turned on, you will be notified in case of an application failure that is, Connectivity Exception, Authentication Exception.

  • If you select the MSSQL Type as CLUSTER, the application will discover the MSSQL Cluster related resources, below are the MSSQL cluster native type resources and Hierarchy:

      • MSSQL Windows Failover Cluster
            - MSSQL Windows Failover Cluster Node
            - MSSQL Windows Failover Cluster Role
            - MSSQL Cluster Shared Volume
            - MSSQL Windows Failover Cluster Storage Disk
            - MSSQL Server Instance

  • If you select the MSSQL Type as STANDALONE, the application will discover the MSSQL Node related resources, below are the MSSQL Node native type resources:
                    MSSQL Node
                    - MSSQL Node Server Instance

  1. Select the below mentioned Custom Attribute:
FunctionalityDescription
Custom AttributeSelect the custom attribute from the drop down list box.
ValueSelect the value from the drop down list box.

Note: The custom attribute that you add here will be assigned to all the resources that are created by the integration. You can add a maximum of five custom attributes (key and value pair).

  1. In the RESOURCE TYPE section, select:
    • ALL: All the existing and future resources will be discovered.
    • SELECT: You can select one or multiple resources to be discovered.
  2. In the DISCOVERY SCHEDULE section, select Recurrence Pattern to add one of the following patterns:
    • Minutes
    • Hourly
    • Daily
    • Weekly
    • Monthly
  3. Click ADD.
MS SQL Configure

Now the configuration is saved and displayed on the configurations page after you save it.
Note: From the same page, you may Edit and Remove the created configuration.

  1. Click Next.
  2. Below are the optional steps you can perform on the Installation page.
  • Under the ADVANCED SETTINGS, Select the Bypass Resource Reconciliation option, if you wish to bypass resource reconciliation when encountering the same resources discovered by multiple applications.

    Note: If two different applications provide identical discovery attributes, two separate resources will be generated with those respective attributes from the individual discoveries.

Cisco FirePower
  • Click +ADD to create a new collector by providing a name or use the pre-populated name.
Aruba Airwave Integrations
  1. Select an existing registered profile.
Aruba Airwave Integrations
  1. Click FINISH.

The application is now installed and displayed on the INSTALLED INTEGRATION page. Use the search field to find the installed application.

Modify the Configuration

View the MS SQL Cluster Details

The MS SQL Cluster integration is displayed in the Infrastructure > Resources > Cluster. You can navigate to the Attributes tab to view the discovery details and Metrics tab to view the metric details for MS SQL Cluster.

MS SQL Configure

View resource metrics

To confirm MS SQL Cluster monitoring, review the following:

  • Metric graphs: A graph is plotted for each metric that is enabled in the configuration.
  • Alerts: Alerts are generated for metrics that are configured as defined for integration.
MS SQL Configure

Resource Type Filter Keys

MSSQL Cluster application resources are filtered and discovered based on below keys:

Click here to view the Supported Input Keys
Resource TypeSupported Input Keys
All TypesresourceName
hostName
aliasName
dnsName
ipAddress
macAddress
os
make
model
serialNumber
MSSQL Windows Failover ClusterConfigured Nodes Count
Owner Node
MSSQL Cluster Shared VolumeFileSystem
FriendlyVolumeName
Owner Node
MSSQL Server InstancePort
MSSQL NodeBuildNumber
Version
Caption
Hard Disk Size
OSArchitecture
MSSQL Node Server InstancePort

Supported Alert Custom Macros

Customize the alert subject and description with below macros then it will generate alerts based on customisation. Supported macros keys:

Click here to view the alert subject and description with macros

                                ${resource.name}

                                ${resource.ip}

                                ${resource.mac}

                                ${resource.aliasname}

                                ${resource.os}

                                ${resource.type}

                                ${resource.dnsname}

                                ${resource.alternateip}

                                ${resource.make}

                                ${resource.model}

                                ${resource.serialnumber}

                                ${resource.systemId}

                                ${Custome Attributes in the resource}

                                ${parent.resource.name}

Risks, Limitations & Assumptions

  • This application only supports mssql-cluster which is built upon the Windows failover cluster.

  • For Cluster object discovery and monitoring implementation, we are considering the object which has “Name” equals to Cluster Name in Get-ClusterResource response.

  • For ClusterGroup monitoring implementation, We are considering the object which has Name as Cluster Group in Get-ClusterGroup response

  • All the failover status metrics possible instance values are 0 - if there is no change in OwnerNode, 1 - If there is a change in OwnerNode, 2 - If no OwnerNode

  • Application can handle Critical/Recovery failure notifications for below two cases when user enables “App Failure Notifications” in configuration:

    • Connectivity Exception
    • Authentication Exception
  • Application will send any duplicate/repeat failure alert notification for every 6 hours.

  • If user enables agent monitoring templates on the Cluster/Node resource, he might see the duplicate metrics with different naming conventions.

  • While trying to fetch the node ip address we receive multiple node ips, which will include many local ips and actual ips (example : lets say actual node ip is 10.1.1.1 when trying to fetch the details we will receive two ips one associated with custer(192.168.0.0) and other is the actual ip). To identify the actual node ip address from the list of IP addresses received we are assuming that node ip address is part of the same subnet of cluster ip address. meaning if cluster ip is 10.1.1.1 then node ips will be 10.1.X.X.

  • We have provided the provision to give Cluster Ip Address OR HostName in configuration, but hostName provision will work only if the host name resolution works.

  • Classic gateway requires additional libraries to be packaged which are needed to execute the powershell script to achieve this integration approach.

  • This application supports only Classic Gateway and NextGen Gateway. Not supported with Cluster Gateway.

  • No support of showing activity log and applied time.

  • Component level thresholds can be configured on each resource level.

  • Optional configuration parameters can be defined.

  • Application upgrade is an automated process with version change.

  • If you select any of the MSSQL Type STANDALONE / CLUSTER in configuration page, by default all the RESOURCE TYPE’s are selected however the Discovery perform is based on MSSQL Type only.

    Example : if you select MSSQL Type as STANDALONE, the application will discover only two resource types which is MSSQL Node and MSSQL Server Instance even all the resource types is selected.