Entering content frame

This graphic is explained in the accompanying text monitor-configuration.dtd Locate the document in its SAP Library structure

Definition

A document type definition (DTD) that is used to define the type of monitored data the monitored components will provide.

Use

The monitor-configuration.xml, obeying the monitor-configuration.dtd, is deployed along with the services and applications that will be monitored. It defines monitors and their initial monitoring configuration that can be changed later at runtime.

Structure

The XML file is separated into two logical parts – the first one defines the monitor semantics and the other defines the installation information for monitors, such as how the monitors appear in the tree, what semantics they use (to which of the groups they refer), and what resources they use.

There are two types of monitors: performance monitors and non-performance monitors.

The performance monitors have history and alerting mechanisms, which include thresholds (these are used to compare the actual monitored value with a predefined value and, depending on the result, to map a color to the monitor and create alerts). The performance monitors are: availability-monitor, integer-monitor, long-monitor, frequency-monitor, quality-rate-monitor, and duration-monitor.

The non-performance monitors do not have history mechanisms and except for the state monitor, they do not have alert mechanisms. The non-performance monitors are: text-monitor, state-monitor, table-monitor, version-monitor, and configuration-monitor.

Entities

<!--
Defines the reaction types:

UNREGISTER_MONITOR - the monitor unregisters itself and stops monitoring the resource.

IGNORE - the monitor ignores the problems and remains registered to monitor the resource.
-->
<!ENTITY % reaction-types "(UNREGISTER_MONITOR | IGNORE)">

 

<!--
Defines the possible values of the monitored resource type: manager, service, application, or MBean.
-->
<!ENTITY % monitored-types "(MANAGER |SERVICE |APPLICATION |MBEAN)">

 

<!--
Defines the unit for the data collection period. The possible values are: minute, hour, day.
-->
<!ENTITY % time-unit "(MINUTE|HOUR|DAY)">

 

<!--
Defines possible parameter types of the invoked methods of the resource MBean: String ,boolean , char , byte , short , int , long , float , double.
-->
<!ENTITY % param-types "(String | boolean | char | byte | short | int | long | float | double)">

 

<!--
This tag applies only to CCMS alerting, although you can generate alerts not only based on the last reported value, but
also based on values that were averaged differently. The default and only option in Java is the comparison with the last (measured) value. The others do compare the averaged values of the last minute/fifteen minutes/hour with fixed starting points (for example 9:00h-10:00h for DISCRETE_HOUR), or in a sliding window of the last 5 minutes or fifteen minutes. For example, if the current time is 9:48, the SLIDING_WINDOW_5_MINUTES is about 9:44-9:48h.

LAST – a strategy that may cause an alert for each single reported value (depending on the thresholds). This is the default strategy.

DISCRETE_QUARTER – a strategy that checks the smoothed value against the thresholds. The smoothed value is calculated over the reported values of a discrete quarter of an hour (for example, 15:00...15:14 or 16:45...16:59). This is always meant as 15:00:00...15:14:59.

DISCRETE_HOUR – a strategy that checks the smoothed value against the thresholds. The smoothed value is calculated over the reported values of a discrete hour (for example, 15:00...15:59).

DISCRETE_MINUTE – a strategy that checks the smoothed value against the thresholds. The smoothed value is calculated over the reported values of a discrete minute.

SLIDING_WINDOW_5_MINUTES – a strategy that checks the smoothed value against the thresholds. The smoothed value is calculated over the reported values of a sliding window each 5 minutes (for example, 15:07...15:11 or  16:46...16:50).

SLIDING_WINDOW_QUARTER – a strategy that checks the smoothed value against the thresholds. The smoothed value is calculated over the reported values of a sliding window each 15 minutes (for example, 15:07...15:21 or  16:46...17:00).
-->
<!ENTITY % alert-relevant-value-types "(LAST | DISCRETE_MINUTE | DISCRETE_QUARTER | DISCRETE_HOUR | SLIDING_WINDOW_5_MINUTES | SLIDING_WINDOW_QUARTER )">

 

<!--
Defines the alert types. This tag is effective in the CCMS only.

ALWAYS – a strategy that creates an alert for each reported message line with red or yellow alert value. This is the default strategy.

NEVER – a strategy that never creates an alert.

ON_STATE_COLOR_CHANGE – a strategy that creates an alert only for those reported message lines where the alert value changed to red or from green/inactive to yellow (compared with the alert value of the last reported message line).

ON_STATE_TEXT_CHANGE – a strategy that creates an alert only for those reported message lines that differ in at least one attribute (compared with the last reported message line).
-->
<!ENTITY % alert-mode-types "(ALWAYS | NEVER | ON_STATE_COLOR_CHANGE | ON_STATE_TEXT_CHANGE )">

 

<!--
Defines the types of averaging mode for history. You can choose a suitable averaging mode: “arithmetical averaging” or “time weighted averaging”.

In the “arithmetic averaging”, every measurement has an equal effect on the resulting average/standard deviation.

In the “time weighted averaging”, many measurements in one time interval are treated as one averaged measurement.

According to these different averaging strategies, you get different average / standard deviation results.

