What

nameofinstance.xml

Description

Configuration for the SystemMetrics module

schema location

https://fewsdocs.deltares.nl/schemas/version1.0/systemMetrics.xsd

The significant changes on the Delft-FEWS architecture for the 2017.02 roadmaps has rendered certain elements of the SystemMetrics from the McStatus section meaningless. In below configuration examples it is documented, which configuration elements have been removed from 2017.02 (see "no longer present in 2017.02 and later" comments on this page). Note that the SystemMetrics module uses the McStatusView and FssStatusView. Unfortunately these two views have not been available in all the delivered 2017.02 release packages. New versions of McStatusView and FssStatusView will be officially present in 2018.01 again. Ask Fews support if you need the McStatusView and FssStatusView in 2017.02 or use the view_creation script from the latest 2017.02 mc build.

In 2017.02 and later, please remove the following elements from the SystemMetrics module configuration file (parameters and filters should probably cleaned up as well) otherwise errors will be logged:

   <oclListenerParameterId>M.S.ocl</oclListenerParameterId>
   <fslListenerParameterId>M.S.fsl</fslListenerParameterId>
   <synchListenerParameterId>M.S.synchL</synchListenerParameterId>
   <synchRunnerParameterId>M.S.synchR</synchRunnerParameterId>
   <synchTaskListenerParameterId>M.S.synchTL</synchTaskListenerParameterId>
   <tmLauncherParameterId>M.S.tmLa</tmLauncherParameterId>        
   <tmChaserParameterId>M.S.tmC</tmChaserParameterId>
   <tmLogProcessorParameterId>M.S.tmLP</tmLogProcessorParameterId>
   <sysMonListenerParameterId>M.S.sysmL</sysMonListenerParameterId>
   <sysMonMonitorParameterId>M.S.sysmM</sysMonMonitorParameterId>
   <sysMonHeartbeatParameterId>M.S.sysmH</sysMonHeartbeatParameterId>

The significant changes on the Delft-FEWS architecture for the 2018.02 roadmaps has rendered the FssStatus section meaningless. In below configuration examples it is documented, which configuration elements have been removed from 2018.02 (see "no longer present in 2018.02 and later" comments on this page).

In 2018.02 and later, please remove the following elements from the SystemMetrics module configuration file (parameters and filters should probably cleaned up as well) otherwise errors will be logged:

<buildVersionParameterId>M.N.build</buildVersionParameterId>
<queueLengthParameterId>M.N.fsQL</queueLengthParameterId>
<downParameterId>M.N.fsDown</downParameterId>


Introduction to SystemMetrics

The SystemMonitor in the client and the Admin Interface provide monitoring of the Delft-FEWS live system. In addition, the Delft-FEWS SystemMetrics module can be run regularly within a workflow to store several of these statistics as timeseries into the database. This workflow is only available in Direct Database Access mode (DDA), and should therefore be provided a workflow mapping to a DDA FSS. There are a number of configuration requirements when using SystemMetrics. It is required to define a dummy location and a number of qualifiers and parameters. Timeseries are stored in non-equidistant timestep: one value for every time the module runs. See the sample configuration below for reference.

Database rows and bytes (MB)

Table rows and bytes (MB)

LogEntries - Errors, Warnings, ConfigErrors, ConfigWarnings

MCStatus

FSS Status - down, FSS queue length, FSS build number

Sample configuration

RegionConfigFiles - ModuleInstanceDescriptors.xml

    <moduleInstanceDescriptor id="SystemMetrics"/>

RegionConfigFiles - Locations.xml

    <location id="metrics" name="SystemMetrics">
        <description>SystemMetrics</description>
        <shortName>SystemMetrics</shortName>
        <x>-1</x>
        <y>-1</y>
        <z>-1</z>
    </location>

RegionConfigFiles - Parameters.xml

