Files
open-insight/LSL2/STPROC/MONA_MONITORS.txt
Infineon\StieberD 2180ba3fb4 refactored Mona_Services to queue requests and send them in bulk via the Service Manager
Added queue count to mona monitors. Added email notification on ProcessMonaQueue.

Added hard limit of 2000 requests to be sent to MonInBufferedWorker at one time. Fixed outdated Shipment_Services in SharedTest environment.
2025-06-26 15:20:01 -07:00

214 lines
8.8 KiB
Plaintext

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)
Query = 'SELECT PROC_QUEUE'
RList(Query, TARGET_ACTIVELIST$, '', '', '')
QueueCount = @RecCount
GoSub ClearCursors
Mona_Services('SendMetric', 'GRP_OPENINSIGHT_MES_OP_FE_SERVICE_MANANGER', 'PROC_QUEUE', QueueCount)
Query = 'SELECT TRANSACTION_QUEUE'
RList(Query, TARGET_ACTIVELIST$, '', '', '')
QueueCount = @RecCount
GoSub ClearCursors
Mona_Services('SendMetric', 'GRP_OPENINSIGHT_MES_OP_FE_SERVICE_MANANGER', 'TRANSACTION_QUEUE', QueueCount)
Query = 'SELECT MONA_QUEUE'
RList(Query, TARGET_ACTIVELIST$, '', '', '')
QueueCount = @RecCount
GoSub ClearCursors
Mona_Services('SendMetric', 'GRP_OPENINSIGHT_MES_OP_FE_SERVICE_MANANGER', 'MONA_QUEUE', 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