For more information about the data history and its averaging modes, see Understanding the Data History in the Administration Manual.
-->
<!ENTITY % averaging-mode "(TIME_WEIGHTED | ARITHMETICALLY)">

 

<!--
Defines the types of the boolean value – true and false.
-->
<!ENTITY % boolean-value "(TRUE|FALSE)">

The Start Tag for Monitor Configuration

 

This graphic is explained in the accompanying text

 

<!--
Defines the root element of the XML.
-->
<!ELEMENT monitor-configuration (monitor-semantics, monitor-tree)>

Monitor Semantics

 

This graphic is explained in the accompanying text

 

<!--
Defines the semantics for each monitor type, such as description, data collection, and alert information.
-->
<!ELEMENT monitor-semantics (simple-configuration-group*, text-configuration-group*, state-configuration-group*, table-configuration-group*, version-configuration-group*, config-configuration-group*, availability-configuration-group*, integer-configuration-group*, long-configuration-group*, frequency-configuration-group*, quality-rate-configuration-group*, duration-configuration-group*)>

 

<!--
Defines the semantics for two types of nodes – summary and object. The tree has the following view:

-summary
   -summary
      -summary
         -object
            -monitor

The tree consists of n number of summaries and one object node, which is the last node before the monitors, which are always leaves of the monitor tree.

All groups are identified by a unique name. If a group with that name already exists, the new group is not saved and the existing one is used.

The name of the group must have a maximum of 40 symbols. Groups whose names have more than 40 symbols cannot be sent to the CCMS and the nodes that use them are not visible in the CCMS.

Example:

<simple-configuration-group name="JMX.MBeanServer">

   <description ID="JMX.MBServer">MBean server managed by the JMX Adapter service</description>

</simple-configuration-group>
-->
<!ELEMENT simple-configuration-group (description)>

 

<!--
Specifies the name of the simple configuration group.
-->
<!ATTLIST simple-configuration-group name CDATA #REQUIRED>

 

<!--
Defines the semantics for text monitors.

Example:

<text-configuration-group name="DEPLOY.TimeOfLastRedeployment">

   <description ID="DEPLOY.TimeOfLastRedeployment">Time of last redeployment</description>

   <data-collection>

      <polled-by-monitor period="5" unit="MINUTE"/>

   </data-collection>

</text-configuration-group>
-->

<!ELEMENT text-configuration-group (description, data-collection)>

 

<!--
Specifies the name of the text configuration group.
-->
<!ATTLIST text-configuration-group name CDATA #REQUIRED>

 

<!--
Defines the semantics for state monitors.

Example:

<state-configuration-group name="SSL.SSLExpirationState" alert-mode="ON_STATE_COLOR_CHANGE">

   <description ID="SSL.SSLExpirationStateID">

     Estimates the expiration period of certificates in use with SSL protocol.

   </description>

   <data-collection>

    <polled-by-monitor period="1" unit="DAY"/>

   </data-collection>

   <color-states>

    <green-states>

     <state>No certificates are expected to expire in a year time.</state>

     <state>At least one certificate expires in less than 1 year.</state>

     <state>At least one certificate expires in less than 3 months.</state>

    </green-states>

    <yellow-states>

     <state>At least one certificate expires in less than 1 month.</state>

     <state>At least one certificate expires in less than 1 week.</state>

    </yellow-states>

    <red-states>

     <state>At least one certificate expires in less than 5 days.</state>

     <state>At least one certificate expires in less than 4 days.</state>

     <state>At least one certificate expires in less than 3 days.</state>

     <state>At least one certificate expires in less than 2 days.</state>

     <state>At least one certificate expires in less than 1 day.</state>

     <state>At least one certificate has already expired.</state>

    </red-states>

   </color-states>

  </state-configuration-group>
-->

<!ELEMENT state-configuration-group (description, data-collection, color-states?)>

 

<!--
Specifies the name of the state configuration group.
-->
<!ATTLIST state-configuration-group name CDATA #REQUIRED alert-mode %alert-mode-types; #IMPLIED>

 

<!--
Defines the semantics for table monitors.

Example:

<table-configuration-group name="SSL.SSLExpirationTable">

   <description ID="SSL.SSLExpirationTableID">

    Shows all certificates in use with SSL protocol sorted by expiration.

   </description>

   <data-collection>

      <polled-by-monitor period="1" unit="DAY"/>

   </data-collection>

   <columns>

      <column>type</column>

      <column>host</column>

      <column>port</column>

      <column>owner</column>

      <column>keystore entry</column>

      <column>algorithm</column>

      <column>expires in (days)</column>

   </columns>

</table-configuration-group>
-->
<!ELEMENT table-configuration-group (description, data-collection, columns)>

 

<!--
Specifies the name of the table configuration group.
-->
<!ATTLIST table-configuration-group name CDATA #REQUIRED>

 

<!--
Defines the semantics for version monitors.

Example:

<version-configuration-group name="TEST.VersionMonitor">

   <description ID="TEST.VerionMonitorID">Version monitor</description>

   <data-collection>

      <polled-by-monitor period="1" unit="MINUTE"/>

   </data-collection>

</version-configuration-group>
-->
<!ELEMENT version-configuration-group (description, data-collection)>

 