<parameterGroups>
    <parameterGroup id="SystemMetricsRows">
        <parameterType>instantaneous</parameterType>
        <unit>-</unit>
        <parameter id="M.N.db" name="Database">
            <shortName>Database rows</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.ts" name="TimeSeries">
            <shortName>Timeseries</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.tsO4w" name="TimeSeries 4 week old">
            <shortName>TimeSeries</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.tsE52w" name="TimeSeries stored at least a year">
            <shortName>TimeSeries Rows 1 year or more</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.ws" name="WarmStates">
            <shortName>Warm states</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.wsE10d" name="WarmStates stored at least 10 days">
            <shortName></shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.sa" name="Samples">
            <shortName>Samples</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.te" name="ThresholdEvents">
            <shortName>ThresholdEvents</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
    </parameterGroup>
    <parameterGroup id="SystemMetricsMB">
        <parameterType>instantaneous</parameterType>
        <unit>MB</unit>
        <parameter id="M.B.db" name="Database MB">
            <shortName>Database MB</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.B.ts" name="TimeSeries MB">
            <shortName>TimeSeries MB</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.B.tsE52w" name="TimeSeries MB stored at least a year">
            <shortName>TimeSeries MB stored at least a year</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.B.wsE10d" name="WarmStates MB stored at least 10 days">
            <shortName>WarmStates stored at least 10 days</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.B.tsO4w" name="TimeSeries MB 4 week old">
            <shortName>TimeSeries MB 4 week old</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.B.ws" name="WarmStates">
            <shortName>Warm states MB</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
    </parameterGroup>
    <parameterGroup id="SystemMetrics">
        <parameterType>instantaneous</parameterType>
        <unit>-</unit>
        <parameter id="M.N.err" name="Errors">
            <shortName>Errors</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.warn" name="Warnings">
            <shortName>Warnings</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.cfgE" name="Config errors">
            <shortName>Config errors</shortName>
            <valueResolution>1</valueResolution>
        </parameter>   
        <parameter id="M.N.cfgW" name="Config warnings">
            <shortName>Config warnings</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.remMcs" name="Remote MCs">
            <shortName>Remote MCs</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.tQL" name="Task queue length">
            <shortName>TaskQueueLength</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.rt" name="Running tasks">
            <shortName>Running tasks</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.ses" name="Active sessions">
            <shortName>Active sessions</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.mccpts" name="MC components">
            <shortName>MC Components</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.S.ocl" name="OClistener">
            <shortName>OCL</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
    </parameterGroup>
    <parameterGroup id="SystemMetricsMCStatus">
        <parameterType>instantaneous</parameterType>
        <unit>-</unit>
        <parameter id="M.S.failO" name="Failed over">
            <shortName>Failover state</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <!-- only up to 2017.01, no longer present in 2017.02 and later !
        <parameter id="M.S.fsl" name="FSListener">
            <shortName>FSL</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.S.synchL" name="SynchListener">
            <shortName>SynchListener</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.S.synchR" name="SynchRunner">
            <shortName>SynchRunner</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.S.synchTL" name="SynchTaskListener">
            <shortName>SynchTaskListener</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.S.tmLa" name="TaskManagerLauncher">
            <shortName>Launcher</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.S.tmC" name="TaskManagerChaser">
            <shortName>Chaser</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.S.tmLP" name="TaskManagerLogProcessor">
            <shortName>LogProcessor</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.S.sysmL" name="SystemMonitorListener">
            <shortName>SystemMonitorListener</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.S.sysmM" name="SystemMonitor">
            <shortName>SystemMonitor</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.S.sysmH" name="SystemMonitor hearbeat">
            <shortName>SystemMonitorHeartbeat</shortName>
            <valueResolution>1</valueResolution>
        </parameter> -->
    </parameterGroup>
	<!-- only up to 2018.01, no longer present in 2018.02 and later !
    <parameterGroup id="SystemMetricsFSS">
        <parameterType>instantaneous</parameterType>
        <unit>-</unit>
        <parameter id="M.N.build" name="FSS build version">
            <shortName>FSS build</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.fsQL" name="FSS queue length">
            <shortName>FSS running</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
        <parameter id="M.N.fsDown" name="FSS down">
            <shortName>FSSDown</shortName>
            <valueResolution>1</valueResolution>
        </parameter>
    </parameterGroup>    -->
</parameterGroups>

Set fssId as Forecasting Shell parameter fews.master.mcproxy.conf - before 2018.02

NB. The SystemMetrics module requires that the correct fssId is provided in the Forecasting Shell configuration, i.e. fews.master.mcproxy.conf. Ensure you've replaced the obsolete argument nl.wldelft.fews.system.synch.MasterControllerSynchroniserFactory and provide the fssId instead.

   <forecastshell>
       <run path="d:/opt/mcs/FSS00/FewsShell/bin"/>
       <jvm path="d:/opt/jre/bin/java">
            <arg id="0" value="-Xmx1024M"/>
      </jvm>
       <lib id="0" path="d:/opt/mcs/FSS00/FewsShell/bin"/>
       <class name="nl.wldelft.fews.system.shellserver.ForecastingShell">
           <arg id="0" value="FSS00"/>
			...

RegionConfigFiles - Qualifiers.xml


    <qualifier id="MC00"/>
    <qualifier id="MC01"/>
    <qualifier id="MC02"/>
<!-- before 2018.02, it was possible to collect system metrics per fss -->
<!--
    <qualifier id="FSS00"/>
    <qualifier id="FSS01"/>
    <qualifier id="FSS02"/>
    <qualifier id="FSS03"/>
--> 

