Compile subroutine MONA_MONITORS(@Service, @Params) #pragma precomp SRP_PreCompiler /*****************************************************************************\ This is a utility function. It is a container for auditing general OI metrics and then reporting them into MonA directly. History ------- 04/07/2021 JRO Original Programmer \*****************************************************************************/ Declare subroutine RList, Mona_Services, Error_Services Declare function Database_Services $Insert SERVICE_SETUP $Insert REVDOTNETEQUATES $Insert LOGICAL $Insert RLIST_EQUATES GoToService else Error_Services('Add', Service : ' is not a valid service request within the ' : ServiceModule : ' services module.') end Return Response else '' //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Services //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// Service RunMonitors() hSysLists = Database_Services('GetTableHandle', 'SYSLISTS') Lock hSysLists, ServiceKeyID then Query = 'SELECT SQL_BACKLOG' Rlist(Query, Target_ActiveList$, '', '', '') QueueCount = @RecCount GoSub ClearCursors Mona_Services('SendMetric', 'SQL_BACKLOG', 'SQL_BACKLOG', QueueCount) Query = 'SELECT SQL_PENDING' Rlist(Query, Target_ActiveList$, '', '', '') QueueCount = @RecCount GoSub ClearCursors Mona_Services('SendMetric', 'SQL_PENDING', 'SQL_PENDING', QueueCount) * Query = 'SELECT SQL_BACKLOG_WO_LOG' * Rlist(Query, Target_ActiveList$, '', '', '') * QueueCount = @RecCount * GoSub ClearCursors * Mona_Services('SendMetric', 'SQL_BACKLOG', 'SQL_BACKLOG_WO_LOG', QueueCount) * * Query = 'SELECT SQL_BACKLOG_WO_MAT' * Rlist(Query, Target_ActiveList$, '', '', '') * QueueCount = @RecCount * GoSub ClearCursors * Mona_Services('SendMetric', 'SQL_BACKLOG', 'SQL_BACKLOG_WO_MAT', QueueCount) Unlock hSysLists, ServiceKeyID else Null end end service //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Internal GoSubs //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ClearCursors: For counter = 0 to 8 ClearSelect counter Next counter return