<!--
Specifies the name of the version configuration group.
-->
<!ATTLIST version-configuration-group name CDATA #REQUIRED>

 

<!--
Defines the semantics for configuration monitors.

Example:

<config-configuration-group name="TEST.ConfigurationMonitor">

   <description ID="TEST.ConfigurationMonitorID">Configuration monitor</description>

   <data-collection>

      <polled-by-monitor period="1" unit="MINUTE"/>

   </data-collection>

</config-configuration-group>
-->
<!ELEMENT config-configuration-group (description, data-collection)>

 

<!--
Specifies the name of the config configuration group.
-->
<!ATTLIST config-configuration-group name CDATA #REQUIRED>

 

<!--
Defines the semantics for availability monitors.

Example:

<availability-configuration-group name="TEST.Availability">

   <description ID="AvailabilityTestMonitorID">Availability Test Monitor</description>

   <data-collection>

      <polled-by-monitor period="1" unit="MINUTE"/>

   </data-collection>

   <thresholds green-to-yellow="50" yellow-to-red="90" red-to-yellow="90" yellow-to-green="50"/>

</availability-configuration-group>
-->
<!ELEMENT availability-configuration-group (description, data-collection, thresholds, history?)>

 

<!--
Specifies the name of the availability configuration group.

The unit attribute represents a particular unit for the group, for example “bytes”, “MB”, and so on. Units whose names have more than 4 symbols are cut to 4 symbols when they are to the CCMS.
-->
<!ATTLIST availability-configuration-group name CDATA #REQUIRED unit CDATA #IMPLIED alert-relevant-value-type %alert-relevant-value-types; #IMPLIED>

 

<!--
Defines the semantics for integer monitors.

Example:

<integer-configuration-group name="JMX.Size">

   <description ID="JMX.NotifQueue.Size">The current number of JMX notifications waiting to be sent</description>

   <data-collection>

      <pushed-by-resource/>

   </data-collection>

   <thresholds green-to-yellow="10" yellow-to-red="100" red-to-yellow="50" yellow-to-green="5"/>

</integer-configuration-group>
-->
<!ELEMENT integer-configuration-group (description, data-collection, thresholds, history?)>

 

<!--
Specifies the name of the integer configuration group.

The unit attribute represents a particular unit for the group, for example “bytes”, “MB”, and so on. Units whose names have more than 4 symbols are cut to 4 symbols when they are sent to the CCMS.
-->
<!ATTLIST integer-configuration-group name CDATA #REQUIRED unit CDATA #IMPLIED alert-relevant-value-type %alert-relevant-value-types; #IMPLIED>

 

<!--
Defines the semantics for long monitors.

Example:

<long-configuration-group name="MANAGERS.ClMan.TotalMSBytesSent" unit="bytes">

   <description ID="MGR.Cl.TotalMSBytesSent">Total number of bytes sent from the specified service to the cluster through the message server communication layer</description>

   <data-collection react-on-failure="IGNORE">

      <polled-by-monitor period="5" unit="MINUTE"/>

   </data-collection>

   <thresholds green-to-yellow="2147483646" yellow-to-red="2147483647" red-to-yellow="2147483647" yellow-to-green="2147483646"/>

</long-configuration-group>
-->
<!ELEMENT long-configuration-group (description, data-collection, thresholds, history?)>

 

<!--
Specifies the name of the long configuration group.

The unit attribute represents a particular unit for the group, for example “bytes”, “MB”, and so on. Units whose names have more than 4 symbols are cut to 4 symbols when they are sent to the CCMS.
-->
<!ATTLIST long-configuration-group name CDATA #REQUIRED unit CDATA #IMPLIED alert-relevant-value-type %alert-relevant-value-types; #IMPLIED>

 

<!--
Defines the semantics for frequency monitors.

Example:

<frequency-configuration-group name="TEST.FrequencyMonitor">

   <description ID="FrequencyValue">Frequency monitor</description>

   <data-collection>

      <polled-by-monitor period="1" unit="MINUTE"/>

   </data-collection>

   <thresholds green-to-yellow="40" yellow-to-red="80" red-to-yellow="80" yellow-to-green=”40"/>

</frequency-configuration-group>
-->
<!ELEMENT frequency-configuration-group (description, data-collection, thresholds, history?)>

 

<!--
Specifies the name of the frequency configuration group.

The unit attribute represents a particular unit for the group, for example “bytes”, “MB”, and so on. Units whose names have more than 4 symbols are cut to 4 symbols when they are sent to the CCMS.
-->
<!ATTLIST frequency-configuration-group name CDATA #REQUIRED unit CDATA #IMPLIED alert-relevant-value-type %alert-relevant-value-types; #IMPLIED>

 

<!--
Defines the semantics for quality-rate monitors.

Example:

<quality-rate-configuration-group name="JMX.HitRate">

   <description ID="JMX.ObjectNameCache.HitRate">The number of cache hits compared with the total number of accesses</description>

   <data-collection

      react-on-failure="IGNORE">

      <polled-by-monitor period="5" unit="MINUTE"/>

   </data-collection>

   <thresholds green-to-yellow="500" yellow-to-red="1000" red-to-yellow="1000" yellow-to-green="500"/>