RegionConfigFiles - Filters.xml

    <filter id="SystemMetrics" name="SystemMetrics">
        <child foreignKey="systemMetricsRows"/>
        <child foreignKey="systemMetricsMB"/>
        <child foreignKey="systemMetricsLogEntries"/>
        <child foreignKey="systemMetricsMCStatus"/>
        <child foreignKey="systemMetricsMCComponents"/>
        <child foreignKey="systemMetricsFSSStatus"/>
    </filter>
    <filter id="systemMetricsRows" name="Rows">
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.te</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.tsO4w</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.tsE52w</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.ts</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.db</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.wsE10d</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.ws</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
    </filter>
    <filter id="systemMetricsMB" name="MB">
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.B.tsE52w</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.B.tsO4w</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.B.db</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.B.ts</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
    </filter>
    <filter id="systemMetricsLogEntries" name="LogEntries">
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.warn</parameterId>
            <qualifierId>MC00</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.cfgE</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.cfgW</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.err</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
    </filter>
    <filter id="systemMetricsMCStatus" name="Info">
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.mccpts</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.remMcs</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.rt</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.tQL</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <!--timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.fsQL</parameterId>
            <qualifierId>FSS00</qualifierId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet-->
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.ses</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
    </filter>
    <filter id="systemMetricsMCComponents" name="Status">
     <!-- Only usable up to 2017.01, no longer present in 2017.02 and later !
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.fsl</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>-->
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.failO</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
     <!-- Only usable up to 2017.01, no longer present in 2017.02 and later !
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.synchTL</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.synchL</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.tmLP</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.sysmM</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.synchR</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.ocl</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.sysmH</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.tmLa</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.sysmL</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.S.tmC</parameterId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet> -->
    </filter>
 <!-- Only usable up to 2018.01, no longer present in 2018.02 and later !
    <filter id="systemMetricsFSSStatus" name="FSS">
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.build</parameterId>
            <qualifierId>FSS00</qualifierId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
            <synchLevel>1</synchLevel>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.fsDown</parameterId>
            <qualifierId>FSS00</qualifierId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
        </timeSeriesSet>
        <timeSeriesSet>
            <moduleInstanceId>SystemMetrics</moduleInstanceId>
            <valueType>scalar</valueType>
            <parameterId>M.N.fsQL</parameterId>
            <qualifierId>FSS01</qualifierId>
            <qualifierId>MC02</qualifierId>
            <locationId>metrics</locationId>
            <timeSeriesType>external historical</timeSeriesType>
            <timeStep unit="nonequidistant"/>
            <readWriteMode>read complete forecast</readWriteMode>
        </timeSeriesSet>
    </filter> -->

RegionConfigFiles - WorkflowDescriptors.xml

    <workflowDescriptor id="SystemMetrics" name="SystemMetrics" forecast="true" visible="true">
        <description>SystemMetrics</description>
        <viewPermission>Forecaster</viewPermission>
    </workflowDescriptor>

WorkflowFiles

<?xml version="1.0" encoding="UTF-8"?>
<workflow version="1.1" xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.wldelft.nl/fews https://fewsdocs.deltares.nl/schemas/version1.0/workflow.xsd">
    <activity>
        <moduleInstanceId>SystemMetrics</moduleInstanceId>
    </activity>
</workflow>

ModuleConfigFiles

