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, SRP_Datetime, Environment_Services, File_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) GoSub SAPHeartbeat GoSub MonitorMetrologyDirs Unlock hSysLists, ServiceKeyID else Null end end service //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Internal GoSubs //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// SAPHeartbeat: SAPHeartbeatDTM = Database_Services('ReadDataRow', 'APP_INFO', 'SAP_HEARTBEAT_DTM') CurrDTM = SRP_Datetime('Now') If SAPHeartbeatDTM NE '' then If SRP_Datetime('MinuteSpan', SAPHeartbeatDTM, CurrDTM) LT 5 then Mona_Services('SendStatus', 'GRP_OPENINSIGHT_MES_OP_FE_SAP', 'Heartbeat', 'OK') end else Mona_Services('SendStatus', 'GRP_OPENINSIGHT_MES_OP_FE_SAP', 'Heartbeat', 'CRITICAL') end end else Mona_Services('SendStatus', 'GRP_OPENINSIGHT_MES_OP_FE_SAP', 'Heartbeat', 'WARNING') end return MonitorMetrologyDirs: CurrDTM = SRP_Datetime('Now') //Tencor TencorInstanceName = 'MET08DDUPSFS6420' TencorDir = Environment_Services('GetApplicationRootPath') : '\Metrology\':TencorInstanceName:'\Source\' : TencorInstanceName TencorFileCount = File_Services('GetDirFileCount', TencorDir) TencorOldestFileDTM = File_Services('GetDirOldestFileDate', TencorDir) If TencorOldestFileDTM EQ '' then TencorOldestFileAgeMinute = 0 end else TencorOldestFileAgeMinute = SRP_Datetime('MinuteSpan', TencorOldestFileDTM, CurrDTM) end Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_COUNT', TencorInstanceName, TencorFileCount) Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_AGE', TencorInstanceName, TencorOldestFileAgeMinute) //HGCV HGCVInstanceName = 'MET08RESIHGCV' HGCVDir = Environment_Services('GetApplicationRootPath') : '\Metrology\':HGCVInstanceName:'\Source\' : HGCVInstanceName HGCVFileCount = File_Services('GetDirFileCount', HGCVDir) HGCVOldestFileDTM = File_Services('GetDirOldestFileDate', HGCVDir) If HGCVOldestFileDTM EQ '' then HGCVOldestFileAgeMinute = 0 end else HGCVOldestFileAgeMinute = SRP_Datetime('MinuteSpan', HGCVOldestFileDTM, CurrDTM) end Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_COUNT', HGCVInstanceName, HGCVFileCount) Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_AGE', HGCVInstanceName, HGCVOldestFileAgeMinute) //CDE CDEInstanceName = 'MET08RESIMAPCDE' CDEDir = Environment_Services('GetApplicationRootPath') : '\Metrology\':CDEInstanceName:'\Source\' : CDEInstanceName CDEFileCount = File_Services('GetDirFileCount', CDEDir) CDEOldestFileDTM = File_Services('GetDirOldestFileDate', CDEDir) If CDEOldestFileDTM EQ '' then CDEOldestFileAgeMinute = 0 end else CDEOldestFileAgeMinute = SRP_Datetime('MinuteSpan', CDEOldestFileDTM, CurrDTM) end Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_COUNT', CDEInstanceName, CDEFileCount) Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_AGE', CDEInstanceName, CDEOldestFileAgeMinute) //BioRad BioRadInstanceName = 'MET08THFTIRQS408M' BioRadDir = Environment_Services('GetApplicationRootPath') : '\Metrology\':BioRadInstanceName:'\Source\' : BioRadInstanceName BioRadFileCount = File_Services('GetDirFileCount', BioRadDir) BioRadOldestFileDTM = File_Services('GetDirOldestFileDate', BioRadDir) If BioRadOldestFileDTM EQ '' then BioRadOldestFileAgeMinute = 0 end else BioRadOldestFileAgeMinute = SRP_Datetime('MinuteSpan', BioRadOldestFileDTM, CurrDTM) end Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_COUNT', BioRadInstanceName, BioRadFileCount) Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_AGE', BioRadInstanceName, BioRadOldestFileAgeMinute) //Stratus StratusInstanceName = 'MET08THFTIRSTRATUS' StratusDir = Environment_Services('GetApplicationRootPath') : '\Metrology\':StratusInstanceName:'\Source\' : StratusInstanceName StratusFileCount = File_Services('GetDirFileCount', StratusDir) StratusOldestFileDTM = File_Services('GetDirOldestFileDate', StratusDir) If StratusOldestFileDTM EQ '' then StratusOldestFileAgeMinute = 0 end else StratusOldestFileAgeMinute = SRP_Datetime('MinuteSpan', StratusOldestFileDTM, CurrDTM) end Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_COUNT', StratusInstanceName, StratusFileCount) Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_AGE', StratusInstanceName, StratusOldestFileAgeMinute) //SP1 SP1InstanceName = 'MET08DDUPSP1TBI' SP1Dir = Environment_Services('GetApplicationRootPath') : '\Metrology\':SP1InstanceName:'\Source\' : SP1InstanceName SP1FileCount = File_Services('GetDirFileCount', SP1Dir) SP1OldestFileDTM = File_Services('GetDirOldestFileDate', SP1Dir) If SP1OldestFileDTM EQ '' then SP1OldestFileAgeMinute = 0 end else SP1OldestFileAgeMinute = SRP_Datetime('MinuteSpan', SP1OldestFileDTM, CurrDTM) end Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_COUNT', SP1InstanceName, SP1FileCount) Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_AGE', SP1InstanceName, SP1OldestFileAgeMinute) //SPV SPVInstanceName = 'MET08RESISRP2100' SPVDir = Environment_Services('GetApplicationRootPath') : '\Metrology\':SPVInstanceName:'\Source\' : SPVInstanceName SPVFileCount = File_Services('GetDirFileCount', SPVDir) SPVOldestFileDTM = File_Services('GetDirOldestFileDate', SPVDir) If SPVOldestFileDTM EQ '' then SPVOldestFileAgeMinute = 0 end else SPVOldestFileAgeMinute = SRP_Datetime('MinuteSpan', SPVOldestFileDTM, CurrDTM) end Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_COUNT', SPVInstanceName, SPVFileCount) Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_AGE', SPVInstanceName, SPVOldestFileAgeMinute) //SRP SRPInstanceName = 'MET08ANLYSDIFAAST230' SRPDir = Environment_Services('GetApplicationRootPath') : '\Metrology\':SRPInstanceName:'\Source\' : SRPInstanceName SRPFileCount = File_Services('GetDirFileCount', SRPDir) SRPOldestFileDTM = File_Services('GetDirOldestFileDate', SRPDir) If SRPOldestFileDTM EQ '' then SRPOldestFileAgeMinute = 0 end else SRPOldestFileAgeMinute = SRP_Datetime('MinuteSpan', SRPOldestFileDTM, CurrDTM) end Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_COUNT', SRPInstanceName, SRPFileCount) Mona_Services('SendMetric', 'EXPORT_TO_OI_FILE_AGE', SRPInstanceName, SRPOldestFileAgeMinute) return ClearCursors: For counter = 0 to 8 ClearSelect counter Next counter return