</quality-rate-configuration-group>
-->
<!ELEMENT quality-rate-configuration-group (description, data-collection, thresholds, history?)>

 

<!--
Specifies the name of the quality-rate configuration group.

The unit attribute represents a particular unit for the group, for example “bytes”, “MB”, and so on. Units whose names have more than 4 symbols are cut to 4 symbols when they are sent to the CCMS.
-->
<!ATTLIST quality-rate-configuration-group name CDATA #REQUIRED unit CDATA #IMPLIED alert-relevant-value-type %alert-relevant-value-types; #IMPLIED>

 

<!--
Defines the semantics for duration monitors.

Example:

<duration-configuration-group name="ConfigMgr.CommitDuration" unit="ms">

   <description ID="ConfigMgr.CommitDuration">Commit Duration</description>

   <data-collection react-on-failure="IGNORE">

      <polled-by-monitor period="5" unit="MINUTE"/>

   </data-collection>

   <thresholds green-to-yellow="30000" yellow-to-red="120000" red-to-yellow="115000" yellow-to-green="25000"/>

   <history averaging-mode="ARITHMETICALLY"/>

</duration-configuration-group>
-->
<!ELEMENT duration-configuration-group (description, data-collection, thresholds, history?)>

 

<!--
Specifies the name of the duration configuration group.

The unit attribute represents a particular unit for the group, for example “bytes”, “MB”, and so on. Units whose names have more than 4 symbols are cut to 4 symbols when they are sent to the CCMS.
-->
<!ATTLIST duration-configuration-group name CDATA #REQUIRED unit CDATA #IMPLIED alert-relevant-value-type %alert-relevant-value-types; #IMPLIED>

 

