News:

We really need your input in this questionnaire

Main Menu

Monitor heartbeat?

Started by Dan, June 21, 2010, 06:03:29 PM

Previous topic - Next topic

Dan

Hi!

I am trying to monitor if a DCI is not updated within a certain interval, like a heartbeat.
If the "monitored" DCI is not updated within a scheduled interval, then it should create the alarm.

I am thinking about using the data collection transformation for this, but I don't know if there is any built in function or any other way to check the date for the last update on a DCI?

Is this the way to go or is there a better way to create such a heartbeat monitoring?

Keep up the great work!

Best regards,
Dan

Victor Kirhenshtein

Hi!

You can create threshold on data collection error - it will fire if DCI not being updated due to communication failure or agent error - and then process event generated in this case as usual.

If you need to monitor push DCI then you can create another DCI and use transformation script to monitor last poll time, status, or error count of first DCI. For example, if you have DCI for parameter "PushParameter", you could create second DCI with source "Internal" and parameter "Dummy" and use the following transformation script:

sub main()
{
   dci = GetDCIObject($node, FindDCIByName($node, "PushParameter"));
   return time() - dci->lastPollTime > 120;  // Replace 120 with required interval in seconds
}

And set threshold for value 1 - it will indicate that there were no new values for 120 seconds.

Alternatively, you can return difference between current time and last poll time:

return time() - dci->lastPollTime;

and specify required interval in threshold.

Best regards,
Victor

Dan

It was the push DCI that was my main concern, sorry for not saying so!

This will probably solve the problem perfectly :)

Thanks!

Best regards,
Dan