VCS Agent Statistics
You can configure VCS to track the time taken for monitoring resources. You can use these statistics to configure the MonitorTimeout attribute. You can also detect potential problems with resources and systems on which resources are online by analyzing the trends in the time taken by the resource's monitor cycle. Note that VCS keeps track of monitor cycle times for online resources only.
VCS calculates the time taken for a monitor cycle to complete and computes an average of monitor times after a specific number of monitor cycles and stores the average in a resource-level attribute.
VCS also tracks increasing trends in the monitor cycle times and sends notifications about sudden and gradual increases in monitor times.
VCS uses the following parameters to compute the average monitor time and to detect increasing trends in monitor cycle times:
- Frequency: The number of monitor cycles after which the monitor time average is computed and sent to the VCS engine.
For example, if Frequency is set to 10, VCS computes the average monitor time after every 10 monitor cycles.
- ExpectedValue: The expected monitor time (in milliseconds) for a resource.
VCS sends a notification if the actual monitor time exceeds the expected monitor time by the ValueThreshold. So, if you set this attribute to 5000 for a FileOnOff resource, and if ValueThreshold is set to 40%, VCS will send a notification only when the monitor cycle for the FileOnOff resource exceeds the expected time by over 40%, that is 7000 milliseconds.
- ValueThreshold: The maximum permissible deviation (in percent) from the expected monitor time. When the time for a monitor cycle exceeds this limit, VCS sends a notification about the sudden increase or decrease in monitor time.
For example, a value of 100 means that VCS sends a notification if the actual monitor time deviates from the expected time by over 100%.
VCS sends these notifications conservatively. If 12 consecutive monitor cycles exceed the threshold limit, VCS sends a notification for the first spike, and then a collective notification for the next 10 consecutive spikes.
- AvgThreshold: The threshold value (in percent) for increase in the average monitor cycle time for a resource.
VCS maintains a running average of the time taken by the monitor cycles of a resource. The first such computed running average is used as a benchmark average. If the current running average for a resource differs from the benchmark average by more than this threshold value, VCS regards this as a sign of gradual increase or decrease in monitor cycle times and sends a notification about it for the resource. Whenever such an event occurs, VCS resets the internally maintained benchmark average to this new average. VCS sends notifications regardless of whether the deviation is an increase or decrease in the monitor cycle time.
For example, a value of 25 means that if the actual average monitor time is 25% more than the benchmark monitor time average, VCS sends a notification.
Tracking Monitor Cycle Times
VCS marks sudden changes in monitor times by comparing the time taken for each monitor cycle with the ExpectedValue. If this difference exceeds the ValueThreshold, VCS sends a notification about the sudden change in monitor time. Note that VCS sends this notification only if monitor time increases.
VCS marks gradual changes in monitor times by comparing the benchmark average and the moving average of monitor cycle times. VCS computes the benchmark average after a certain number of monitor cycles and computes the moving average after every monitor cycle. If the current moving average exceeds the benchmark average by more than the AvgThreshold, VCS sends a notification about this gradual change in the monitor cycle time.
VCS Attributes Enabling Agent Statistics
This section describes the attributes that enable VCS agent statistics.
MonitorStatsParam
MonitorStatsParam is a resource type-level attribute, which stores the required parameter values for calculating monitor time statistics.
static str MonitorStatsParam = { Frequency = 10, ExpectedValue
= 3000, ValueThreshold = 100, AvgThreshold = 40 }
- Frequency: Defines the number of monitor cycles after which the average monitor cycle time should be computed and sent to the engine. If configured, the value for this attribute must be between 1 and 30. It is set to 0 by default.
- ExpectedValue: The expected monitor time in milliseconds for all resources of this type. Default=3000.
- ValueThreshold: The acceptable percentage difference between the expected monitor cycle time (ExpectedValue) and the actual monitor cycle time. Default=100.
- AvgThreshold: The acceptable percentage difference between the benchmark average and the moving average of monitor cycle times. Default=40.
MonitorTimeStats
Stores the average time taken by a number of monitor cycles specified by the Frequency attribute along with a timestamp value of when the average was computed.
str MonitorTimeStats{} = { Avg = "0", TS = "" }
This attribute is updated periodically after a number of monitor cycles specified by the Frequency attribute. If Frequency is set to 10, the attribute stores the average of 10 monitor cycle times and is updated after every 10 monitor cycles.
The default value for this attribute is 0.
ComputeStats
A flag that specifies whether VCS keeps track of the monitor times for the resource.
bool ComputeStats = 0
The value 0 indicates that VCS will not keep track of the time taken by the monitor routine for the resource. The value 1 indicates that VCS keeps track of the monitor time for the resource.
The default value for this attribute is 0.
|