<?xml version="1.0" encoding="UTF-8"?>
<systemMetrics xmlns="http://www.wldelft.nl/fews" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.wldelft.nl/fews https://fewsdocs.deltares.nl/schemas/version1.0/systemMetrics.xsd">
    <general>
        <locationId>metrics</locationId>
		<synchLevel>1</synchLevel>
    </general>
    <!-- Database total record and byte count -->
    <database>
        <rowCountParameterId>M.N.db</rowCountParameterId>
        <byteCountParameterId>M.B.db</byteCountParameterId>
    </database>
    <!-- TimeSeries record and byte count -->
    <!-- When SystemMetrics is run between an ImportAmalgamate and MC_MarkedRecordManager / MC_RollingBarrel spikes are to be expected -->
    <table>
        <tableName>TimeSeries</tableName>
        <rowCountParameterId>M.N.ts</rowCountParameterId>        
        <byteCountParameterId>M.B.ts</byteCountParameterId>
    </table>
    <!-- When SystemMetrics is run between an ImportAmalgamate and MC_MarkedRecordManager / MC_RollingBarrel spikes are to be expected -->
    <table>
        <tableName>TimeSeries</tableName>
        <rowCountParameterId>M.N.tsO4w</rowCountParameterId>        
        <byteCountParameterId>M.B.tsO4w</byteCountParameterId>
        <maximalAge unit="day" multiplier="4"/>
    </table>
    <!-- TimeSeries records with an expiry time over longer than 52 weeks -->
    <!-- When SystemMetrics is run between an ImportAmalgamate and MC_MarkedRecordManager / MC_RollingBarrel spikes are to be expected -->
    <table>
        <tableName>TimeSeries</tableName>
        <rowCountParameterId>M.N.tsE52w</rowCountParameterId>        
        <byteCountParameterId>M.B.tsE52w</byteCountParameterId>
        <lifeSpan unit="week" multiplier="52" />
    </table>
    <!-- WarmStates record and byte count -->
    <table>
        <tableName>WarmStates</tableName>
        <rowCountParameterId>M.N.ws</rowCountParameterId>        
        <!-- uncomment when WarmStates are stored in the database, not external on disk)-->
        <!--  <byteCountParameterId>B.ws</byteCountParameterId> -->
    </table>
    <table>
        <tableName>WarmStates</tableName>
        <rowCountParameterId>M.N.wsE10d</rowCountParameterId>        
        <!-- uncomment when WarmStates are stored in the database, not external on disk)-->
        <!-- <byteCountParameterId>M.NB.wse10d</byteCountParameterId> -->
        <lifeSpan unit="day" multiplier="10" />
    </table>
    <!-- Samples record count -->
    <!-- uncomment when Samples are used -->
    <!--  <table>
        <tableName>Samples</tableName>
        <rowCountParameterId>M.N.sa</rowCountParameterId>
    </table>
    -->
    <!-- ThresholdEvents record count -->
    <table>
        <tableName>ThresholdEvents</tableName>
        <rowCountParameterId>M.N.te</rowCountParameterId>
    </table>
    <!-- Counts the number of errors -->
    <logEntry>
        <rowCountParameterId>M.N.err</rowCountParameterId>
        <logLevel>ERROR</logLevel>
    </logEntry>
    <logEntry>
        <rowCountParameterId>M.N.warn</rowCountParameterId>
        <logLevel>WARN</logLevel>
    </logEntry>
    <!-- Counts the log entries with event code Config.Error -->
    <logEntry>
        <rowCountParameterId>M.N.cfgE</rowCountParameterId>
        <eventCode>Config.Error</eventCode>
    </logEntry>
    <logEntry>
        <rowCountParameterId>M.N.cfgW</rowCountParameterId>
        <eventCode>Config.Warn</eventCode>
    </logEntry>
    <mcStatus>
        <failedOverParameterId>M.S.failO</failedOverParameterId>
        <aliveRemoteMcCountParameterId>M.N.remMcs</aliveRemoteMcCountParameterId>
        <taskQueueLengthParameterId>M.N.tQL</taskQueueLengthParameterId>
        <activeTasksCountParameterId>M.N.rt</activeTasksCountParameterId>        
        <ocSessionsCountParameterId>M.N.ses</ocSessionsCountParameterId>
        <liveComponentCountParameterId>M.N.mccpts</liveComponentCountParameterId>        
<!-- Only usable up to 2017.01, no longer present in 2017.02 and later ! 
        <oclListenerParameterId>M.S.ocl</oclListenerParameterId>
        <fslListenerParameterId>M.S.fsl</fslListenerParameterId>
        <synchListenerParameterId>M.S.synchL</synchListenerParameterId>
        <synchRunnerParameterId>M.S.synchR</synchRunnerParameterId>
        <synchTaskListenerParameterId>M.S.synchTL</synchTaskListenerParameterId>
        <tmLauncherParameterId>M.S.tmLa</tmLauncherParameterId>        
        <tmChaserParameterId>M.S.tmC</tmChaserParameterId>
        <tmLogProcessorParameterId>M.S.tmLP</tmLogProcessorParameterId>
        <sysMonListenerParameterId>M.S.sysmL</sysMonListenerParameterId>
        <sysMonMonitorParameterId>M.S.sysmM</sysMonMonitorParameterId>
        <sysMonHeartbeatParameterId>M.S.sysmH</sysMonHeartbeatParameterId> -->
    </mcStatus>
<!-- Only usable up to 2018.01, no longer present in 2018.02 and later ! 
    <fssStatus>
        <buildVersionParameterId>M.N.build</buildVersionParameterId>
        <queueLengthParameterId>M.N.fsQL</queueLengthParameterId>
        <downParameterId>M.N.fsDown</downParameterId>
    </fssStatus> --> 
</systemMetrics>

2 Comments

  1. SychLevel should be configured in systemmetrics.xml (ModuleConfigFiles) , e.g.

    <general>

            <locationId>metrics</locationId>

                     <synchLevel>1</synchLevel>

    </general>
    Otherwise, SynchLevel 0 will be automatically assigned to systemmetrics timeseries. OC client without a DDA cannot synch those data.
    1. Fixed in 2021.01 and later