<!--
Defines the group for which a description is provided.
-->
<!ELEMENT description (#PCDATA)>

 

<!--
Specifies a unique description identifier that is used when making translation into different languages. The ID must be a maximum of 30 symbols. A description whose ID has more than 30 symbols is not be visible in the CCMS.
-->
<!ATTLIST description ID CDATA #REQUIRED>

 

<!--
Defines the way the data is received by the monitor.

-->
<!ELEMENT data-collection (polled-by-monitor | pushed-by-resource)>

 

<!--
The react-on-failure attribute defines the procedures the monitor performs if an exception occurs during the data collection, for example if the resource MBean is missing.
-->
<!ATTLIST data-collection react-on-failure %reaction-types; #IMPLIED>

 

<!--
Specifies that the monitored data is retrieved at predefined intervals of time.
-->
<!ELEMENT polled-by-monitor EMPTY>

 

<!--
Defines the time interval through which the data is received.
-->

<!ATTLIST polled-by-monitor period CDATA #REQUIRED unit %time-unit; #REQUIRED>

 

<!--
Specifies that the resource MBean initiates the creation of notification for sending data to the monitor.
-->

<!ELEMENT pushed-by-resource EMPTY>

 

<!--
Defines the levels for which the system changes the colors of the monitored performance values and influences the alert generation.
-->

<!ELEMENT thresholds EMPTY>

 

<!--
The green-to-yellow attribute defines the value after which the color of the monitored performance values is changed from green to yellow. This is a signal that attention should be paid to the monitored values and that some actions are probably necessary.

The yellow-to-red attribute defines the value after which the color of the monitored performance values changes from yellow to red. This is a signal that there is a critical condition and that immediate actions must be taken.

The red-to-yellow attribute defines the value below which the color of the monitored performance values changes from red to yellow. This is a signal that the critical condition is overcome, but the values are still critical.

The yellow-to-green attribute defines the value below which the color of the monitored performance values changes from yellow to green. This is a signal that the monitored values are normal.
-->

<!ATTLIST thresholds green-to-yellow CDATA #REQUIRED yellow-to-red CDATA #REQUIRED red-to-yellow CDATA #REQUIRED yellow-to-green CDATA #REQUIRED>

 

<!--
Defines a set of states used by the state monitor that correspond to the different colors.
-->

<!ELEMENT color-states (green-states, yellow-states, red-states)>

 

<!--
Defines the green states.

-->
<!ELEMENT green-states (state*)>

 

<!--
Defines the yellow states.

-->
<!ELEMENT yellow-states (state*)>

 

<!--
Defines the red states.
-->

<!ELEMENT red-states (state*)>

 

<!--
Defines the state values.
-->

<!ELEMENT state (#PCDATA)>

 

<!--
Defines the averaging method to be used for computing history statistics. If this element is omitted in the monitor-configuration.xml, there will be history with the default time-weighted averaging mode.
-->

<!ELEMENT history EMPTY>

 

<!--
Specifies the averaging modes for the history of performance monitors.
-->

<!ATTLIST history averaging-mode %averaging-mode; #IMPLIED>

 

<!--
Defines the columns for table monitors. Provides the columns while their order follows the sequence in which they are defined in the XML file.
-->

<!ELEMENT columns (column+)>

 

<!--
Defines the name of the column.
-->

<!ELEMENT column (#PCDATA)>

 

Monitor Tree

This graphic is explained in the accompanying text

The names of the monitor nodes that appear in the monitor browser must be a maximum of 40 symbols. A monitor node whose name has more than 40 symbols is not sent to the CCMS.

The object and summary names must not contain the following symbols: comma, equals sign, colon, quote, asterisk, or question mark.

This graphic is explained in the accompanying text

 

<!--
Defines the nodes in the monitoring tree. There is a difference between the DTD on the dispatcher and on the server side – in the dispatcher’s DTD the “Applications” node is missing.

The tree hierarchy is defined in the same way that it will look in the Monitor Browser.
-->

<!ELEMENT monitor-tree (kernel?, services?, applications?, performance?)>

 

<!--
Defines the top node for all managers in the kernel.
-->
<!ELEMENT kernel ((summary | object)+)>

 

<!--
Defines the top node for all services.
-->
<!ELEMENT services ((summary | object)+)>

 

<!--
Defines the top node for all applications.
-->
<!ELEMENT applications ((summary | object)+)>

 

<!--
Defines the top node for monitors retrieving the results from performance measurement tools.
-->
<!ELEMENT performance ((summary | object)+)>

 

<!--
Defines the intermediate nodes.
-->
<!ELEMENT summary (template-info?, (summary | object)+)>

 

<!--
Defines the name of the summary node. This name appears in the monitor browser. There is a restriction for the name to be a maximum of 40 symbols. A summary node whose name has more than 40 symbols is not sent to the CCMS.

The summary name must not contain the following symbols: comma, equals sign, colon, quote, asterisk, or question mark.
-->
<!ATTLIST summary name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

<!--
Specifies the objects used for defining parents of the leaves (monitors) of the monitor tree.
-->
<!ELEMENT object (template-info?, (text-monitor | state-monitor | table-monitor | version-monitor | configuration-monitor | availability-monitor | integer-monitor | long-monitor | frequency-monitor | quality-rate-monitor | duration-monitor)+)>

 

<!--
Defines the name of the object node. This name appears in the monitor browser. There is a restriction for the name to be a maximum of 40 symbols. An object node whose name has more than 40 symbols is not sent to the CCMS.
-->
<!ATTLIST object name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

Non Performance Monitors

 

Text Monitor

This graphic is explained in the accompanying text

<!--
Defines a monitor used for monitoring and displaying textual information.

Example 1:

<text-monitor name="TimeOfLastRedeployment" configuration-group="DEPLOY.TimeOfLastRedeployment">

   <monitored-resource name="deploy" type="SERVICE"/>

   <text-attribute-mapping>

      <text-attribute>

         <invoked-resource-method name="getTimeOfLastRedeployment">

            <parameter position="0" type="String" value="%0"/>

         </invoked-resource-method>

      </text-attribute>

   </text-attribute-mapping>

</text-monitor>

Example 2:

<text-monitor name="TimeOfLastRedeployment" configuration-group="DEPLOY.TimeOfLastRedeployment">

   <monitored-resource name="TestMonitor:j2eeType=SAP_TestMonitor" type="MBEAN"/>

   <text-attribute-mapping>

      <text-attribute>

         <observed-resource-attribute name="TimeOfLastRedeployment"/>

      </text-attribute>

   </text-attribute-mapping>

</text-monitor>
-->
<!ELEMENT text-monitor (template-info?, monitored-resource, text-attribute-mapping)>

 

<!--
Specifies the name of the text monitor.
-->
<!ATTLIST text-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

State Monitor

This graphic is explained in the accompanying text

<!--
Defines a mapping from specific states to different colors (red, yellow, and green). The monitor compares the monitored states with the predefined ones, and depending on the result, colors the state monitor nodes and potentially generates alerts.

If explicit-green is true, the current color of a status attribute mapped to the CCMS does not turn back to green even if all alerts for this node are completed. It is necessary to explicitly report a green message as a current color to have a green value. For example, if the status of the engine is “down = red”, the user completes all alerts using the CCMS Transaction RZ20. The status does not turn automatically to green because the engine is still down. Therefore, to instrument that status attribute, use “explicit-green = true” to achieve this logic.

Example:

<state-monitor name="Expiration of Certificates" configuration-group="SSL.SSLExpirationState">

   <monitored-resource name="ssl" type="SERVICE"/>

   <state-attribute-mapping>

      <state-attribute>

         <observed-resource-attribute name="ExpirationState"/>

      </state-attribute>

   </state-attribute-mapping>

</state-monitor>
-->

<!ELEMENT state-monitor (template-info?, monitored-resource, state-attribute-mapping)>

 

<!--
Specifies the name of the state monitor.

-->

<!ATTLIST state-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED explicit-green %boolean-value; #IMPLIED>

 

Table Monitor

This graphic is explained in the accompanying text

<!--
Defines a monitor for monitoring table structured data.

“filename” – a J2EE-node-unique name used for the CCMS mapping. It defines that the content of the table monitor is written to a file with the specified name under “\\usr\sap\CCMS\<sid_no>\j2ee<nodeID” directory.

Example:

<table-monitor name="Table of Certificates" filename="SSL.SSLFile" configuration-group="SSL.SSLExpirationTable">

   <monitored-resource  name="ssl" type="SERVICE"/>

   <table-attribute-mapping>

      <table-entries-attribute>

         <observed-resource-attribute name="ExpirationTableContents"/>

      </table-entries-attribute>

   </table-attribute-mapping>

</table-monitor>
-->

<!ELEMENT table-monitor (template-info?, monitored-resource, table-attribute-mapping)>

 

<!--
Specifies the name of the table monitor.

-->

<!ATTLIST table-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED filename CDATA #REQUIRED>

 

Version Monitor

This graphic is explained in the accompanying text

<!--
Defines a monitor for reporting the version information of a component. The reported version consists of an application name, a major version, a minor version, a support package number, a build time, a changelist number, and an optional entry for additional information.

Example:

<version-monitor name="Version Monitor" configuration-group="TEST.VersionMonitor">

   <monitored-resource name="TestMonitorMBean:j2eeType=SAP_TestMonitor_MBeans" type="MBEAN"/>

   <version-attribute-mapping>

      <version-attribute>

         <observed-resource-attribute name="VersionParameters"/>

      </version-attribute>

   </version-attribute-mapping>

</version-monitor>

-->
<!ELEMENT version-monitor (template-info?, monitored-resource, version-attribute-mapping)>

 

<!--
Specifies the name of the version monitor.

-->

<!ATTLIST version-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

Configuration Monitor

This graphic is explained in the accompanying text 

<!--
Defines a monitor for reporting configuration parameters of a particular component.

Example:

<configuration-monitor name="Configuration Monitor" configuration-group="TEST.ConfigurationMonitor">

   <monitored-resource name="TestMonitorMBean:j2eeType=SAP_TestMonitor_MBeans" type="MBEAN"/>

   <configuration-attribute-mapping>

      <configuration-attribute>

         <observed-resource-attribute name="ConfigurationParameters"/>

      </configuration-attribute>

   </configuration-attribute-mapping>

</configuration-monitor>
-->
<!ELEMENT configuration-monitor (template-info?, monitored-resource, configuration-attribute-mapping)>

 

<!--
Specifies the name of the configuration monitor.

-->

<!ATTLIST configuration-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

 

Performance Monitors

Availability Monitor

This graphic is explained in the accompanying text

<!--
Defines a monitor for monitoring the availability of a resource.

Example:

<availability-monitor name="AvailabilityMonitor" configuration-group="TEST.Avalablity">

   <monitored-resource name="TestMonitorMBean:j2eeType=SAP_TestMonitor_MBeans" type="MBEAN"/>

   <availability-attribute-mapping>

      <availability-attribute>

         <invoked-resource-method name="getAvailablity">

            <parameter position="0" type="String" value="%0"/>

         </invoked-resource-method>

      </availability-attribute>

   </availability-attribute-mapping>

</availability-monitor>
-->

<!ELEMENT availability-monitor (template-info?, monitored-resource, availability-attribute-mapping)>

 

<!--
Specifies the name of the availability monitor.

-->

<!ATTLIST availability-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

Integer Monitor

This graphic is explained in the accompanying text

<!--
Defines a monitor for monitoring integer values.

Example:

<integer-monitor name="Size" configuration-group="JMX.Size">

   <monitored-resource name=":j2eeType=com.sap.engine.services.jmx.server.NotificationQueue,name=JmxNotificationQueue" type="MBEAN"/>

   <integer-attribute-mapping>

      <integer-attribute>

         <observed-resource-attribute name="NotificationQueueCurrentSize"/>

      </integer-attribute>

   </integer-attribute-mapping>

</integer-monitor>
-->

<!ELEMENT integer-monitor (template-info?, monitored-resource, integer-attribute-mapping)>

 

<!--
Specifies the name of the integer monitor.

-->

<!ATTLIST integer-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

Long Monitor

This graphic is explained in the accompanying text

<!--
Defines a monitor for monitoring long values.

Example:

<long-monitor name="TotalMSBytesSent" configuration-group="MANAGERS.ClMan.TotalMSBytesSent">

   <monitored-resource name="ClusterManager" type="MANAGER"/>

   <long-attribute-mapping>

      <long-attribute>

         <invoked-resource-method name="getTotalMSBytesSent">

            <parameter position="0" type="String" value="%0"/>

         </invoked-resource-method>

      </long-attribute>

   </long-attribute-mapping>

</long-monitor>
-->
<!ELEMENT long-monitor (template-info?, monitored-resource, long-attribute-mapping)>

 

<!--
Specifies the name of the long monitor.

-->

<!ATTLIST long-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

Frequency Monitor

This graphic is explained in the accompanying text

<!--
Defines a monitor for computing the frequency per second based on a reported number of events.

Example:

<frequency-monitor name="FrequencyMonitor" configuration-group="TEST.FrequencyMonitor">

   <monitored-resource name="TestMonitorMBean:j2eeType=SAP_TestMonitor_MBeans" type="MBEAN"/>

   <frequency-attribute-mapping>

      <reported-events-attribute>

         <invoked-resource-method name="getReportedEvents">

            <parameter position="0" type="String" value="%0"/>

         </invoked-resource-method>

      </reported-events-attribute>

   </frequency-attribute-mapping>

</frequency-monitor>
-->

<!ELEMENT frequency-monitor (template-info?, monitored-resource, frequency-attribute-mapping)>

 

<!--
Specifies the name of the frequency monitor.

-->

<!ATTLIST frequency-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

Quality-Rate Monitor

This graphic is explained in the accompanying text

<!--
Defines a monitor that compares the number of hits with the number of tries in order to compute the hit rate.

Example:

<quality-rate-monitor name="HitRate" configuration-group="JMX.HitRate">

   <monitored-resource name="jmx" type="SERVICE"/>

   <quality-rate-attribute-mapping>

      <total-tries-attribute>

         <observed-resource-attribute name="ObjectNameCacheTotalReads"/>

      </total-tries-attribute>

      <total-hits-attribute>

         <observed-resource-attribute name="ObjectNameCacheTotalHits"/>

      </total-hits-attribute>

   </quality-rate-attribute-mapping>

</quality-rate-monitor>
-->
<!ELEMENT quality-rate-monitor (template-info?, monitored-resource, quality-rate-attribute-mapping)>

 

<!--
Specifies the name of the quality-rate monitor.

-->

<!ATTLIST quality-rate-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

Duration Monitor

This graphic is explained in the accompanying text

<!--
Defines a monitor for measuring the time for the http responses, session duration, and so on.

If N and T are respectively the total number of responses and the total response time, the values under the last measurement node are calculated as follows:

number of requests = Ni - Ni-1

average time = Ti - Ti-1 / Ni - Ni-1 or 0 if Ni = Ni-1.

Example:

<duration-monitor name="Commit Duration" configuration-group="ConfigMgr.CommitDuration">

   <monitored-resource name="ConfigurationManager" type="MANAGER"/>

   <duration-attribute-mapping>

      <total-number-attribute>

         <observed-resource-attribute name="AccNrOfCommits"/>

      </total-number-attribute>

      <total-time-attribute>

         <observed-resource-attribute name="AccCommitTime"/>

      </total-time-attribute>

   </duration-attribute-mapping>

</duration-monitor>
-->
<!ELEMENT duration-monitor (template-info?, monitored-resource, duration-attribute-mapping)>

 

<!--
Specifies the name of the duration monitor.

-->

<!ATTLIST duration-monitor name CDATA #REQUIRED configuration-group CDATA #REQUIRED>

 

Monitored Resource

<!--
Defines the monitored resource.
-->
<!ELEMENT monitored-resource EMPTY>

 

<!--
Specifies the name of the monitored resource.

“type” - specifies the type of the monitored resource: manager, service, application, or MBean.
-->

<!ATTLIST monitored-resource name CDATA #REQUIRED type %monitored-types; #REQUIRED>

 

Monitor Specific Attribute Mappings

This graphic is explained in the accompanying text

If the name of the attribute/method is greater than 40 symbols, this attribute/method is not sent to the CCMS.

 

<!--
Defines attribute mappings for text monitors.
-->
<!ELEMENT text-attribute-mapping (text-attribute)>

 

<!--
Defines attribute mappings for state monitors.
-->
<!ELEMENT state-attribute-mapping (state-attribute)>

 

<!--
Defines attribute mappings for table monitors.
-->
<!ELEMENT table-attribute-mapping (table-entries-attribute)>

 

<!--
Defines attribute mappings for version monitors.
-->
<!ELEMENT version-attribute-mapping (version-attribute)>

 

<!--
Defines attribute mappings for configuration monitors.
-->
<!ELEMENT configuration-attribute-mapping (configuration-attribute)>

 

<!--
Defines attribute mappings for availability monitors.
-->
<!ELEMENT availability-attribute-mapping (availability-attribute)>

 

<!--
Defines attribute mappings for integer monitors.
-->
<!ELEMENT integer-attribute-mapping (integer-attribute)>

 

<!--
Defines attribute mappings for long monitors.
-->
<!ELEMENT long-attribute-mapping (long-attribute)>

 

<!--
Defines attribute mappings for frequency monitors.
-->
<!ELEMENT frequency-attribute-mapping (reported-events-attribute)>

 

<!--
Defines attribute mappings for quality-rate monitors.
-->
<!ELEMENT quality-rate-attribute-mapping ((total-tries-attribute, total-hits-attribute) | quality-rate-attribute)>

 

<!--
Defines attribute mappings for duration monitors.
-->
<!ELEMENT duration-attribute-mapping ((total-number-attribute, total-time-attribute) | duration-attribute)>

 

<!--
This attribute/method must return String, which is the monitored value.
-->
<!ELEMENT text-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return String, which is the monitored value.
-->
<!ELEMENT state-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return a Serializable[][]
array of monitored values that are displayed in the table.

It works properly only if the entries of the Serializable[][] value returned from the resource MBean are of type String or Number (or subclasses). In general, you see the results after applying the toString() method to a Serializable entry.
-->

<!ELEMENT table-entries-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return com.sap.jmx.monitoring.api.VersionInfo.
-->

<!ELEMENT version-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return com.sap.jmx.monitoring.api.ConfigurationList.
-->

<!ELEMENT configuration-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return boolean.
-->

<!ELEMENT availability-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return int.
-->

<!ELEMENT integer-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return long.
-->

<!ELEMENT long-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return long.
-->
<!ELEMENT reported-events-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
Specifies the number of attempts to perform an operation.

This attribute/method must return long.
-->
<!ELEMENT total-tries-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
Specifies the number of successful attempts to perform an operation.

This attribute/method must return long.
-->
<!ELEMENT total-hits-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return com.sap.jmx.monitoring.api.QualityRateValue.
-->
<!ELEMENT quality-rate-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return long.
-->
<!ELEMENT total-number-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return long.
-->
<!ELEMENT total-time-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
This attribute/method must return
com.sap.jmx.monitoring.api.DurationValue.
-->
<!ELEMENT duration-attribute (observed-resource-attribute | invoked-resource-method)>

 

<!--
Defines the monitored resource attribute.
-->
<!ELEMENT observed-resource-attribute EMPTY>

 

<!--
Specifies the name of the monitored resource attribute.
-->
<!ATTLIST observed-resource-attribute name CDATA #REQUIRED>

 

<!--
Defines the method that the monitor invokes to collect the monitored data.
-->
<!ELEMENT invoked-resource-method (parameter*)>

 

<!--
Specifies the name of the invoked method.
-->

<!ATTLIST invoked-resource-method name CDATA #REQUIRED>

 

<!--
Defines the parameters of the invoked method.
-->

<!ELEMENT parameter EMPTY>

 

<!--
Specifies the attributes of the parameter element:

“position” - the relative position of the parameter in the method parameter list.

“type” - the Java type of the parameter.

“value” - the value with which this parameter is called by the method.

Example:

The getSomething(String stringValue,int intValue,long longValue) method will have the following XML syntax:

<invoked-resource-method name="getSomething">

   <parameter position="0" type="String" value="some_string"/>

   <parameter position="1" type="int" value="5"/>

   <parameter position="2" type="long" value="6"/>

</invoked-resource-method>
-->
<!ATTLIST parameter position CDATA #REQUIRED type %param-types; #REQUIRED value CDATA #REQUIRED>

 

Templates

Template-Info

This graphic is explained in the accompanying text

<!--
Defines templates used to specify parts of the tree that are not static and that are generated at runtime, depending on specified parameters.

Example:

<summary name="EJB" configuration-group="ejb">

   <object name="%0" configuration-group="ejbInstance">

      <template-info template-name="ejbInstance">

         <template-data-collection>

            <polled-by-template period="5" unit="MINUTE"/>

            <generating-resource name="ejb" type="SERVICE"/>

            <template-attribute-mapping>

               <invoked-resource-method name="listEJBs"/>

            </template-attribute-mapping>

         </template-data-collection>

      </template-info>

      <integer-monitor name="size" configuration-group="ejbSize">

         <monitored-resource name="deploy" type="SERVICE"/>

         <integer-attribute-mapping>

            <integer-attribute>

               <invoked-resource-method name="retrieveSize">

                  <parameter position="0" type="String" value="%0"/>

               </invoked-resource-method>

            </integer-attribute>

         </integer-attribute-mapping>

      </integer-monitor>

   </object>

</summary>

If String[] listEJBs() returns String[] {“ejb1”,”ejb2”}, the tree has the following structure:

-EJB
   -ejb1
      -size    //this is an integerMonitor and the value is returned by the retrieveSize(“ejb1”) method;
   -ejb2
      -size   // this is an integerMonitor and the value is returned by the retrieveSize(“ejb2”) method;

-->

<!ELEMENT template-info (polled-by-template|pushed-by-resource-via-notification|pushed-by-resource-via-interface)>

 

<!--
Specifies the name of the template.
-->
<!ATTLIST template-info template-name CDATA #REQUIRED>

 

The next elements describe how you install monitors based on templates. At runtime, templates expect data for installation of the monitors. This data may be obtained using the following methods:

·         polled-by-templates;

·         pushed-by-resource-via-notification;

·         pushed-by-resource-via-interface;

 

<!--
Defines that the template periodically polls data from the generating resource.
-->
<!ELEMENT polled-by-template (generating-resource, template-attribute-mapping)>

 

<!--
Specifies the period through which the data is polled.
-->
<!ATTLIST polled-by-template period CDATA #REQUIRED unit %time-unit; #REQUIRED>

 

<!--
Defines that the template receives the dynamic data via notification.
-->
<!ELEMENT pushed-by-resource-via-notification (generating-resource, template-attribute-mapping?)>

 

<!--
Defines that the template receives the dynamic data via a call to the com.sap.engine.interfaces.monitor.MonitorContext interface. For more information, see MonitorContext.
-->
<!ELEMENT pushed-by-resource-via-interface EMPTY>

 

<!--
Defines the resource from where the parameter data is obtained.
-->
<!ELEMENT generating-resource EMPTY>

 

<!--
Specifies the name and type of the generating resource.
-->
<!ATTLIST generating-resource name CDATA #REQUIRED type %monitored-types; #REQUIRED>

 

<!--
Defines the attribute or method of the generating resource that delivers the dynamic data for monitor installation. In this case, the attributes or methods return String [], String[][], or int[][].
-->
<!ELEMENT template-attribute-mapping (observed-resource-attribute | invoked-resource-method)>

 

Leaving content frame